about summary refs log tree commit diff stats
path: root/apps/pack
blob: 0665c0b9252dcc72adad2b9f08aa278dad8561ec (plain)
ofshex dumpascii
0000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 02 00 03 00 01 00 00 00 17 68 00 09 34 00 00 00 .ELF.....................h..4...
0020 00 00 00 00 00 00 00 00 34 00 20 00 02 00 00 00 00 00 00 00 01 00 00 00 74 00 00 00 74 00 00 09 ........4...............t...t...
0040 74 00 00 09 94 8f 00 00 94 8f 00 00 05 00 00 00 00 10 00 00 01 00 00 00 08 90 00 00 08 00 00 0a t...............................
0060 08 00 00 0a 3b 58 00 00 3b 58 00 00 06 00 00 00 00 10 00 00 b8 01 00 00 00 cd 80 b8 03 00 00 00 ....;X..;X......................
0080 cd 80 c3 b8 04 00 00 00 cd 80 c3 b8 05 00 00 00 cd 80 c3 b8 06 00 00 00 cd 80 c3 b8 13 00 00 00 ................................
00a0 cd 80 c3 b8 08 00 00 00 cd 80 c3 b8 0a 00 00 00 cd 80 c3 b8 26 00 00 00 cd 80 c3 b8 5a 00 00 00 ....................&.......Z...
00c0 cd 80 c3 b8 36 00 00 00 cd 80 c3 b8 a2 00 00 00 cd 80 c3 b8 09 01 00 00 cd 80 c3 bb 00 00 00 00 ....6...........................
00e0 e8 8f ff ff ff 55 89 e5 50 51 52 53 8b 5d 08 8b 4d 0c 81 c1 04 00 00 00 8b 55 0c 8b 12 e8 81 ff .....U..PQRS.]..M........U......
0100 ff ff 3d 00 00 00 00 0f 8c 08 00 00 00 5b 5a 59 58 89 ec 5d c3 bb ff 00 00 00 e8 55 ff ff ff 68 ..=..........[ZYX..].......U...h
0120 c0 0e 00 0a 68 34 00 00 00 68 34 00 00 00 e8 10 00 00 00 81 c4 0c 00 00 00 bb 00 00 00 00 e8 31 ....h4...h4....................1
0140 ff ff ff 55 89 e5 50 51 53 8b 45 08 8b 5d 0c 39 d8 75 17 68 dd 0e 00 0a 68 02 00 00 00 e8 83 ff ...U..PQS.E..].9.u.h....h.......
0160 ff ff 81 c4 08 00 00 00 eb 2f 8b 4d 10 51 68 02 00 00 00 e8 6d ff ff ff 81 c4 08 00 00 00 68 08 ........./.M.Qh.....m.........h.
0180 00 00 0a 68 02 00 00 00 e8 58 ff ff ff 81 c4 08 00 00 00 ff 05 0d 00 00 0a 5b 59 58 89 ec 5d c3 ...h.....X...............[YX..].
01a0 e8 da 89 00 00 8b 1d 0d 00 00 0a e8 c4 fe ff ff 55 89 e5 51 52 53 56 57 8b 7d 08 8b 55 0c 8b 12 ................U..QRSVW.}..U...
01c0 8b 75 0c 81 c6 04 00 00 00 b9 00 00 00 00 b8 00 00 00 00 bb 00 00 00 00 39 d1 7d 14 8a 07 8a 1e .u......................9.}.....
01e0 3d 00 00 00 00 74 19 39 d8 75 15 41 47 46 eb e8 8a 07 3d 00 00 00 00 75 07 b8 01 00 00 00 eb 05 =....t.9.u.AGF....=....u........
0200 b8 00 00 00 00 5f 5e 5b 5a 59 89 ec 5d c3 68 e2 0e 00 0a 68 1b 00 00 0a e8 93 ff ff ff 81 c4 08 ....._^[ZY..].h....h............
0220 00 00 00 68 e6 0e 00 0a 68 01 00 00 00 50 e8 10 ff ff ff 81 c4 0c 00 00 00 c3 68 1e 0f 00 0a 68 ...h....h....P............h....h
0240 1b 00 00 0a e8 67 ff ff ff 81 c4 08 00 00 00 68 25 0f 00 0a 68 00 00 00 00 50 e8 e4 fe ff ff 81 .....g.........h%...h....P......
0260 c4 0c 00 00 00 c3 68 61 0f 00 0a 68 1c 00 00 0a e8 3b ff ff ff 81 c4 08 00 00 00 68 68 0f 00 0a ......ha...h.....;.........hh...
0280 68 01 00 00 00 50 e8 b8 fe ff ff 81 c4 0c 00 00 00 c3 68 9b 0f 00 0a 68 1c 00 00 0a e8 0f ff ff h....P............h....h........
02a0 ff 81 c4 08 00 00 00 68 a2 0f 00 0a 68 00 00 00 00 50 e8 8c fe ff ff 81 c4 0c 00 00 00 c3 68 d5 .......h....h....P............h.
02c0 0f 00 0a 68 1c 00 00 0a e8 e3 fe ff ff 81 c4 08 00 00 00 68 d9 0f 00 0a 68 00 00 00 00 50 e8 60 ...h...............h....h....P.`
02e0 fe ff ff 81 c4 0c 00 00 00 c3 68 0c 10 00 0a 68 1c 00 00 0a e8 b7 fe ff ff 81 c4 08 00 00 00 68 ..........h....h...............h
0300 12 10 00 0a 68 00 00 00 00 50 e8 34 fe ff ff 81 c4 0c 00 00 00 c3 68 47 10 00 0a 68 1c 00 00 0a ....h....P.4..........hG...h....
0320 e8 8b fe ff ff 81 c4 08 00 00 00 68 4f 10 00 0a 68 00 00 00 00 50 e8 08 fe ff ff 81 c4 0c 00 00 ...........hO...h....P..........
0340 00 c3 68 00 00 00 00 68 00 00 00 00 89 e1 51 68 00 10 00 00 e8 15 00 00 00 81 c4 08 00 00 00 8b ..h....h......Qh................
0360 01 c7 00 34 00 00 00 89 c3 e8 06 fd ff ff 55 89 e5 50 53 8b 45 08 89 05 24 00 00 0a bb 20 00 00 ...4..........U..PS.E...$.......
0380 0a e8 35 fd ff ff 8b 5d 0c 89 03 03 45 08 89 43 04 5b 58 89 ec 5d c3 e8 e3 87 00 00 8b 1d 0d 00 ..5....]....E..C.[X..]..........
03a0 00 0a e8 cd fc ff ff 55 89 e5 51 56 57 8b 75 08 8b 7d 0c 8b 0e 39 0f b8 00 00 00 00 75 11 ff 75 .......U..QVW.u..}...9......u..u
03c0 0c ff 75 08 e8 0d 00 00 00 81 c4 08 00 00 00 5f 5e 59 89 ec 5d c3 55 89 e5 51 52 56 57 8b 75 08 ..u............_^Y..].U..QRVW.u.
03e0 8b 7d 0c 8b 0f 39 0e 7c 29 81 c6 04 00 00 00 81 c7 04 00 00 00 01 f9 31 c0 31 d2 39 cf 73 0c 8a .}...9.|)..............1.1.9.s..
0400 06 8a 17 39 d0 75 0b 46 47 eb f0 b8 01 00 00 00 eb 05 b8 00 00 00 00 5f 5e 5a 59 89 ec 5d c3 68 ...9.u.FG.............._^ZY..].h
0420 83 10 00 0a 68 87 10 00 0a e8 79 ff ff ff 81 c4 08 00 00 00 68 8b 10 00 0a 68 01 00 00 00 50 e8 ....h.....y.........h....h....P.
0440 ff fc ff ff 81 c4 0c 00 00 00 c3 68 b7 10 00 0a 68 be 10 00 0a e8 4d ff ff ff 81 c4 08 00 00 00 ...........h....h.....M.........
0460 68 c2 10 00 0a 68 00 00 00 00 50 e8 d3 fc ff ff 81 c4 0c 00 00 00 c3 68 f2 10 00 0a 68 f9 10 00 h....h....P............h....h...
0480 0a e8 21 ff ff ff 81 c4 08 00 00 00 68 00 11 00 0a 68 01 00 00 00 50 e8 a7 fc ff ff 81 c4 0c 00 ..!.........h....h....P.........
04a0 00 00 c3 68 22 11 00 0a 68 29 11 00 0a e8 f5 fe ff ff 81 c4 08 00 00 00 68 30 11 00 0a 68 00 00 ...h"...h)..............h0...h..
04c0 00 00 50 e8 7b fc ff ff 81 c4 0c 00 00 00 c3 55 89 e5 50 ff 75 0c ff 75 08 e8 c9 fe ff ff 81 c4 ..P.{..........U..P.u..u........
04e0 08 00 00 00 ff 75 10 68 01 00 00 00 50 e8 51 fc ff ff 81 c4 0c 00 00 00 58 89 ec 5d c3 68 60 11 .....u.h....P.Q.........X..].h`.
0500 00 0a 68 67 11 00 0a e8 c3 ff ff ff 81 c4 08 00 00 00 c3 55 89 e5 50 51 8b 45 08 8b 48 08 8d 4c ..hg...............U..PQ.E..H..L
0520 08 0c c7 00 00 00 00 00 c7 40 04 00 00 00 00 81 c0 0c 00 00 00 39 c8 73 06 c6 00 00 40 eb f6 59 .........@...........9.s....@..Y
0540 58 89 ec 5d c3 55 89 e5 50 8b 45 08 c7 40 04 00 00 00 00 58 89 ec 5d c3 55 89 e5 50 51 8b 4d 08 X..].U..P.E..@.....X..].U..PQ.M.
0560 68 3c 00 00 0a 51 e8 03 fe ff ff 81 c4 08 00 00 00 8b 05 3c 00 00 0a 89 05 38 00 00 0a 81 e9 0c h<...Q.............<.....8......
0580 00 00 00 89 48 08 59 58 89 ec 5d c3 55 89 e5 50 51 52 53 56 57 8b 3d 38 00 00 0a 8b 75 08 8b 0f ....H.YX..].U..PQRSVW.=8....u...
05a0 8b 57 08 56 8d 5c 17 0c 53 8d 5c 0f 0c 53 e8 2d 05 00 00 81 c4 0c 00 00 00 3d 00 00 00 00 74 20 .W.V.\..S.\..S.-.........=....t.
05c0 01 07 8b 0f 68 08 00 00 0a 8d 5c 17 0c 53 8d 5c 0f 0c 53 e8 08 05 00 00 81 c4 0c 00 00 00 01 07 ....h.....\..S.\..S.............
05e0 5f 5e 5b 5a 59 58 89 ec 5d c3 ff 35 38 00 00 0a b8 44 00 00 0a 89 05 38 00 00 0a e8 c8 04 00 00 _^[ZYX..]..58....D.....8........
0600 68 6e 11 00 0a e8 82 ff ff ff 81 c4 04 00 00 00 68 74 11 00 0a 68 41 62 0a 00 b8 44 00 00 0a ff hn..............ht...hAb...D....
0620 70 0c e8 1c fb ff ff 81 c4 0c 00 00 00 8f 05 38 00 00 0a c3 ff 35 38 00 00 0a b8 44 00 00 0a 89 p..............8.....58....D....
0640 05 38 00 00 0a e8 7e 04 00 00 68 8d 11 00 0a e8 38 ff ff ff 81 c4 04 00 00 00 68 92 11 00 0a e8 .8....~...h.....8.........h.....
0660 28 ff ff ff 81 c4 04 00 00 00 68 97 11 00 0a 68 43 0a 44 0a b8 44 00 00 0a ff 70 0c e8 c2 fa ff (.........h....hC.D..D....p.....
0680 ff 81 c4 0c 00 00 00 8f 05 38 00 00 0a c3 ff 35 38 00 00 0a b8 44 00 00 0a 89 05 38 00 00 0a e8 .........8.....58....D.....8....
06a0 24 04 00 00 68 b1 11 00 0a e8 de fe ff ff 81 c4 04 00 00 00 68 b5 11 00 0a 68 00 00 00 00 b8 44 $...h...............h....h.....D
06c0 00 00 0a ff 70 0c e8 78 fa ff ff 81 c4 0c 00 00 00 8f 05 38 00 00 0a c3 55 89 e5 ff 35 38 00 00 ....p..x...........8....U...58..
06e0 0a e8 5f fe ff ff 81 c4 04 00 00 00 ff 75 0c ff 75 08 e8 0a 00 00 00 81 c4 08 00 00 00 89 ec 5d .._..........u..u..............]
0700 c3 55 89 e5 50 ff 75 08 e8 1f 00 00 00 81 c4 04 00 00 00 ff 75 0c 68 01 00 00 00 50 e8 22 fa ff .U..P.u.............u.h....P."..
0720 ff 81 c4 0c 00 00 00 58 89 ec 5d c3 55 89 e5 51 56 8b 35 38 00 00 0a 8b 0e ff 76 04 39 4e 04 7d .......X..].U..QV.58......v.9N.}
0740 3d ff 75 08 56 e8 d1 01 00 00 81 c4 08 00 00 00 3d 00 00 00 00 74 19 56 e8 d2 02 00 00 81 c4 04 =.u.V...........=....t.V........
0760 00 00 00 81 c4 04 00 00 00 b8 01 00 00 00 eb 16 56 e8 b9 02 00 00 81 c4 04 00 00 00 eb be 8f 46 ................V..............F
0780 04 b8 00 00 00 00 59 89 ec 5d c3 ff 35 38 00 00 0a b8 44 00 00 0a 89 05 38 00 00 0a e8 27 03 00 ......Y..]..58....D.....8....'..
07a0 00 68 d2 11 00 0a e8 e1 fd ff ff 81 c4 04 00 00 00 68 d8 11 00 0a e8 71 ff ff ff 81 c4 04 00 00 .h...............h.....q........
07c0 00 68 de 11 00 0a 68 01 00 00 00 50 e8 72 f9 ff ff 81 c4 0c 00 00 00 8f 05 38 00 00 0a c3 ff 35 .h....h....P.r...........8.....5
07e0 38 00 00 0a b8 44 00 00 0a 89 05 38 00 00 0a e8 d4 02 00 00 68 fb 11 00 0a e8 8e fd ff ff 81 c4 8....D.....8........h...........
0800 04 00 00 00 68 01 12 00 0a e8 7e fd ff ff 81 c4 04 00 00 00 68 07 12 00 0a e8 0e ff ff ff 81 c4 ....h.....~.........h...........
0820 04 00 00 00 68 0d 12 00 0a 68 01 00 00 00 50 e8 0f f9 ff ff 81 c4 0c 00 00 00 8f 05 38 00 00 0a ....h....h....P.............8...
0840 c3 ff 35 38 00 00 0a b8 44 00 00 0a 89 05 38 00 00 0a e8 71 02 00 00 68 3c 12 00 0a e8 2b fd ff ..58....D.....8....q...h<....+..
0860 ff 81 c4 04 00 00 00 68 42 12 00 0a e8 bb fe ff ff 81 c4 04 00 00 00 68 48 12 00 0a e8 ab fe ff .......hB..............hH.......
0880 ff 81 c4 04 00 00 00 68 4e 12 00 0a 68 00 00 00 00 50 e8 ac f8 ff ff 81 c4 0c 00 00 00 8f 05 38 .......hN...h....P.............8
08a0 00 00 0a c3 ff 35 38 00 00 0a b8 44 00 00 0a 89 05 38 00 00 0a e8 0e 02 00 00 68 88 12 00 0a e8 .....58....D.....8........h.....
08c0 c8 fc ff ff 81 c4 04 00 00 00 68 8e 12 00 0a 68 00 00 00 00 b8 44 00 00 0a ff 70 04 e8 62 f8 ff ..........h....h.....D....p..b..
08e0 ff 81 c4 0c 00 00 00 68 dd 12 00 0a e8 3b fe ff ff 81 c4 04 00 00 00 68 e3 12 00 0a 68 00 00 00 .......h.....;.........h....h...
0900 00 b8 44 00 00 0a ff 70 04 e8 35 f8 ff ff 81 c4 0c 00 00 00 8f 05 38 00 00 0a c3 55 89 e5 51 52 ..D....p..5...........8....U..QR
0920 53 56 57 8b 55 0c 8d 72 04 8b 02 8d 0c 06 8b 7d 08 8d 5f 0c 8b 07 8d 14 03 8b 47 04 8d 3c 03 39 SVW.U..r.......}.._.......G..<.9
0940 ce 73 1e b8 00 00 00 00 39 d7 73 2a 31 c0 31 db 8a 07 8a 1e 39 d8 b8 00 00 00 00 75 19 47 46 eb .s......9.s*1.1.....9......u.GF.
0960 de 31 c0 8a 07 3d 0a 00 00 00 b8 01 00 00 00 74 05 b8 00 00 00 00 5f 5e 5b 5a 59 89 ec 5d c3 68 .1...=.........t......_^[ZY..].h
0980 1d 13 00 0a 68 58 00 00 0a e8 8d ff ff ff 81 c4 08 00 00 00 68 2a 13 00 0a 68 00 00 00 00 50 e8 ....hX..............h*...h....P.
09a0 9f f7 ff ff 81 c4 0c 00 00 00 c3 68 54 13 00 0a 68 58 00 00 0a e8 61 ff ff ff 81 c4 08 00 00 00 ...........hT...hX....a.........
09c0 68 58 13 00 0a 68 00 00 00 00 50 e8 73 f7 ff ff 81 c4 0c 00 00 00 c3 68 82 13 00 0a 68 58 00 00 hX...h....P.s..........h....hX..
09e0 0a e8 35 ff ff ff 81 c4 08 00 00 00 68 88 13 00 0a 68 00 00 00 00 50 e8 47 f7 ff ff 81 c4 0c 00 ..5.........h....h....P.G.......
0a00 00 00 c3 68 b2 13 00 0a 68 58 00 00 0a e8 09 ff ff ff 81 c4 08 00 00 00 68 bb 13 00 0a 68 01 00 ...h....hX..............h....h..
0a20 00 00 50 e8 1b f7 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 50 51 52 53 8b 4d 08 8d 51 0c 8b 01 8d 1c ..P............U..PQRS.M..Q.....
0a40 02 8b 41 04 8d 0c 02 89 c2 39 d9 73 0f 42 31 c0 8a 01 3d 0a 00 00 00 74 03 41 eb ed 8b 4d 08 89 ..A......9.s.B1...=....t.A...M..
0a60 51 04 5b 5a 59 58 89 ec 5d c3 68 6c 00 00 0a e8 bb ff ff ff 81 c4 04 00 00 00 68 e0 13 00 0a 68 Q.[ZYX..].hl..............h....h
0a80 00 00 00 00 b8 6c 00 00 0a 8b 40 04 50 e8 b1 f6 ff ff 81 c4 0c 00 00 00 c3 68 80 00 00 0a e8 8c .....l....@.P............h......
0aa0 ff ff ff 81 c4 04 00 00 00 68 01 14 00 0a 68 05 00 00 00 b8 80 00 00 0a 8b 40 04 50 e8 82 f6 ff .........h....h..........@.P....
0ac0 ff 81 c4 0c 00 00 00 c3 55 89 e5 ff 35 38 00 00 0a e8 3d fa ff ff 81 c4 04 00 00 00 89 ec 5d c3 ........U...58....=...........].
0ae0 55 89 e5 51 8b 45 10 8b 08 8d 4c 08 04 51 8d 48 04 51 ff 75 0c ff 75 08 e8 0b 00 00 00 81 c4 10 U..Q.E....L..Q.H.Q.u..u.........
0b00 00 00 00 59 89 ec 5d c3 55 89 e5 51 52 53 56 57 b8 00 00 00 00 8b 7d 08 8b 55 0c 8b 75 10 8b 4d ...Y..].U..QRSVW......}..U..u..M
0b20 14 39 ce 73 0d 39 d7 73 12 8a 1e 88 1f 40 46 47 eb ef 5f 5e 5b 5a 59 89 ec 5d c3 68 23 14 00 0a .9.s.9.s.....@FG.._^[ZY..].h#...
0b40 68 02 00 00 00 e8 9b f5 ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 1a f5 ff ff 55 89 e5 81 7d 0c h.........................U...}.
0b60 00 00 00 00 74 46 81 7d 08 00 00 00 08 73 13 ff 75 0c ff 75 08 e8 6b f5 ff ff 81 c4 08 00 00 00 ....tF.}.....s..u..u..k.........
0b80 eb 2a 50 51 52 53 8b 4d 08 8b 11 8b 59 08 ff 75 0c 8d 5c 19 0c 53 8d 5c 11 0c 53 e8 40 ff ff ff .*PQRS.M....Y..u..\..S.\..S.@...
0ba0 81 c4 0c 00 00 00 01 01 5b 5a 59 58 89 ec 5d c3 68 94 00 00 0a e8 59 f9 ff ff 81 c4 04 00 00 00 ........[ZYX..].h.....Y.........
0bc0 68 37 14 00 0a 68 94 00 00 0a e8 8b ff ff ff 81 c4 08 00 00 00 68 3d 14 00 0a 68 41 62 00 00 b8 h7...h...............h=...hAb...
0be0 94 00 00 0a ff 70 0c e8 57 f5 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 16 f9 ff ff 81 c4 04 .....p..W..........h............
0c00 00 00 00 68 56 14 00 0a 68 94 00 00 0a e8 48 ff ff ff 81 c4 08 00 00 00 68 5b 14 00 0a 68 94 00 ...hV...h.....H.........h[...h..
0c20 00 0a e8 33 ff ff ff 81 c4 08 00 00 00 68 60 14 00 0a 68 43 44 00 00 b8 94 00 00 0a ff 70 0c e8 ...3.........h`...hCD........p..
0c40 ff f4 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 52 56 57 8b 75 08 8b 06 8d 54 06 0c 81 c6 0c 00 00 ...........U..QRVW.u....T.......
0c60 00 8b 7d 0c 39 07 75 1a 81 c7 04 00 00 00 31 c0 31 c9 39 d6 73 13 8a 06 8a 0f 39 c8 75 04 46 47 ..}.9.u.......1.1.9.s.....9.u.FG
0c80 eb f0 b8 00 00 00 00 eb 05 b8 01 00 00 00 5f 5e 5a 59 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 70 .............._^ZY..].U..h.....p
0ca0 f8 ff ff 81 c4 04 00 00 00 68 7a 14 00 0a 68 94 00 00 0a e8 a2 fe ff ff 81 c4 08 00 00 00 68 81 .........hz...h...............h.
0cc0 14 00 0a 68 94 00 00 0a e8 7e ff ff ff 81 c4 08 00 00 00 68 88 14 00 0a 68 01 00 00 00 50 e8 60 ...h.....~.........h....h....P.`
0ce0 f4 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 19 f8 ff ff 81 c4 04 00 00 00 ...........].U..h...............
0d00 68 a6 14 00 0a 68 94 00 00 0a e8 4b fe ff ff 81 c4 08 00 00 00 68 ad 14 00 0a 68 94 00 00 0a e8 h....h.....K.........h....h.....
0d20 27 ff ff ff 81 c4 08 00 00 00 68 b4 14 00 0a 68 00 00 00 00 50 e8 09 f4 ff ff 81 c4 0c 00 00 00 '.........h....h....P...........
0d40 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 c2 f7 ff ff 81 c4 04 00 00 00 68 d4 14 00 0a 68 94 00 00 ..].U..h...............h....h...
0d60 0a e8 f4 fd ff ff 81 c4 08 00 00 00 68 db 14 00 0a 68 94 00 00 0a e8 d0 fe ff ff 81 c4 08 00 00 ............h....h..............
0d80 00 68 e3 14 00 0a 68 00 00 00 00 50 e8 b2 f3 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 ff .h....h....P.............].U..P.
0da0 75 0c ff 75 08 e8 a1 fe ff ff 81 c4 08 00 00 00 ff 75 10 68 01 00 00 00 50 e8 85 f3 ff ff 81 c4 u..u.............u.h....P.......
0dc0 0c 00 00 00 58 89 ec 5d c3 55 89 e5 51 52 56 57 8b 75 08 8b 4e 04 8b 7d 0c 31 d2 31 c0 31 db 3b ....X..].U..QRVW.u..N..}.1.1.1.;
0de0 0e 7d 1b 8a 44 0e 0c 3d 0a 00 00 00 74 10 3b 17 7d 1b 8a 5c 17 04 39 d8 75 13 41 42 eb e1 41 3b .}..D..=....t.;.}..\..9.u.AB..A;
0e00 17 7c 0a b8 01 00 00 00 89 4e 04 eb 05 b8 00 00 00 00 5f 5e 5a 59 89 ec 5d c3 55 89 e5 68 94 00 .|.......N........_^ZY..].U..h..
0e20 00 0a e8 ec f6 ff ff 81 c4 04 00 00 00 68 0c 15 00 0a 68 94 00 00 0a e8 1e fd ff ff 81 c4 08 00 .............h....h.............
0e40 00 00 68 17 15 00 0a 68 94 00 00 0a e8 78 ff ff ff 81 c4 08 00 00 00 68 1e 15 00 0a 68 01 00 00 ..h....h.....x.........h....h...
0e60 00 50 e8 dc f2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 95 f6 ff ff 81 c4 .P.............].U..h...........
0e80 04 00 00 00 68 52 15 00 0a 68 94 00 00 0a e8 c7 fc ff ff 81 c4 08 00 00 00 68 5d 15 00 0a 68 94 ....hR...h...............h]...h.
0ea0 00 00 0a e8 21 ff ff ff 81 c4 08 00 00 00 68 64 15 00 0a 68 00 00 00 00 50 e8 85 f2 ff ff 81 c4 ....!.........hd...h....P.......
0ec0 0c 00 00 00 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 3e f6 ff ff 81 c4 04 00 00 00 68 9a 15 00 0a ......].U..h.....>.........h....
0ee0 68 94 00 00 0a e8 70 fc ff ff 81 c4 08 00 00 00 68 a6 15 00 0a 68 94 00 00 0a e8 ca fe ff ff 81 h.....p.........h....h..........
0f00 c4 08 00 00 00 68 ad 15 00 0a 68 94 00 00 0a e8 b5 fe ff ff 81 c4 08 00 00 00 68 b4 15 00 0a 68 .....h....h...............h....h
0f20 01 00 00 00 50 e8 19 f2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 d2 f5 ff ....P.............].U..h........
0f40 ff 81 c4 04 00 00 00 68 e5 15 00 0a 68 94 00 00 0a e8 04 fc ff ff 81 c4 08 00 00 00 68 f0 15 00 .......h....h...............h...
0f60 0a 68 94 00 00 0a e8 5e fe ff ff 81 c4 08 00 00 00 68 f7 15 00 0a 68 94 00 00 0a e8 49 fe ff ff .h.....^.........h....h.....I...
0f80 81 c4 08 00 00 00 68 fe 15 00 0a 68 01 00 00 00 50 e8 ad f1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 ......h....h....P.............].
0fa0 55 89 e5 68 94 00 00 0a e8 66 f5 ff ff 81 c4 04 00 00 00 68 2f 16 00 0a 68 94 00 00 0a e8 07 fe U..h.....f.........h/...h.......
0fc0 ff ff 81 c4 08 00 00 00 68 33 16 00 0a 68 01 00 00 00 50 e8 6b f1 ff ff 81 c4 0c 00 00 00 68 6d ........h3...h....P.k.........hm
0fe0 16 00 0a 68 94 00 00 0a e8 dc fd ff ff 81 c4 08 00 00 00 68 71 16 00 0a 68 01 00 00 00 50 e8 40 ...h...............hq...h....P.@
1000 f1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 ff 75 0c ff 75 08 e8 ad fd ff ff 81 c4 08 00 ...........].U..P.u..u..........
1020 00 00 ff 75 10 68 01 00 00 00 50 e8 13 f1 ff ff 81 c4 0c 00 00 00 58 89 ec 5d c3 55 89 e5 50 51 ...u.h....P...........X..].U..PQ
1040 8b 45 0c f7 d8 8d 44 05 0c 8b 4d 08 89 01 c7 41 04 00 00 00 00 59 58 89 ec 5d c3 8b 44 24 04 3d .E....D...M....A.....YX..]..D$.=
1060 00 00 00 00 74 13 81 38 00 00 00 00 74 0b 8b 4c 24 08 41 89 48 04 8b 20 c3 8b 5c 24 08 e8 f2 ef ....t..8....t..L$.A.H.....\$....
1080 ff ff c3 55 89 e5 68 00 00 00 00 68 00 00 00 00 89 e0 68 04 00 00 00 50 e8 9e ff ff ff 81 c4 08 ...U..h....h......h....P........
10a0 00 00 00 50 e8 21 00 00 00 58 68 ad 16 00 0a 68 02 00 00 00 ff 70 04 e8 87 f0 ff ff 81 c4 0c 00 ...P.!...Xh....h.....p..........
10c0 00 00 81 c4 08 00 00 00 5d c3 55 89 e5 ff 75 08 e8 24 00 00 00 81 c4 04 00 00 00 68 d4 16 00 0a ........].U...u..$.........h....
10e0 68 00 00 00 00 68 01 00 00 00 e8 54 f0 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 01 00 00 h....h.....T...........].U..h...
1100 00 ff 75 08 e8 52 ff ff ff 89 ec 5d c3 55 89 e5 81 7d 08 00 00 00 08 73 13 ff 75 0c ff 75 08 e8 ..u..R.....].U...}.....s..u..u..
1120 9f 00 00 00 81 c4 08 00 00 00 eb 38 56 57 8b 75 08 8b 7d 0c 8b 06 8d 44 06 0c 50 8b 46 04 8d 44 ...........8VW.u..}....D..P.F..D
1140 06 0c 50 8b 47 08 8d 44 07 0c 50 8b 07 8d 44 07 0c 50 e8 39 00 00 00 81 c4 10 00 00 00 01 07 01 ..P.G..D..P...D..P.9............
1160 46 04 5f 5e 89 ec 5d c3 55 89 e5 51 8b 45 10 8b 08 8d 4c 08 04 51 8d 48 04 51 ff 75 0c ff 75 08 F._^..].U..Q.E....L..Q.H.Q.u..u.
1180 e8 0b 00 00 00 81 c4 10 00 00 00 59 89 ec 5d c3 55 89 e5 51 52 53 56 57 b8 00 00 00 00 8b 7d 08 ...........Y..].U..QRSVW......}.
11a0 8b 55 0c 8b 75 10 8b 4d 14 39 ce 73 0d 39 d7 73 09 8a 1e 88 1f 40 46 47 eb ef 5f 5e 5b 5a 59 89 .U..u..M.9.s.9.s.....@FG.._^[ZY.
11c0 ec 5d c3 55 89 e5 51 52 53 56 8b 75 0c 8b 06 8b 56 08 8b 5d 08 8d 4c 06 0c 29 c2 e8 9b ee ff ff .].U..QRSV.u....V..]..L..)......
11e0 01 06 5e 5b 5a 59 89 ec 5d c3 68 94 00 00 0a e8 1f f3 ff ff 81 c4 04 00 00 00 68 b0 00 00 0a e8 ..^[ZY..].h...............h.....
1200 0f f3 ff ff 81 c4 04 00 00 00 68 fb 16 00 0a 68 94 00 00 0a e8 41 f9 ff ff 81 c4 08 00 00 00 68 ..........h....h.....A.........h
1220 b0 00 00 0a 68 94 00 00 0a e8 df fe ff ff 81 c4 08 00 00 00 68 01 17 00 0a 68 02 00 00 00 50 e8 ....h...............h....h....P.
1240 ff ee ff ff 81 c4 0c 00 00 00 68 27 17 00 0a 68 3f 17 00 0a 68 b0 00 00 0a e8 3d fb ff ff 81 c4 ..........h'...h?...h.....=.....
1260 0c 00 00 00 c3 68 94 00 00 0a e8 a4 f2 ff ff 81 c4 04 00 00 00 68 b0 00 00 0a e8 94 f2 ff ff 81 .....h...............h..........
1280 c4 04 00 00 00 68 45 17 00 0a 68 94 00 00 0a e8 c6 f8 ff ff 81 c4 08 00 00 00 68 b0 00 00 0a 68 .....hE...h...............h....h
12a0 94 00 00 0a e8 64 fe ff ff 81 c4 08 00 00 00 68 4a 17 00 0a 68 94 00 00 0a e8 9c f8 ff ff 81 c4 .....d.........hJ...h...........
12c0 08 00 00 00 68 b0 00 00 0a 68 94 00 00 0a e8 3a fe ff ff 81 c4 08 00 00 00 68 4f 17 00 0a 68 6c ....h....h.....:.........hO...hl
12e0 17 00 0a 68 b0 00 00 0a e8 ae fa ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 15 f2 ff ff 81 c4 ...h................h...........
1300 04 00 00 00 68 b0 00 00 0a e8 05 f2 ff ff 81 c4 04 00 00 00 68 72 17 00 0a 68 94 00 00 0a e8 37 ....h...............hr...h.....7
1320 f8 ff ff 81 c4 08 00 00 00 68 b0 00 00 0a 68 94 00 00 0a e8 d5 fd ff ff 81 c4 08 00 00 00 68 b0 .........h....h...............h.
1340 00 00 0a 68 94 00 00 0a e8 c0 fd ff ff 81 c4 08 00 00 00 68 78 17 00 0a 68 00 00 00 00 50 e8 e0 ...h...............hx...h....P..
1360 ed ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 56 8b 75 08 8b 4e 08 3b 4e 04 7c 2d 8d 46 04 50 e8 90 ..........U..QV.u..N.;N.|-.F.P..
1380 f1 ff ff 81 c4 04 00 00 00 31 c9 50 ff 36 e8 7a fd ff ff 81 c4 08 00 00 00 3d 00 00 00 00 75 07 .........1.P.6.z.........=....u.
13a0 b8 ff ff ff ff eb 09 31 c0 8a 44 0e 10 ff 46 08 5e 59 89 ec 5d c3 68 94 00 00 0a e8 53 f1 ff ff .......1..D...F.^Y..].h.....S...
13c0 81 c4 04 00 00 00 68 e0 00 00 0a e8 43 f1 ff ff 81 c4 04 00 00 00 68 a2 17 00 0a 68 94 00 00 0a ......h.....C.........h....h....
13e0 e8 75 f7 ff ff 81 c4 08 00 00 00 68 dc 00 00 0a e8 75 ff ff ff 81 c4 04 00 00 00 68 a8 17 00 0a .u.........h.....u.........h....
1400 68 41 00 00 00 50 e8 38 ed ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 f7 f0 ff ff 81 c4 04 00 hA...P.8..........h.............
1420 00 00 68 e0 00 00 0a e8 e7 f0 ff ff 81 c4 04 00 00 00 68 ce 17 00 0a 68 94 00 00 0a e8 19 f7 ff ..h...............h....h........
1440 ff 81 c4 08 00 00 00 68 dc 00 00 0a e8 19 ff ff ff 81 c4 04 00 00 00 68 dc 00 00 0a e8 09 ff ff .......h...............h........
1460 ff 81 c4 04 00 00 00 68 d4 17 00 0a 68 62 00 00 00 50 e8 cc ec ff ff 81 c4 0c 00 00 00 c3 68 94 .......h....hb...P............h.
1480 00 00 0a e8 8b f0 ff ff 81 c4 04 00 00 00 68 e0 00 00 0a e8 7b f0 ff ff 81 c4 04 00 00 00 68 dc ..............h.....{.........h.
14a0 00 00 0a e8 c2 fe ff ff 81 c4 04 00 00 00 68 fc 17 00 0a 68 ff ff ff ff 50 e8 85 ec ff ff 81 c4 ..............h....h....P.......
14c0 0c 00 00 00 c3 68 94 00 00 0a e8 44 f0 ff ff 81 c4 04 00 00 00 68 e0 00 00 0a e8 34 f0 ff ff 81 .....h.....D.........h.....4....
14e0 c4 04 00 00 00 68 27 18 00 0a 68 94 00 00 0a e8 66 f6 ff ff 81 c4 08 00 00 00 b8 dc 00 00 0a c7 .....h'...h.....f...............
1500 40 08 06 00 00 00 68 dc 00 00 0a e8 5a fe ff ff 81 c4 04 00 00 00 68 33 18 00 0a 68 41 00 00 00 @.....h.....Z.........h3...hA...
1520 50 e8 1d ec ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 56 8b 75 08 8b 4e 04 3b 0e 0f 8d 0f 00 00 00 P............U..QV.u..N.;.......
1540 31 c0 8a 44 0e 0c ff 46 04 5e 59 89 ec 5d c3 68 61 18 00 0a 68 02 00 00 00 e8 87 eb ff ff 81 c4 1..D...F.^Y..].ha...h...........
1560 08 00 00 00 bb 01 00 00 00 e8 06 eb ff ff 55 89 e5 81 7d 08 00 00 00 08 73 13 ff 75 0c ff 75 08 ..............U...}.....s..u..u.
1580 e8 46 00 00 00 81 c4 08 00 00 00 eb 3a 50 56 57 8b 7d 08 8b 75 0c 8b 06 8d 44 06 0c 50 8b 46 04 .F..........:PVW.}..u....D..P.F.
15a0 8d 44 06 0c 50 8b 47 08 8d 44 07 0c 50 8b 07 8d 44 07 0c 50 e8 4f f5 ff ff 81 c4 10 00 00 00 01 .D..P.G..D..P...D..P.O..........
15c0 07 01 46 04 5f 5e 58 89 ec 5d c3 55 89 e5 50 51 52 53 56 57 8b 75 0c 8b 7e 04 8b 16 8b 5d 08 8d ..F._^X..].U..PQRSVW.u..~....]..
15e0 4c 3e 0c 29 fa e8 99 ea ff ff 3d 00 00 00 00 0f 8c 0d 00 00 00 01 46 04 5f 5e 5b 5a 59 58 89 ec L>.)......=...........F._^[ZYX..
1600 5d c3 68 7d 18 00 0a 68 02 00 00 00 e8 d4 ea ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 53 ea ff ].h}...h.....................S..
1620 ff 68 94 00 00 0a e8 e8 ee ff ff 81 c4 04 00 00 00 68 14 05 00 0a e8 d8 ee ff ff 81 c4 04 00 00 .h...............h..............
1640 00 68 a8 18 00 0a 68 14 05 00 0a e8 0a f5 ff ff 81 c4 08 00 00 00 68 14 05 00 0a 68 94 00 00 0a .h....h...............h....h....
1660 e8 09 ff ff ff 81 c4 08 00 00 00 68 ae 18 00 0a 68 ce 18 00 0a 68 94 00 00 0a e8 1c f7 ff ff 81 ...........h....h....h..........
1680 c4 0c 00 00 00 c3 68 94 00 00 0a e8 83 ee ff ff 81 c4 04 00 00 00 68 14 05 00 0a e8 73 ee ff ff ......h...............h.....s...
16a0 81 c4 04 00 00 00 68 d4 18 00 0a 68 14 05 00 0a e8 a5 f4 ff ff 81 c4 08 00 00 00 68 14 05 00 0a ......h....h...............h....
16c0 68 94 00 00 0a e8 a4 fe ff ff 81 c4 08 00 00 00 68 d9 18 00 0a 68 14 05 00 0a e8 7b f4 ff ff 81 h...............h....h.....{....
16e0 c4 08 00 00 00 68 14 05 00 0a 68 94 00 00 0a e8 7a fe ff ff 81 c4 08 00 00 00 68 de 18 00 0a 68 .....h....h.....z.........h....h
1700 ff 18 00 0a 68 94 00 00 0a e8 8d f6 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 68 05 19 00 0a ff 75 0c ....h................U..h.....u.
1720 e8 35 f4 ff ff 81 c4 08 00 00 00 ff 75 10 ff 75 0c e8 24 f4 ff ff 81 c4 08 00 00 00 68 08 00 00 .5..........u..u..$.........h...
1740 0a ff 75 0c e8 11 f4 ff ff 81 c4 08 00 00 00 68 01 00 00 00 ff 75 08 e8 ff f8 ff ff 89 ec 5d c3 ..u............h.....u........].
1760 55 89 e5 51 57 8b 7d 08 8b 4f 04 3b 4f 0c 7c 1d 57 e8 29 00 00 00 81 c4 04 00 00 00 8d 47 04 50 U..QW.}..O.;O.|.W.)..........G.P
1780 e8 8e ed ff ff 81 c4 04 00 00 00 31 c9 31 c0 8a 45 0c 88 44 0f 10 ff 47 04 5f 59 89 ec 5d c3 55 ...........1.1..E..D...G._Y..].U
17a0 89 e5 50 51 8b 45 08 8d 48 04 51 ff 30 e8 bc fd ff ff 81 c4 08 00 00 00 59 58 89 ec 5d c3 68 94 ..PQ.E..H.Q.0...........YX..].h.
17c0 00 00 0a e8 4b ed ff ff 81 c4 04 00 00 00 68 e0 00 00 0a e8 3b ed ff ff 81 c4 04 00 00 00 68 41 ....K.........h.....;.........hA
17e0 00 00 00 68 dc 00 00 0a e8 73 ff ff ff 81 c4 08 00 00 00 68 dc 00 00 0a e8 a2 ff ff ff 81 c4 04 ...h.....s.........h............
1800 00 00 00 68 10 19 00 0a 68 37 19 00 0a 68 94 00 00 0a e8 84 f5 ff ff 81 c4 0c 00 00 00 c3 68 94 ...h....h7...h................h.
1820 00 00 0a e8 eb ec ff ff 81 c4 04 00 00 00 68 e0 00 00 0a e8 db ec ff ff 81 c4 04 00 00 00 68 3c ..............h...............h<
1840 19 00 0a 68 e0 00 00 0a e8 0d f3 ff ff 81 c4 08 00 00 00 68 67 00 00 00 68 dc 00 00 0a e8 fe fe ...h...............hg...h.......
1860 ff ff 81 c4 08 00 00 00 68 dc 00 00 0a e8 2d ff ff ff 81 c4 04 00 00 00 68 46 19 00 0a 68 77 19 ........h.....-.........hF...hw.
1880 00 0a 68 94 00 00 0a e8 0f f5 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 57 8b 7d 08 8b 0f 3b 4f 08 ..h................U..QW.}...;O.
18a0 7d 11 31 c0 8a 45 0c 88 44 0f 0c ff 07 5f 59 89 ec 5d c3 68 82 19 00 0a 68 02 00 00 00 e8 23 e8 }.1..E..D...._Y..].h....h.....#.
18c0 ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 a2 e7 ff ff 68 94 00 00 0a e8 37 ec ff ff 81 c4 04 00 ..................h.....7.......
18e0 00 00 68 41 00 00 00 68 94 00 00 0a e8 a2 ff ff ff 81 c4 08 00 00 00 68 a0 19 00 0a 68 bf 19 00 ..hA...h...............h....h...
1900 0a 68 94 00 00 0a e8 90 f4 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 50 51 52 53 56 57 8b 45 0c 8d 70 .h................U..PQRSVW.E..p
1920 04 8b 08 8d 0c 0e 8b 7d 08 8b 57 0c 8b 5f 04 39 ce 73 30 39 d3 7c 20 89 5f 04 57 e8 5f fe ff ff .......}..W.._.9.s09.|.._.W._...
1940 81 c4 04 00 00 00 8d 47 04 50 e8 c4 eb ff ff 81 c4 04 00 00 00 31 db 31 c0 8a 06 88 44 1f 10 43 .......G.P...........1.1....D..C
1960 46 eb cc 89 5f 04 5f 5e 5b 5a 59 58 89 ec 5d c3 68 94 00 00 0a e8 99 eb ff ff 81 c4 04 00 00 00 F..._._^[ZYX..].h...............
1980 68 e0 00 00 0a e8 89 eb ff ff 81 c4 04 00 00 00 68 c4 19 00 0a 68 dc 00 00 0a e8 73 ff ff ff 81 h...............h....h.....s....
19a0 c4 08 00 00 00 68 dc 00 00 0a e8 f0 fd ff ff 81 c4 04 00 00 00 68 cb 19 00 0a 68 ed 19 00 0a 68 .....h...............h....h....h
19c0 94 00 00 0a e8 d2 f3 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 39 eb ff ff 81 c4 04 00 00 00 ................h.....9.........
19e0 68 e0 00 00 0a e8 29 eb ff ff 81 c4 04 00 00 00 68 f4 19 00 0a 68 dc 00 00 0a e8 13 ff ff ff 81 h.....).........h....h..........
1a00 c4 08 00 00 00 68 ff 19 00 0a 68 06 00 00 00 b8 94 00 00 0a ff 30 e8 28 e7 ff ff 81 c4 0c 00 00 .....h....h..........0.(........
1a20 00 68 40 1a 00 0a 68 01 00 00 00 b8 dc 00 00 0a ff 70 04 e8 0b e7 ff ff 81 c4 0c 00 00 00 c3 3d .h@...h..........p.............=
1a40 09 00 00 00 7f 06 05 30 00 00 00 c3 05 57 00 00 00 c3 55 89 e5 50 8b 45 0c c1 e8 04 25 0f 00 00 .......0.....W....U..P.E....%...
1a60 00 e8 d9 ff ff ff 50 ff 75 08 e8 24 fe ff ff 81 c4 08 00 00 00 8b 45 0c 25 0f 00 00 00 e8 bd ff ......P.u..$..........E.%.......
1a80 ff ff 50 ff 75 08 e8 08 fe ff ff 81 c4 08 00 00 00 58 89 ec 5d c3 68 94 00 00 0a e8 73 ea ff ff ..P.u............X..].h.....s...
1aa0 81 c4 04 00 00 00 68 0a 00 00 00 68 94 00 00 0a e8 9d ff ff ff 81 c4 08 00 00 00 68 84 1a 00 0a ......h....h...............h....
1ac0 68 a0 1a 00 0a 68 94 00 00 0a e8 cc f2 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 50 8b 45 0c c1 e8 04 h....h................U..P.E....
1ae0 25 0f 00 00 00 e8 55 ff ff ff 50 ff 75 08 e8 6d fc ff ff 81 c4 08 00 00 00 8b 45 0c 25 0f 00 00 %.....U...P.u..m..........E.%...
1b00 00 e8 39 ff ff ff 50 ff 75 08 e8 51 fc ff ff 81 c4 08 00 00 00 58 89 ec 5d c3 68 94 00 00 0a e8 ..9...P.u..Q.........X..].h.....
1b20 ef e9 ff ff 81 c4 04 00 00 00 68 e0 00 00 0a e8 df e9 ff ff 81 c4 04 00 00 00 68 0a 00 00 00 68 ..........h...............h....h
1b40 dc 00 00 0a e8 8d ff ff ff 81 c4 08 00 00 00 68 dc 00 00 0a e8 46 fc ff ff 81 c4 04 00 00 00 68 ...............h.....F.........h
1b60 a6 1a 00 0a 68 ca 1a 00 0a 68 94 00 00 0a e8 28 f2 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 68 d0 1a ....h....h.....(..........U..h..
1b80 00 0a ff 75 08 e8 d0 ef ff ff 81 c4 08 00 00 00 68 20 00 00 00 ff 75 0c ff 75 08 e8 0a 00 00 00 ...u............h.....u..u......
1ba0 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 8b 4d 10 81 e9 04 00 00 00 81 f9 00 00 00 00 7c 26 ........].U..PQ.M.............|&
1bc0 8b 45 0c d3 e8 25 0f 00 00 00 e8 70 fe ff ff 50 ff 75 08 e8 bb fc ff ff 81 c4 08 00 00 00 81 e9 .E...%.....p...P.u..............
1be0 04 00 00 00 eb d2 59 58 89 ec 5d c3 68 94 00 00 0a e8 1d e9 ff ff 81 c4 04 00 00 00 68 aa 99 88 ......YX..].h...............h...
1c00 00 68 94 00 00 0a e8 6f ff ff ff 81 c4 08 00 00 00 68 d6 1a 00 0a 68 f2 1a 00 0a 68 94 00 00 0a .h.....o.........h....h....h....
1c20 e8 76 f1 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 68 00 1b 00 0a ff 75 08 e8 d6 fc ff ff 81 c4 08 00 .v..........U..h.....u..........
1c40 00 00 68 20 00 00 00 ff 75 0c ff 75 08 e8 0a 00 00 00 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 ..h.....u..u..............].U..P
1c60 51 8b 4d 10 81 e9 04 00 00 00 81 f9 00 00 00 00 7c 26 8b 45 0c d3 e8 25 0f 00 00 00 e8 be fd ff Q.M.............|&.E...%........
1c80 ff 50 ff 75 08 e8 d6 fa ff ff 81 c4 08 00 00 00 81 e9 04 00 00 00 eb d2 59 58 89 ec 5d c3 68 94 .P.u....................YX..].h.
1ca0 00 00 0a e8 6b e8 ff ff 81 c4 04 00 00 00 68 e0 00 00 0a e8 5b e8 ff ff 81 c4 04 00 00 00 68 aa ....k.........h.....[.........h.
1cc0 99 88 00 68 dc 00 00 0a e8 5f ff ff ff 81 c4 08 00 00 00 68 dc 00 00 0a e8 c2 fa ff ff 81 c4 04 ...h....._.........h............
1ce0 00 00 00 68 06 1b 00 0a 68 2b 1b 00 0a 68 94 00 00 0a e8 a4 f0 ff ff 81 c4 0c 00 00 00 c3 55 89 ...h....h+...h................U.
1d00 e5 51 52 53 8b 4d 08 8b 51 04 8b 09 b8 00 00 00 00 39 d1 73 4c 31 db 8a 19 81 fb 2d 00 00 00 75 .QRS.M..Q........9.sL1.....-...u
1d20 01 41 31 db 8a 19 81 fb 30 00 00 00 75 12 41 39 d1 73 29 31 db 8a 19 81 fb 78 00 00 00 75 01 41 .A1.....0...u.A9.s)1.....x...u.A
1d40 39 d1 73 18 8a 01 50 e8 11 04 00 00 81 c4 04 00 00 00 3d 00 00 00 00 74 08 41 eb e4 b8 01 00 00 9.s...P...........=....t.A......
1d60 00 5b 5a 59 89 ec 5d c3 55 89 e5 b8 39 1b 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 .[ZY..].U...9......L.......QP..Q
1d80 e8 79 ff ff ff 81 c4 04 00 00 00 68 3f 1b 00 0a 68 01 00 00 00 50 e8 a8 e3 ff ff 81 c4 0c 00 00 .y.........h?...h....P..........
1da0 00 89 ec 5d c3 55 89 e5 b8 56 1b 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 3c ff ...].U...V......L.......QP..Q.<.
1dc0 ff ff 81 c4 04 00 00 00 68 5d 1b 00 0a 68 01 00 00 00 50 e8 6b e3 ff ff 81 c4 0c 00 00 00 89 ec ........h]...h....P.k...........
1de0 5d c3 55 89 e5 b8 84 1b 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 ff fe ff ff 81 ].U..........L.......QP..Q......
1e00 c4 04 00 00 00 68 8b 1b 00 0a 68 00 00 00 00 50 e8 2e e3 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 .....h....h....P.............].U
1e20 89 e5 b8 b5 1b 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 c2 fe ff ff 81 c4 04 00 ..........L.......QP..Q.........
1e40 00 00 68 bc 1b 00 0a 68 00 00 00 00 50 e8 f1 e2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 ..h....h....P.............].U..h
1e60 00 00 00 00 68 00 00 00 00 89 e1 51 e8 8d fe ff ff 81 c4 04 00 00 00 68 e5 1b 00 0a 68 00 00 00 ....h......Q...........h....h...
1e80 00 50 e8 bc e2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 02 1c 00 0a 8b 08 8d 4c 08 04 05 .P.............].U..........L...
1ea0 04 00 00 00 51 50 89 e1 51 e8 50 fe ff ff 81 c4 04 00 00 00 68 0a 1c 00 0a 68 01 00 00 00 50 e8 ....QP..Q.P.........h....h....P.
1ec0 7f e2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 33 1c 00 0a 8b 08 8d 4c 08 04 05 04 00 00 ............].U...3......L......
1ee0 00 51 50 89 e1 51 e8 13 fe ff ff 81 c4 04 00 00 00 68 3b 1c 00 0a 68 01 00 00 00 50 e8 42 e2 ff .QP..Q...........h;...h....P.B..
1f00 ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 63 1c 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 .........].U...c......L.......QP
1f20 89 e1 51 e8 d6 fd ff ff 81 c4 04 00 00 00 68 6c 1c 00 0a 68 01 00 00 00 50 e8 05 e2 ff ff 81 c4 ..Q...........hl...h....P.......
1f40 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 8b 45 08 8d 48 04 8b 10 8d 54 10 04 52 51 e8 2c 00 00 00 ......].U..QR.E..H....T..RQ.,...
1f60 81 c4 08 00 00 00 5a 59 89 ec 5d c3 55 89 e5 51 52 8b 4d 08 8b 51 04 8b 09 52 51 e8 0c 00 00 00 ......ZY..].U..QR.M..Q...RQ.....
1f80 81 c4 08 00 00 00 5a 59 89 ec 5d c3 55 89 e5 51 52 53 56 8b 4d 08 8b 55 0c 31 db 31 f6 31 c0 8a ......ZY..].U..QRSV.M..U.1.1.1..
1fa0 01 3d 2d 00 00 00 75 06 41 be 01 00 00 00 8a 01 3d 30 00 00 00 75 11 41 39 d1 73 29 31 c0 8a 01 .=-...u.A.......=0...u.A9.s)1...
1fc0 3d 78 00 00 00 75 01 41 39 d1 73 0f 8a 01 e8 d6 02 00 00 c1 e3 04 01 c3 41 eb ed 81 fe 00 00 00 =x...u.A9.s.............A.......
1fe0 00 74 02 f7 db 89 d8 5e 5b 5a 59 89 ec 5d c3 55 89 e5 b8 9e 1c 00 0a 8b 08 8d 4c 08 04 05 04 00 .t.....^[ZY..].U..........L.....
2000 00 00 51 50 89 e1 51 e8 60 ff ff ff 81 c4 04 00 00 00 68 a3 1c 00 0a 68 0a 00 00 00 50 e8 21 e1 ..QP..Q.`.........h....h....P.!.
2020 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 d5 1c 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 ..........].U..........L.......Q
2040 50 89 e1 51 e8 23 ff ff ff 81 c4 04 00 00 00 68 dc 1c 00 0a 68 4a 03 00 00 50 e8 e4 e0 ff ff 81 P..Q.#.........h....hJ...P......
2060 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 0d 1d 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 .......].U..........L.......QP..
2080 51 e8 e6 fe ff ff 81 c4 04 00 00 00 68 15 1d 00 0a 68 34 00 00 00 50 e8 a7 e0 ff ff 81 c4 0c 00 Q...........h....h4...P.........
20a0 00 00 89 ec 5d c3 55 89 e5 b8 44 1d 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 a9 ....].U...D......L.......QP..Q..
20c0 fe ff ff 81 c4 04 00 00 00 68 49 1d 00 0a 68 00 00 00 00 50 e8 6a e0 ff ff 81 c4 0c 00 00 00 89 .........hI...h....P.j..........
20e0 ec 5d c3 55 89 e5 b8 73 1d 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 6c fe ff ff .].U...s......L.......QP..Q.l...
2100 81 c4 04 00 00 00 68 79 1d 00 0a 68 03 00 00 00 50 e8 2d e0 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 ......hy...h....P.-...........].
2120 55 89 e5 b8 a7 1d 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 2f fe ff ff 81 c4 04 U..........L.......QP..Q./......
2140 00 00 00 68 ae 1d 00 0a 68 fd ff ff ff 50 e8 f0 df ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 ...h....h....P.............].U..
2160 51 8b 4d 08 81 f9 30 00 00 00 7c 1d 81 f9 39 00 00 00 7e 1c 25 5f 00 00 00 81 f9 66 00 00 00 7f Q.M...0...|...9...~.%_.....f....
2180 08 81 f9 61 00 00 00 7d 07 b8 00 00 00 00 eb 05 b8 01 00 00 00 59 89 ec 5d c3 68 2f 00 00 00 e8 ...a...}.............Y..].h/....
21a0 b9 ff ff ff 81 c4 04 00 00 00 68 dc 1d 00 0a 68 00 00 00 00 50 e8 89 df ff ff 81 c4 0c 00 00 00 ..........h....h....P...........
21c0 c3 68 30 00 00 00 e8 92 ff ff ff 81 c4 04 00 00 00 68 f4 1d 00 0a 68 01 00 00 00 50 e8 62 df ff .h0..............h....h....P.b..
21e0 ff 81 c4 0c 00 00 00 68 39 00 00 00 e8 6c ff ff ff 81 c4 04 00 00 00 68 09 1e 00 0a 68 01 00 00 .......h9....l.........h....h...
2200 00 50 e8 3c df ff ff 81 c4 0c 00 00 00 c3 68 3a 00 00 00 e8 45 ff ff ff 81 c4 04 00 00 00 68 1e .P.<..........h:....E.........h.
2220 1e 00 0a 68 00 00 00 00 50 e8 15 df ff ff 81 c4 0c 00 00 00 c3 68 61 00 00 00 e8 1e ff ff ff 81 ...h....P............ha.........
2240 c4 04 00 00 00 68 3b 1e 00 0a 68 01 00 00 00 50 e8 ee de ff ff 81 c4 0c 00 00 00 68 66 00 00 00 .....h;...h....P...........hf...
2260 e8 f8 fe ff ff 81 c4 04 00 00 00 68 50 1e 00 0a 68 01 00 00 00 50 e8 c8 de ff ff 81 c4 0c 00 00 ...........hP...h....P..........
2280 00 c3 68 67 00 00 00 e8 d1 fe ff ff 81 c4 04 00 00 00 68 65 1e 00 0a 68 00 00 00 00 50 e8 a1 de ..hg..............he...h....P...
22a0 ff ff 81 c4 0c 00 00 00 c3 3d 30 00 00 00 7c 21 3d 66 00 00 00 7f 1a 3d 39 00 00 00 7f 06 2d 30 .........=0...|!=f.....=9.....-0
22c0 00 00 00 c3 3d 61 00 00 00 7c 06 2d 57 00 00 00 c3 68 7d 1e 00 0a 68 02 00 00 00 e8 05 de ff ff ....=a...|.-W....h}...h.........
22e0 81 c4 08 00 00 00 50 68 88 0e 00 0a e8 22 e2 ff ff 81 c4 04 00 00 00 58 50 68 84 0e 00 0a e8 29 ......Ph.....".........XPh.....)
2300 f9 ff ff 81 c4 08 00 00 00 68 84 0e 00 0a e8 8c f4 ff ff 81 c4 04 00 00 00 68 08 00 00 0a 68 02 .........h...............h....h.
2320 00 00 00 e8 bd dd ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 3c dd ff ff 55 89 e5 68 93 1e 00 0a ....................<...U..h....
2340 ff 75 0c e8 ca f5 ff ff 81 c4 08 00 00 00 ff 75 10 ff 75 0c e8 b9 f5 ff ff 81 c4 08 00 00 00 68 .u.............u..u............h
2360 9e 1e 00 0a ff 75 0c e8 a6 f5 ff ff 81 c4 08 00 00 00 ff 75 14 ff 75 0c e8 59 f7 ff ff 81 c4 08 .....u.............u..u..Y......
2380 00 00 00 68 08 00 00 0a ff 75 0c e8 82 f5 ff ff 81 c4 08 00 00 00 ff 75 0c e8 01 f4 ff ff 81 c4 ...h.....u.............u........
23a0 04 00 00 00 68 01 00 00 00 ff 75 08 e8 aa ec ff ff 89 ec 5d c3 68 a0 0e 00 0a ff 35 a8 0e 00 0a ....h.....u........].h.....5....
23c0 e8 a9 df ff ff 81 c4 08 00 00 00 e8 af 67 00 00 8b 1d 0d 00 00 0a e8 99 dc ff ff 55 89 e5 50 ff .............g.............U..P.
23e0 75 10 ff 75 0c ff 75 08 e8 25 00 00 00 81 c4 0c 00 00 00 8b 45 10 8b 40 04 05 04 00 00 00 ff 75 u..u..u..%..........E..@.......u
2400 0c 50 e8 cf 05 00 00 81 c4 08 00 00 00 58 89 ec 5d c3 55 89 e5 50 51 52 53 56 57 8b 4d 08 8b 55 .P...........X..].U..PQRSVW.M..U
2420 10 8b 5d 0c 8b 05 ac 0e 00 0a 89 02 8b 01 89 42 04 8b 7a 04 8b 35 ac 0e 00 0a 89 37 ff 05 ac 0e ..]............B..z..5.....7....
2440 00 0a 8d 44 18 04 3b 41 04 73 0c 89 01 5f 5e 5b 5a 59 58 89 ec 5d c3 68 a4 1e 00 0a 68 02 00 00 ...D..;A.s..._^[ZYX..].h....h...
2460 00 e8 7f dc ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 fe db ff ff 55 89 e5 68 00 00 00 00 68 00 ......................U..h....h.
2480 00 00 00 89 e1 51 68 00 02 00 00 e8 de de ff ff 81 c4 08 00 00 00 8b 19 68 00 00 00 00 68 00 00 .....Qh.................h....h..
24a0 00 00 89 e2 c7 05 ac 0e 00 0a 34 00 00 00 52 68 03 00 00 00 51 e8 58 ff ff ff 81 c4 0c 00 00 00 ..........4...Rh....Q.X.........
24c0 68 b9 1e 00 0a 68 34 00 00 00 ff 32 e8 72 dc ff ff 81 c4 0c 00 00 00 68 f3 1e 00 0a 53 ff 72 04 h....h4....2.r.........h....S.r.
24e0 e8 5e dc ff ff 81 c4 0c 00 00 00 68 2c 1f 00 0a 68 34 00 00 00 ff 33 e8 47 dc ff ff 81 c4 0c 00 .^.........h,...h4....3.G.......
2500 00 00 68 67 1f 00 0a 68 35 00 00 00 ff 35 ac 0e 00 0a e8 2c dc ff ff 81 c4 0c 00 00 00 68 a2 1f ..hg...h5....5.....,.........h..
2520 00 0a 68 07 00 00 00 8b 01 29 d8 50 e8 12 dc ff ff 81 c4 0c 00 00 00 c7 05 ac 0e 00 0a 00 01 00 ..h......).P....................
2540 00 89 ec 5d c3 55 89 e5 51 31 c0 8b 4d 08 81 f9 00 00 00 00 74 0c 8b 45 0c 39 08 75 0a 05 04 00 ...].U..Q1..M.......t..E.9.u....
2560 00 00 59 89 ec 5d c3 68 e2 1f 00 0a 68 02 00 00 00 e8 6f db ff ff 81 c4 08 00 00 00 bb 01 00 00 ..Y..].h....h.....o.............
2580 00 e8 ee da ff ff 55 89 e5 68 00 00 00 00 68 00 00 00 00 89 e3 53 68 00 02 00 00 e8 ce dd ff ff ......U..h....h......Sh.........
25a0 81 c4 08 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 8b 13 51 68 02 00 00 00 53 e8 52 fe ff ff ......h....h........Qh....S.R...
25c0 81 c4 0c 00 00 00 ff 71 04 ff 31 e8 75 ff ff ff 81 c4 08 00 00 00 68 f4 1f 00 0a 81 c2 04 00 00 .......q..1.u.........h.........
25e0 00 52 50 e8 5b db ff ff 81 c4 0c 00 00 00 c7 05 ac 0e 00 0a 00 01 00 00 89 ec 5d c3 55 89 e5 68 .RP.[.....................].U..h
2600 00 00 00 00 68 00 00 00 00 89 e1 ff 71 04 ff 31 e8 30 ff ff ff 81 c4 08 00 00 00 68 0f 20 00 0a ....h.......q..1.0.........h....
2620 68 00 00 00 00 50 e8 18 db ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 00 00 00 00 68 00 00 h....P.............].U..h....h..
2640 00 00 89 e6 56 68 00 02 00 00 e8 1f dd ff ff 81 c4 08 00 00 00 68 00 00 00 00 68 00 00 00 00 89 ....Vh...............h....h.....
2660 e1 8b 1e 51 68 02 00 00 00 56 e8 6c fd ff ff 81 c4 0c 00 00 00 89 1e 68 00 00 00 00 68 00 00 00 ...Qh....V.l...........h....h...
2680 00 89 e2 52 68 02 00 00 00 56 e8 4c fd ff ff 81 c4 0c 00 00 00 68 34 20 00 0a ff 72 04 ff 71 04 ...Rh....V.L.........h4....r..q.
26a0 e8 9e da ff ff 81 c4 0c 00 00 00 ff 71 04 ff 31 e8 90 fe ff ff 81 c4 08 00 00 00 c7 05 ac 0e 00 ............q..1................
26c0 0a 00 01 00 00 89 ec 5d c3 55 89 e5 51 b8 00 00 00 00 8b 4d 08 39 4d 10 75 0d 8b 4d 0c 39 4d 14 .......].U..Q......M.9M.u..M.9M.
26e0 75 05 b8 01 00 00 00 59 89 ec 5d c3 55 89 e5 50 51 8b 4d 10 8b 45 08 89 01 8b 45 0c 89 41 04 59 u......Y..].U..PQ.M..E....E..A.Y
2700 58 89 ec 5d c3 55 89 e5 50 51 ff 75 10 ff 75 0c ff 75 08 e8 c3 fc ff ff 81 c4 0c 00 00 00 8b 45 X..].U..PQ.u..u..u.............E
2720 10 8b 40 04 05 04 00 00 00 3d 00 00 00 00 74 18 89 c1 81 c1 08 00 00 00 89 08 89 c1 03 4d 0c 89 ..@......=....t..............M..
2740 48 04 59 58 89 ec 5d c3 68 4f 20 00 0a 68 02 00 00 00 e8 8e d9 ff ff 81 c4 08 00 00 00 bb 01 00 H.YX..].hO...h..................
2760 00 00 e8 0d d9 ff ff 55 89 e5 50 51 52 8b 4d 0c 8d 51 04 ff 75 10 52 ff 75 08 e8 5c fc ff ff 81 .......U..PQR.M..Q..u.R.u..\....
2780 c4 0c 00 00 00 8b 45 10 8b 40 04 05 04 00 00 00 89 08 5a 59 58 89 ec 5d c3 55 89 e5 68 00 00 00 ......E..@........ZYX..].U..h...
27a0 00 68 00 00 00 00 89 e1 51 68 00 02 00 00 e8 bb db ff ff 81 c4 08 00 00 00 8b 19 68 00 00 00 00 .h......Qh.................h....
27c0 68 00 00 00 00 89 e2 c7 05 ac 0e 00 0a 34 00 00 00 52 68 03 00 00 00 51 e8 8a ff ff ff 81 c4 0c h............4...Rh....Q........
27e0 00 00 00 68 77 20 00 0a 68 34 00 00 00 ff 32 e8 4f d9 ff ff 81 c4 0c 00 00 00 68 ab 20 00 0a 53 ...hw...h4....2.O.........h....S
2800 ff 72 04 e8 3b d9 ff ff 81 c4 0c 00 00 00 68 de 20 00 0a 68 34 00 00 00 ff 33 e8 24 d9 ff ff 81 .r..;.........h....h4....3.$....
2820 c4 0c 00 00 00 68 13 21 00 0a 68 03 00 00 00 ff 73 04 e8 0c d9 ff ff 81 c4 0c 00 00 00 68 4a 21 .....h.!..h.....s............hJ!
2840 00 0a 68 35 00 00 00 ff 35 ac 0e 00 0a e8 f1 d8 ff ff 81 c4 0c 00 00 00 68 7f 21 00 0a 68 0b 00 ..h5....5...............h.!..h..
2860 00 00 8b 01 29 d8 50 e8 d7 d8 ff ff 81 c4 0c 00 00 00 c7 05 ac 0e 00 0a 01 00 00 00 89 ec 5d c3 ....).P.......................].
2880 55 89 e5 50 51 52 56 8b 75 0c 8b 0e 81 c1 04 00 00 00 ff 75 10 51 ff 75 08 e8 3d fb ff ff 81 c4 U..PQRV.u..........u.Q.u..=.....
28a0 0c 00 00 00 8b 45 10 8b 40 04 05 04 00 00 00 01 c1 8b 16 8d 54 16 04 52 56 51 50 e8 48 e2 ff ff .....E..@...........T..RVQP.H...
28c0 81 c4 10 00 00 00 5e 5a 59 58 89 ec 5d c3 55 89 e5 68 05 00 00 00 68 04 00 00 00 68 03 00 00 00 ......^ZYX..].U..h....h....h....
28e0 68 0c 00 00 00 89 e6 68 00 00 00 00 68 00 00 00 00 89 e1 51 68 00 02 00 00 e8 70 da ff ff 81 c4 h......h....h......Qh.....p.....
2900 08 00 00 00 8b 19 68 00 00 00 00 68 00 00 00 00 89 e2 c7 05 ac 0e 00 0a 34 00 00 00 52 56 51 e8 ......h....h............4...RVQ.
2920 5c ff ff ff 81 c4 0c 00 00 00 68 b9 21 00 0a 68 34 00 00 00 ff 32 e8 08 d8 ff ff 81 c4 0c 00 00 \.........h.!..h4....2..........
2940 00 68 e9 21 00 0a 53 ff 72 04 e8 f4 d7 ff ff 81 c4 0c 00 00 00 68 18 22 00 0a 68 34 00 00 00 ff .h.!..S.r............h."..h4....
2960 32 e8 dd d7 ff ff 81 c4 0c 00 00 00 ff 72 04 ff 32 e8 cf fb ff ff 81 c4 08 00 00 00 68 49 22 00 2............r..2...........hI".
2980 0a 68 0c 00 00 00 ff 30 e8 b6 d7 ff ff 81 c4 0c 00 00 00 68 7c 22 00 0a 68 35 00 00 00 ff 35 ac .h.....0...........h|"..h5....5.
29a0 0e 00 0a e8 9b d7 ff ff 81 c4 0c 00 00 00 68 ad 22 00 0a 68 14 00 00 00 8b 01 29 d8 50 e8 81 d7 ..............h."..h......).P...
29c0 ff ff 81 c4 0c 00 00 00 c7 05 ac 0e 00 0a 01 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 56 8b 75 08 ....................].U..PQRV.u.
29e0 31 c9 8b 55 0c 39 d1 7d 07 c6 06 00 46 41 eb f5 5e 5a 59 58 89 ec 5d c3 55 89 e5 68 34 35 36 37 1..U.9.}....FA..^ZYX..].U..h4567
2a00 89 e1 68 03 00 00 00 51 e8 c9 ff ff ff 81 c4 08 00 00 00 68 e3 22 00 0a 68 00 00 00 37 ff 31 e8 ..h....Q...........h."..h...7.1.
2a20 1f d7 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 52 8b 45 10 31 d2 f7 65 0c 81 fa 00 00 00 ............].U..PR.E.1..e......
2a40 00 75 39 89 c2 05 0c 00 00 00 ff 75 14 50 ff 75 08 e8 85 f9 ff ff 81 c4 0c 00 00 00 8b 45 14 8b .u9........u.P.u.............E..
2a60 40 04 05 04 00 00 00 89 50 08 50 e8 a3 da ff ff 81 c4 04 00 00 00 5a 58 89 ec 5d c3 68 f8 22 00 @.......P.P...........ZX..].h.".
2a80 0a 68 02 00 00 00 e8 5a d6 ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 d9 d5 ff ff 55 89 e5 68 00 .h.....Z...................U..h.
2aa0 00 00 00 68 00 00 00 00 89 e1 51 68 00 02 00 00 e8 b9 d8 ff ff 81 c4 08 00 00 00 8b 11 68 00 00 ...h......Qh.................h..
2ac0 00 00 68 00 00 00 00 89 e3 53 68 02 00 00 00 68 03 00 00 00 51 e8 54 ff ff ff 81 c4 10 00 00 00 ..h......Sh....h....Q.T.........
2ae0 8b 43 04 68 17 23 00 0a 52 50 e8 54 d6 ff ff 81 c4 0c 00 00 00 05 04 00 00 00 68 60 23 00 0a 68 .C.h.#..RP.T..............h`#..h
2b00 06 00 00 00 ff 70 08 e8 37 d6 ff ff 81 c4 0c 00 00 00 81 c4 10 00 00 00 89 ec 5d c3 55 89 e5 50 .....p..7.................].U..P
2b20 51 52 56 57 8b 75 08 8b 4e 08 8b 7d 0c 8b 17 3b 57 08 7d 4c 3b 4e 04 7c 26 8d 46 04 50 e8 d1 d9 QRVW.u..N..}...;W.}L;N.|&.F.P...
2b40 ff ff 81 c4 04 00 00 00 31 c9 50 ff 36 e8 bb e5 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 13 31 ........1.P.6...........=....t.1
2b60 c0 8a 44 0e 10 88 44 17 0c 41 42 3d 0a 00 00 00 75 bd 89 4e 08 89 17 5f 5e 5a 59 58 89 ec 5d c3 ..D...D..AB=....u..N..._^ZYX..].
2b80 68 8c 23 00 0a 68 02 00 00 00 e8 56 d5 ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 d5 d4 ff ff 68 h.#..h.....V...................h
2ba0 94 00 00 0a e8 6a d9 ff ff 81 c4 04 00 00 00 68 e0 00 00 0a e8 5a d9 ff ff 81 c4 04 00 00 00 68 .....j.........h.....Z.........h
2bc0 b0 00 00 0a e8 4a d9 ff ff 81 c4 04 00 00 00 68 b2 23 00 0a 68 94 00 00 0a e8 7c df ff ff 81 c4 .....J.........h.#..h.....|.....
2be0 08 00 00 00 68 b0 00 00 0a 68 dc 00 00 0a e8 29 ff ff ff 81 c4 08 00 00 00 68 bb 23 00 0a 68 da ....h....h.....).........h.#..h.
2c00 23 00 0a 68 b0 00 00 0a e8 00 e4 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 f5 d8 ff ff 81 c4 #..h................h...........
2c20 04 00 00 00 68 e0 00 00 0a e8 e5 d8 ff ff 81 c4 04 00 00 00 68 b0 00 00 0a e8 d5 d8 ff ff 81 c4 ....h...............h...........
2c40 04 00 00 00 68 e0 23 00 0a 68 94 00 00 0a e8 07 df ff ff 81 c4 08 00 00 00 68 b0 00 00 0a 68 dc ....h.#..h...............h....h.
2c60 00 00 0a e8 b4 fe ff ff 81 c4 08 00 00 00 68 e6 23 00 0a 68 20 24 00 0a 68 b0 00 00 0a e8 19 e1 ..............h.#..h.$..h.......
2c80 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 50 51 52 56 57 8b 75 08 8b 4e 04 8b 7d 0c 8b 17 3b 57 08 0f .........U..PQRVW.u..N..}...;W..
2ca0 8d 29 00 00 00 3b 0e 7d 17 31 c0 8a 44 0e 0c 88 44 17 0c 41 42 3d 0a 00 00 00 0f 85 dc ff ff ff .)...;.}.1..D...D..AB=..........
2cc0 89 4e 04 89 17 5f 5e 5a 59 58 89 ec 5d c3 68 26 24 00 0a 68 02 00 00 00 e8 08 d4 ff ff 81 c4 08 .N..._^ZYX..].h&$..h............
2ce0 00 00 00 bb 01 00 00 00 e8 87 d3 ff ff 68 94 00 00 0a e8 1c d8 ff ff 81 c4 04 00 00 00 68 b0 00 .............h...............h..
2d00 00 0a e8 0c d8 ff ff 81 c4 04 00 00 00 68 43 24 00 0a 68 94 00 00 0a e8 3e de ff ff 81 c4 08 00 .............hC$..h.....>.......
2d20 00 00 68 b0 00 00 0a 68 94 00 00 0a e8 58 ff ff ff 81 c4 08 00 00 00 68 4c 24 00 0a 68 62 24 00 ..h....h.....X.........hL$..hb$.
2d40 0a 68 b0 00 00 0a e8 c2 e2 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 b7 d7 ff ff 81 c4 04 00 .h................h.............
2d60 00 00 68 b0 00 00 0a e8 a7 d7 ff ff 81 c4 04 00 00 00 68 68 24 00 0a 68 94 00 00 0a e8 d9 dd ff ..h...............hh$..h........
2d80 ff 81 c4 08 00 00 00 68 b0 00 00 0a 68 94 00 00 0a e8 f3 fe ff ff 81 c4 08 00 00 00 68 6e 24 00 .......h....h...............hn$.
2da0 0a 68 9f 24 00 0a 68 b0 00 00 0a e8 eb df ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 8b 4d 08 8b 01 .h.$..h................U..Q.M...
2dc0 3b 41 04 b8 01 00 00 00 73 05 b8 00 00 00 00 59 89 ec 5d c3 55 89 e5 68 34 00 00 00 68 34 00 00 ;A......s......Y..].U..h4...h4..
2de0 00 89 e1 51 e8 ce ff ff ff 81 c4 04 00 00 00 68 a5 24 00 0a 68 01 00 00 00 50 e8 44 d3 ff ff 81 ...Q...........h.$..h....P.D....
2e00 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 34 00 00 00 68 32 00 00 00 89 e1 51 e8 99 ff ff ff 81 c4 .......].U..h4...h2.....Q.......
2e20 04 00 00 00 68 c2 24 00 0a 68 00 00 00 00 50 e8 0f d3 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 ....h.$..h....P.............].U.
2e40 e5 68 32 00 00 00 68 34 00 00 00 89 e1 51 e8 64 ff ff ff 81 c4 04 00 00 00 68 e0 24 00 0a 68 01 .h2...h4.....Q.d.........h.$..h.
2e60 00 00 00 50 e8 da d2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 53 56 8b 75 08 8b 16 8b ...P.............].U..QRSV.u....
2e80 76 04 89 f0 29 d0 8b 5d 0c 81 fb 00 00 00 00 75 09 3d 00 00 00 00 74 27 eb 1e 39 03 75 1a 81 c3 v...)..].......u.=....t'..9.u...
2ea0 04 00 00 00 31 c0 31 c9 39 f2 73 13 8a 03 8a 0a 39 c8 75 04 43 42 eb f0 b8 00 00 00 00 eb 05 b8 ....1.1.9.s.....9.u.CB..........
2ec0 01 00 00 00 5e 5b 5a 59 89 ec 5d c3 55 89 e5 b8 12 25 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 ....^[ZY..].U....%.....L.......Q
2ee0 50 89 e1 68 19 25 00 0a 51 e8 85 ff ff ff 81 c4 08 00 00 00 68 20 25 00 0a 68 01 00 00 00 50 e8 P..h.%..Q...........h.%..h....P.
2f00 3f d2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 38 25 00 0a 8b 08 8d 4c 08 04 05 04 00 00 ?...........].U...8%.....L......
2f20 00 51 50 89 e1 68 3f 25 00 0a 51 e8 43 ff ff ff 81 c4 08 00 00 00 68 46 25 00 0a 68 00 00 00 00 .QP..h?%..Q.C.........hF%..h....
2f40 50 e8 fd d1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 64 25 00 0a 8b 08 8d 4c 08 04 05 04 P.............].U...d%.....L....
2f60 00 00 00 51 50 89 e1 68 6c 25 00 0a 51 e8 01 ff ff ff 81 c4 08 00 00 00 68 73 25 00 0a 68 00 00 ...QP..hl%..Q...........hs%..h..
2f80 00 00 50 e8 bb d1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 94 25 00 0a 8b 08 8d 4c 08 04 ..P.............].U....%.....L..
2fa0 05 04 00 00 00 51 50 89 e1 68 99 25 00 0a 51 e8 bf fe ff ff 81 c4 08 00 00 00 68 a0 25 00 0a 68 .....QP..h.%..Q...........h.%..h
2fc0 00 00 00 00 50 e8 79 d1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 00 00 00 00 68 00 00 00 ....P.y...........].U..h....h...
2fe0 00 89 e1 68 c2 25 00 0a 51 e8 85 fe ff ff 81 c4 08 00 00 00 68 c9 25 00 0a 68 00 00 00 00 50 e8 ...h.%..Q...........h.%..h....P.
3000 3f d1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 e7 25 00 0a 8b 08 8d 4c 08 04 05 04 00 00 ?...........].U....%.....L......
3020 00 51 50 89 e1 68 ed 25 00 0a 51 e8 43 fe ff ff 81 c4 08 00 00 00 68 f1 25 00 0a 68 00 00 00 00 .QP..h.%..Q.C.........h.%..h....
3040 50 e8 fd d0 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 00 00 00 00 68 00 00 00 00 89 e1 68 P.............].U..h....h......h
3060 14 26 00 0a 51 e8 09 fe ff ff 81 c4 08 00 00 00 68 18 26 00 0a 68 01 00 00 00 50 e8 c3 d0 ff ff .&..Q...........h.&..h....P.....
3080 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 41 26 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 ........].U...A&.....L.......QP.
30a0 e1 68 00 00 00 00 51 e8 c7 fd ff ff 81 c4 08 00 00 00 68 47 26 00 0a 68 00 00 00 00 50 e8 81 d0 .h....Q...........hG&..h....P...
30c0 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 53 56 57 8b 75 08 8b 4e 04 2b 0e 8b 7d 0c 8b ..........].U..QRSVW.u..N.+..}..
30e0 17 39 ca 7f 26 8b 36 81 c7 04 00 00 00 31 c9 31 c0 31 db 39 d1 7d 0d 8a 06 8a 1f 39 d8 75 0c 41 .9..&.6......1.1.1.9.}.....9.u.A
3100 46 47 eb ef b8 01 00 00 00 eb 05 b8 00 00 00 00 5f 5e 5b 5a 59 89 ec 5d c3 55 89 e5 b8 69 26 00 FG.............._^[ZY..].U...i&.
3120 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 70 26 00 0a 51 e8 91 ff ff ff 81 c4 08 00 00 ....L.......QP..hp&..Q..........
3140 00 68 75 26 00 0a 68 01 00 00 00 50 e8 f2 cf ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 a4 .hu&..h....P.............].U....
3160 26 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 ab 26 00 0a 51 e8 4f ff ff ff 81 c4 08 &.....L.......QP..h.&..Q.O......
3180 00 00 00 68 af 26 00 0a 68 01 00 00 00 50 e8 b0 cf ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 ...h.&..h....P.............].U..
31a0 b8 da 26 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 e1 26 00 0a 51 e8 0d ff ff ff 81 ..&.....L.......QP..h.&..Q......
31c0 c4 08 00 00 00 68 e7 26 00 0a 68 01 00 00 00 50 e8 6e cf ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 .....h.&..h....P.n...........].U
31e0 89 e5 b8 19 27 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 20 27 00 0a 51 e8 cb fe ff ....'.....L.......QP..h.'..Q....
3200 ff 81 c4 08 00 00 00 68 27 27 00 0a 68 01 00 00 00 50 e8 2c cf ff ff 81 c4 0c 00 00 00 89 ec 5d .......h''..h....P.,...........]
3220 c3 55 89 e5 b8 53 27 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 5a 27 00 0a 51 e8 89 .U...S'.....L.......QP..hZ'..Q..
3240 fe ff ff 81 c4 08 00 00 00 68 61 27 00 0a 68 00 00 00 00 50 e8 ea ce ff ff 81 c4 0c 00 00 00 89 .........ha'..h....P............
3260 ec 5d c3 55 89 e5 b8 85 27 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 8c 27 00 0a 51 .].U....'.....L.......QP..h.'..Q
3280 e8 47 fe ff ff 81 c4 08 00 00 00 68 92 27 00 0a 68 00 00 00 00 50 e8 a8 ce ff ff 81 c4 0c 00 00 .G.........h.'..h....P..........
32a0 00 89 ec 5d c3 55 89 e5 50 51 52 53 56 57 8b 75 0c 8b 0e 8b 76 04 8b 7d 08 8b 57 08 8b 1f 39 f1 ...].U..PQRSVW.u....v..}..W...9.
32c0 73 10 39 d3 7d 18 31 c0 8a 01 88 44 1f 0c 43 41 eb ec 89 1f 5f 5e 5b 5a 59 58 89 ec 5d c3 68 b8 s.9.}.1....D..CA...._^[ZYX..].h.
32e0 27 00 0a 68 02 00 00 00 e8 f8 cd ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 77 cd ff ff 55 89 e5 '..h.....................w...U..
3300 68 94 00 00 0a e8 09 d2 ff ff 81 c4 04 00 00 00 b8 d5 27 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 h.................'.....L.......
3320 51 50 89 e1 51 68 94 00 00 0a e8 76 ff ff ff 81 c4 08 00 00 00 68 dc 27 00 0a 68 f4 27 00 0a 68 QP..Qh.....v.........h.'..h.'..h
3340 94 00 00 0a e8 52 da ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 53 56 57 8b 75 0c 8b .....R...........].U..PQRSVW.u..
3360 0e 8b 76 04 8b 7d 08 8b 57 0c 8b 5f 04 39 f1 73 30 39 d3 7c 20 89 5f 04 57 e8 21 e4 ff ff 81 c4 ..v..}..W.._.9.s09.|.._.W.!.....
3380 04 00 00 00 8d 47 04 50 e8 86 d1 ff ff 81 c4 04 00 00 00 31 db 31 c0 8a 01 88 44 1f 10 43 41 eb .....G.P...........1.1....D..CA.
33a0 cc 89 5f 04 5f 5e 5b 5a 59 58 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 58 d1 ff ff 81 c4 04 00 00 .._._^[ZYX..].U..h.....X........
33c0 00 68 e0 00 00 0a e8 48 d1 ff ff 81 c4 04 00 00 00 b8 fb 27 00 0a 8b 08 8d 4c 08 04 05 04 00 00 .h.....H...........'.....L......
33e0 00 51 50 89 e1 51 68 dc 00 00 0a e8 63 ff ff ff 81 c4 08 00 00 00 68 dc 00 00 0a e8 9f e3 ff ff .QP..Qh.....c.........h.........
3400 81 c4 04 00 00 00 68 02 28 00 0a 68 23 28 00 0a 68 94 00 00 0a e8 81 d9 ff ff 81 c4 0c 00 00 00 ......h.(..h#(..h...............
3420 89 ec 5d c3 55 89 e5 50 51 52 53 56 8b 75 0c 8b 16 8b 5e 04 89 d9 29 d1 81 c1 04 00 00 00 ff 75 ..].U..PQRSV.u....^...)........u
3440 10 51 ff 75 08 e8 91 ef ff ff 81 c4 0c 00 00 00 8b 45 10 8b 40 04 05 04 00 00 00 3d 00 00 00 00 .Q.u.............E..@......=....
3460 74 2a 89 08 81 28 04 00 00 00 50 53 52 01 c1 51 81 c0 04 00 00 00 50 e8 8c d6 ff ff 81 c4 10 00 t*...(....PSR..Q......P.........
3480 00 00 58 5e 5b 5a 59 58 89 ec 5d c3 68 2a 28 00 0a 68 02 00 00 00 e8 4a cc ff ff 81 c4 08 00 00 ..X^[ZYX..].h*(..h.....J........
34a0 00 bb 01 00 00 00 e8 c9 cb ff ff 55 89 e5 68 00 00 00 00 68 00 00 00 00 89 e2 52 68 00 02 00 00 ...........U..h....h......Rh....
34c0 e8 a9 ce ff ff 81 c4 08 00 00 00 b8 4c 28 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 ............L(.....L.......QP..h
34e0 00 00 00 00 68 00 00 00 00 89 e3 53 51 52 e8 31 ff ff ff 81 c4 0c 00 00 00 8b 43 04 05 04 00 00 ....h......SQR.1..........C.....
3500 00 68 53 28 00 0a 50 e8 9b ce ff ff 81 c4 08 00 00 00 68 5a 28 00 0a 68 01 00 00 00 50 e8 21 cc .hS(..P...........hZ(..h....P.!.
3520 ff ff 81 c4 0c 00 00 00 81 c4 18 00 00 00 89 ec 5d c3 55 89 e5 50 51 56 57 8b 75 08 8b 7d 10 ff ................].U..PQVW.u..}..
3540 75 0c 56 e8 49 02 00 00 81 c4 08 00 00 00 8b 4e 04 8d 44 0e 0c 89 07 ff 75 0c 56 e8 a7 03 00 00 u.V.I..........N..D.....u.V.....
3560 81 c4 08 00 00 00 8b 4e 04 8d 44 0e 0c 89 47 04 5f 5e 59 58 89 ec 5d c3 55 89 e5 68 94 00 00 0a .......N..D...G._^YX..].U..h....
3580 e8 8e cf ff ff 81 c4 04 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 76 28 00 0a 68 94 00 00 ...........h....h......hv(..h...
35a0 0a e8 b4 d5 ff ff 81 c4 08 00 00 00 51 68 20 00 00 00 68 94 00 00 0a e8 76 ff ff ff 81 c4 0c 00 ............Qh....h.....v.......
35c0 00 00 68 7e 28 00 0a 68 0e 00 00 00 8b 01 81 e8 94 00 00 0a 50 e8 69 cb ff ff 81 c4 0c 00 00 00 ..h~(..h............P.i.........
35e0 68 9c 28 00 0a 68 10 00 00 00 8b 41 04 81 e8 94 00 00 0a 50 e8 4a cb ff ff 81 c4 0c 00 00 00 89 h.(..h.....A.......P.J..........
3600 ec 5d c3 55 89 e5 68 94 00 00 0a e8 03 cf ff ff 81 c4 04 00 00 00 68 00 00 00 00 68 00 00 00 00 .].U..h...............h....h....
3620 89 e1 51 68 20 00 00 00 68 94 00 00 0a e8 00 ff ff ff 81 c4 0c 00 00 00 68 b8 28 00 0a ff 71 04 ..Qh....h...............h.(...q.
3640 ff 31 e8 fc ca ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 57 8b 4d 0c 8b 55 10 8b 7d .1.............].U..PQRW.M..U..}
3660 14 52 51 ff 75 08 e8 6a 04 00 00 81 c4 0c 00 00 00 89 07 52 51 50 e8 6b 05 00 00 81 c4 0c 00 00 .RQ.u..j...........RQP.k........
3680 00 89 47 04 5f 5a 59 58 89 ec 5d c3 55 89 e5 b8 d3 28 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 68 ..G._ZYX..].U....(.....L.......h
36a0 00 00 00 00 68 00 00 00 00 89 e7 57 68 20 00 00 00 51 50 e8 99 ff ff ff 81 c4 10 00 00 00 68 db ....h......Wh....QP...........h.
36c0 28 00 0a 68 02 00 00 00 8b 0f 2b c8 51 e8 71 ca ff ff 81 c4 0c 00 00 00 68 04 29 00 0a 68 04 00 (..h......+.Q.q.........h.)..h..
36e0 00 00 8b 4f 04 2b c8 51 e8 56 ca ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 00 00 00 00 68 ...O.+.Q.V...........].U..h....h
3700 00 00 00 00 89 e7 57 68 20 00 00 00 68 00 00 00 00 68 00 00 00 00 e8 36 ff ff ff 81 c4 10 00 00 ......Wh....h....h.....6........
3720 00 68 2b 29 00 0a 68 00 00 00 00 8b 4f 04 2b 0f 51 e8 0d ca ff ff 81 c4 0c 00 00 00 89 ec 5d c3 .h+)..h.....O.+.Q.............].
3740 55 89 e5 b8 51 29 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e7 57 U...Q).....L.......h....h......W
3760 68 20 00 00 00 51 50 e8 e5 fe ff ff 81 c4 10 00 00 00 68 59 29 00 0a 68 00 00 00 00 8b 4f 04 2b h....QP...........hY)..h.....O.+
3780 0f 51 e8 bc c9 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 53 56 8b 75 08 8b 4e 04 8b .Q.............].U..PQRSV.u..N..
37a0 1e 8b 55 0c 39 d9 7d 0d 31 c0 8a 44 0e 0c 39 d0 75 03 41 eb ef 89 4e 04 5e 5b 5a 59 58 89 ec 5d ..U.9.}.1..D..9.u.A...N.^[ZYX..]
37c0 c3 68 94 00 00 0a e8 48 cd ff ff 81 c4 04 00 00 00 68 7f 29 00 0a 68 94 00 00 0a e8 7a d3 ff ff .h.....H.........h.)..h.....z...
37e0 81 c4 08 00 00 00 68 20 00 00 00 68 94 00 00 0a e8 9c ff ff ff 81 c4 08 00 00 00 68 87 29 00 0a ......h....h...............h.)..
3800 68 02 00 00 00 b8 94 00 00 0a ff 70 04 e8 31 c9 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 f0 h..........p..1..........h......
3820 cc ff ff 81 c4 04 00 00 00 68 a7 29 00 0a 68 94 00 00 0a e8 22 d3 ff ff 81 c4 08 00 00 00 68 20 .........h.)..h.....".........h.
3840 00 00 00 68 94 00 00 0a e8 44 ff ff ff 81 c4 08 00 00 00 68 ad 29 00 0a 68 00 00 00 00 b8 94 00 ...h.....D.........h.)..h.......
3860 00 0a ff 70 04 e8 d9 c8 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 50 51 53 56 8b 75 08 8b 4e 04 8b 1e ...p.............U..PQSV.u..N...
3880 39 d9 7d 25 31 c0 8a 44 0e 0c 3d 20 00 00 00 74 15 3d 0a 00 00 00 74 0e 3d 09 00 00 00 74 07 3d 9.}%1..D..=....t.=....t.=....t.=
38a0 0d 00 00 00 75 03 41 eb d7 89 4e 04 5e 5b 59 58 89 ec 5d c3 68 94 00 00 0a e8 55 cc ff ff 81 c4 ....u.A...N.^[YX..].h.....U.....
38c0 04 00 00 00 68 d2 29 00 0a 68 94 00 00 0a e8 87 d2 ff ff 81 c4 08 00 00 00 68 94 00 00 0a e8 8e ....h.)..h...............h......
38e0 ff ff ff 81 c4 04 00 00 00 68 da 29 00 0a 68 02 00 00 00 b8 94 00 00 0a ff 70 04 e8 43 c8 ff ff .........h.)..h..........p..C...
3900 81 c4 0c 00 00 00 c3 55 89 e5 50 51 52 53 56 8b 75 08 8b 4e 04 8b 1e 8b 55 0c 39 d9 7d 0d 31 c0 .......U..PQRSV.u..N....U.9.}.1.
3920 8a 44 0e 0c 39 d0 74 03 41 eb ef 89 4e 04 5e 5b 5a 59 58 89 ec 5d c3 68 94 00 00 0a e8 d2 cb ff .D..9.t.A...N.^[ZYX..].h........
3940 ff 81 c4 04 00 00 00 68 05 2a 00 0a 68 94 00 00 0a e8 04 d2 ff ff 81 c4 08 00 00 00 68 20 00 00 .......h.*..h...............h...
3960 00 68 94 00 00 0a e8 9c ff ff ff 81 c4 08 00 00 00 68 0c 2a 00 0a 68 02 00 00 00 b8 94 00 00 0a .h...............h.*..h.........
3980 ff 70 04 e8 bb c7 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 7a cb ff ff 81 c4 04 00 00 00 68 .p.............h.....z.........h
39a0 30 2a 00 0a 68 94 00 00 0a e8 ac d1 ff ff 81 c4 08 00 00 00 68 20 00 00 00 68 94 00 00 0a e8 44 0*..h...............h....h.....D
39c0 ff ff ff 81 c4 08 00 00 00 68 37 2a 00 0a 68 00 00 00 00 b8 94 00 00 0a ff 70 04 e8 63 c7 ff ff .........h7*..h..........p..c...
39e0 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 22 cb ff ff 81 c4 04 00 00 00 68 60 2a 00 0a 68 94 00 00 .......h.....".........h`*..h...
3a00 0a e8 54 d1 ff ff 81 c4 08 00 00 00 68 20 00 00 00 68 94 00 00 0a e8 ec fe ff ff 81 c4 08 00 00 ..T.........h....h..............
3a20 00 68 66 2a 00 0a 68 02 00 00 00 b8 94 00 00 0a ff 70 04 e8 0b c7 ff ff 81 c4 0c 00 00 00 c3 55 .hf*..h..........p.............U
3a40 89 e5 50 51 53 56 8b 75 08 8b 4e 04 8b 1e 39 d9 7d 25 31 c0 8a 44 0e 0c 3d 20 00 00 00 74 18 3d ..PQSV.u..N...9.}%1..D..=....t.=
3a60 0a 00 00 00 74 11 3d 09 00 00 00 74 0a 3d 0d 00 00 00 74 03 41 eb d7 89 4e 04 5e 5b 59 58 89 ec ....t.=....t.=....t.A...N.^[YX..
3a80 5d c3 68 94 00 00 0a e8 87 ca ff ff 81 c4 04 00 00 00 68 8e 2a 00 0a 68 94 00 00 0a e8 b9 d0 ff ].h...............h.*..h........
3aa0 ff 81 c4 08 00 00 00 68 94 00 00 0a e8 8e ff ff ff 81 c4 04 00 00 00 68 95 2a 00 0a 68 02 00 00 .......h...............h.*..h...
3ac0 00 b8 94 00 00 0a ff 70 04 e8 75 c6 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 52 53 8b 45 08 8b 4d .......p..u..........U..QRS.E..M
3ae0 0c 8b 55 10 31 db 39 c8 73 09 8a 18 39 d3 75 03 40 eb f3 5b 5a 59 89 ec 5d c3 b8 c4 2a 00 0a 8b ..U.1.9.s...9.u.@..[ZY..]...*...
3b00 08 8d 4c 08 04 05 04 00 00 00 68 20 00 00 00 51 50 e8 bf ff ff ff 81 c4 0c 00 00 00 68 cc 2a 00 ..L.......h....QP...........h.*.
3b20 0a 68 02 00 00 00 29 c1 51 e8 15 c6 ff ff 81 c4 0c 00 00 00 c3 b8 f5 2a 00 0a 8b 08 8d 4c 08 04 .h....).Q..............*.....L..
3b40 05 04 00 00 00 68 20 00 00 00 51 50 e8 84 ff ff ff 81 c4 0c 00 00 00 68 fb 2a 00 0a 68 02 00 00 .....h....QP...........h.*..h...
3b60 00 29 c1 51 e8 da c5 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 53 8b 45 08 8b 4d 0c 31 db 39 c8 0f .).Q............U..QS.E..M.1.9..
3b80 83 6e ff ff ff 8a 18 81 fb 20 00 00 00 74 18 81 fb 0a 00 00 00 74 10 81 fb 09 00 00 00 74 08 81 .n...........t.......t.......t..
3ba0 fb 0d 00 00 00 75 03 40 eb d3 5b 59 89 ec 5d c3 b8 29 2b 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 .....u.@..[Y..]..)+.....L.......
3bc0 51 50 e8 a9 ff ff ff 81 c4 08 00 00 00 68 31 2b 00 0a 68 02 00 00 00 29 c1 51 e8 64 c5 ff ff 81 QP...........h1+..h....).Q.d....
3be0 c4 0c 00 00 00 c3 55 89 e5 51 52 53 8b 45 08 8b 4d 0c 8b 55 10 31 db 39 c8 73 09 8a 18 39 d3 74 ......U..QRS.E..M..U.1.9.s...9.t
3c00 03 40 eb f3 5b 5a 59 89 ec 5d c3 b8 65 2b 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 68 20 00 00 00 .@..[ZY..]..e+.....L.......h....
3c20 51 50 e8 bf ff ff ff 81 c4 0c 00 00 00 68 6c 2b 00 0a 68 01 00 00 00 29 c1 51 e8 04 c5 ff ff 81 QP...........hl+..h....).Q......
3c40 c4 0c 00 00 00 c3 b8 99 2b 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 68 20 00 00 00 51 50 e8 84 ff ........+.....L.......h....QP...
3c60 ff ff 81 c4 0c 00 00 00 68 a0 2b 00 0a 68 03 00 00 00 29 c1 51 e8 c9 c4 ff ff 81 c4 0c 00 00 00 ........h.+..h....).Q...........
3c80 c3 b8 d2 2b 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 68 20 00 00 00 51 50 e8 49 ff ff ff 81 c4 0c ...+.....L.......h....QP.I......
3ca0 00 00 00 68 d8 2b 00 0a 68 00 00 00 00 29 c1 51 e8 8e c4 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 ...h.+..h....).Q............U..Q
3cc0 53 8b 45 08 8b 4d 0c 31 db 39 c8 0f 83 33 ff ff ff 8a 18 81 fb 20 00 00 00 74 1b 81 fb 0a 00 00 S.E..M.1.9...3...........t......
3ce0 00 74 13 81 fb 09 00 00 00 74 0b 81 fb 0d 00 00 00 74 03 40 eb d3 5b 59 89 ec 5d c3 b8 09 2c 00 .t.......t.......t.@..[Y..]...,.
3d00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 e8 a9 ff ff ff 81 c4 08 00 00 00 68 10 2c 00 0a 68 01 ....L.......QP...........h.,..h.
3d20 00 00 00 29 c1 51 e8 18 c4 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 50 51 52 8b 4d 08 8b 51 08 8d 54 ...).Q............U..PQR.M..Q..T
3d40 11 0c 52 8b 51 04 8d 54 11 0c 52 e8 de 01 00 00 81 c4 08 00 00 00 29 c8 2d 0c 00 00 00 89 41 04 ..R.Q..T..R...........).-.....A.
3d60 5a 59 58 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 9f c7 ff ff 81 c4 04 00 00 00 68 48 2c 00 0a 68 ZYX..].U..h...............hH,..h
3d80 f2 00 00 0a e8 d1 cd ff ff 81 c4 08 00 00 00 68 55 2c 00 0a 68 00 00 00 00 b8 f2 00 00 0a ff 70 ...............hU,..h..........p
3da0 04 e8 9d c3 ff ff 81 c4 0c 00 00 00 68 f2 00 00 0a e8 7c ff ff ff 81 c4 04 00 00 00 68 7a 2c 00 ............h.....|.........hz,.
3dc0 0a 68 05 00 00 00 b8 f2 00 00 0a ff 70 04 e8 70 c3 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 .h..........p..p...........].U..
3de0 68 f2 00 00 0a e8 29 c7 ff ff 81 c4 04 00 00 00 68 92 2c 00 0a 68 f2 00 00 0a e8 5b cd ff ff 81 h.....).........h.,..h.....[....
3e00 c4 08 00 00 00 68 9e 2c 00 0a 68 00 00 00 00 b8 f2 00 00 0a ff 70 04 e8 27 c3 ff ff 81 c4 0c 00 .....h.,..h..........p..'.......
3e20 00 00 68 f2 00 00 0a e8 06 ff ff ff 81 c4 04 00 00 00 68 d2 2c 00 0a 68 05 00 00 00 b8 f2 00 00 ..h...............h.,..h........
3e40 0a ff 70 04 e8 fa c2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 b3 c6 ff ff ..p..............].U..h.........
3e60 81 c4 04 00 00 00 68 f9 2c 00 0a 68 f2 00 00 0a e8 e5 cc ff ff 81 c4 08 00 00 00 68 06 2d 00 0a ......h.,..h...............h.-..
3e80 68 00 00 00 00 b8 f2 00 00 0a ff 70 04 e8 b1 c2 ff ff 81 c4 0c 00 00 00 68 f2 00 00 0a e8 90 fe h..........p............h.......
3ea0 ff ff 81 c4 04 00 00 00 68 3b 2d 00 0a 68 06 00 00 00 b8 f2 00 00 0a ff 70 04 e8 84 c2 ff ff 81 ........h;-..h..........p.......
3ec0 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 3d c6 ff ff 81 c4 04 00 00 00 68 63 2d 00 .......].U..h.....=.........hc-.
3ee0 0a 68 f2 00 00 0a e8 6f cc ff ff 81 c4 08 00 00 00 b8 f2 00 00 0a c7 40 04 02 00 00 00 68 f2 00 .h.....o...............@.....h..
3f00 00 0a e8 2b fe ff ff 81 c4 04 00 00 00 68 72 2d 00 0a 68 08 00 00 00 b8 f2 00 00 0a ff 70 04 e8 ...+.........hr-..h..........p..
3f20 1f c2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 53 8b 4d 08 8b 55 0c 31 c0 41 39 d1 73 ............].U..QRS.M..U.1.A9.s
3f40 15 8a 01 3d 22 00 00 00 74 0b 3d 5c 00 00 00 75 01 41 41 eb e8 41 89 c8 5b 5a 59 89 ec 5d c3 55 ...="...t.=\...u.AA..A..[ZY..].U
3f60 89 e5 b8 a0 2d 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 e8 b5 ff ff ff 81 c4 08 00 00 00 68 ....-.....L.......QP...........h
3f80 ad 2d 00 0a 68 04 00 00 00 29 c1 51 e8 b2 c1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 ce .-..h....).Q.............].U....
3fa0 2d 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 e8 79 ff ff ff 81 c4 08 00 00 00 68 da 2d 00 0a -.....L.......QP.y.........h.-..
3fc0 68 03 00 00 00 29 c1 51 e8 76 c1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 0a 2e 00 0a 8b h....).Q.v...........].U........
3fe0 08 8d 4c 08 04 05 04 00 00 00 51 50 e8 3d ff ff ff 81 c4 08 00 00 00 68 17 2e 00 0a 68 03 00 00 ..L.......QP.=.........h....h...
4000 00 29 c1 51 e8 3a c1 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 48 2e 00 0a 8b 08 8d 4c 08 .).Q.:...........].U...H......L.
4020 04 05 04 00 00 00 51 50 e8 01 ff ff ff 81 c4 08 00 00 00 68 50 2e 00 0a 68 00 00 00 00 29 c1 51 ......QP...........hP...h....).Q
4040 e8 fe c0 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 8b 4d 08 8b 51 08 8d 54 11 0c 52 .............].U..PQR.M..Q..T..R
4060 8b 51 04 8d 54 11 0c 52 e8 68 01 00 00 81 c4 08 00 00 00 29 c8 2d 0c 00 00 00 89 41 04 5a 59 58 .Q..T..R.h.........).-.....A.ZYX
4080 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 82 c4 ff ff 81 c4 04 00 00 00 68 7e 2e 00 0a 68 f2 00 00 ..].U..h...............h~...h...
40a0 0a e8 b4 ca ff ff 81 c4 08 00 00 00 68 8c 2e 00 0a 68 00 00 00 00 b8 f2 00 00 0a ff 70 04 e8 80 ............h....h..........p...
40c0 c0 ff ff 81 c4 0c 00 00 00 68 f2 00 00 0a e8 7c ff ff ff 81 c4 04 00 00 00 68 bc 2e 00 0a 68 05 .........h.....|.........h....h.
40e0 00 00 00 b8 f2 00 00 0a ff 70 04 e8 53 c0 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 .........p..S...........].U..h..
4100 00 0a e8 0c c4 ff ff 81 c4 04 00 00 00 68 df 2e 00 0a 68 f2 00 00 0a e8 3e ca ff ff 81 c4 08 00 .............h....h.....>.......
4120 00 00 68 ec 2e 00 0a 68 00 00 00 00 b8 f2 00 00 0a ff 70 04 e8 0a c0 ff ff 81 c4 0c 00 00 00 68 ..h....h..........p............h
4140 f2 00 00 0a e8 06 ff ff ff 81 c4 04 00 00 00 68 2b 2f 00 0a 68 05 00 00 00 b8 f2 00 00 0a ff 70 ...............h+/..h..........p
4160 04 e8 dd bf ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 96 c3 ff ff 81 c4 04 ..............].U..h............
4180 00 00 00 68 5d 2f 00 0a 68 f2 00 00 0a e8 c8 c9 ff ff 81 c4 08 00 00 00 b8 f2 00 00 0a c7 40 04 ...h]/..h.....................@.
41a0 02 00 00 00 68 f2 00 00 0a e8 a1 fe ff ff 81 c4 04 00 00 00 68 6c 2f 00 0a 68 07 00 00 00 b8 f2 ....h...............hl/..h......
41c0 00 00 0a ff 70 04 e8 78 bf ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 8b 4d 08 8b 55 0c ....p..x...........].U..QR.M..U.
41e0 31 c0 41 39 d1 73 0c 8a 01 3d 29 00 00 00 74 03 41 eb f0 89 c8 5a 59 89 ec 5d c3 55 89 e5 b8 a5 1.A9.s...=)...t.A....ZY..].U....
4200 2f 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 e8 c0 ff ff ff 81 c4 08 00 00 00 68 b3 2f 00 0a /.....L.......QP...........h./..
4220 68 05 00 00 00 29 c1 51 e8 16 bf ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 df 2f 00 0a 8b h....).Q.............].U..../...
4240 08 8d 4c 08 04 05 04 00 00 00 51 50 e8 84 ff ff ff 81 c4 08 00 00 00 68 ec 2f 00 0a 68 04 00 00 ..L.......QP...........h./..h...
4260 00 29 c1 51 e8 da be ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 27 30 00 0a 8b 08 8d 4c 08 .).Q.............].U...'0.....L.
4280 04 05 04 00 00 00 51 50 e8 48 ff ff ff 81 c4 08 00 00 00 68 30 30 00 0a 68 00 00 00 00 29 c1 51 ......QP.H.........h00..h....).Q
42a0 e8 9e be ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 56 8b 75 0c 8b 06 8d 44 06 0c 50 8d .............].U..PQV.u....D..P.
42c0 46 0c 50 89 e1 51 ff 75 08 e8 85 f0 ff ff 81 c4 08 00 00 00 81 c4 08 00 00 00 5e 59 58 89 ec 5d F.P..Q.u..................^YX..]
42e0 c3 55 89 e5 68 40 05 00 0a e8 25 c2 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 15 c2 ff ff 81 c4 .U..h@....%.........hP..........
4300 04 00 00 00 68 f2 00 00 0a e8 05 c2 ff ff 81 c4 04 00 00 00 68 69 30 00 0a 68 f2 00 00 0a e8 37 ....h...............hi0..h.....7
4320 c8 ff ff 81 c4 08 00 00 00 68 f2 00 00 0a 68 4c 0d 00 0a e8 77 ff ff ff 81 c4 08 00 00 00 68 4c .........h....hL....w.........hL
4340 0d 00 0a e8 57 d4 ff ff 81 c4 04 00 00 00 68 71 30 00 0a 68 8f 30 00 0a 68 40 05 00 0a e8 39 ca ....W.........hq0..h.0..h@....9.
4360 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 53 57 b9 0a 00 00 00 68 00 00 00 00 8b 45 ..........].U..PQRSW.....h.....E
4380 0c 3d 00 00 00 00 7d 02 f7 d8 99 f7 f9 81 c2 30 00 00 00 52 3d 00 00 00 00 7f ef 81 7d 0c 00 00 .=....}........0...R=.......}...
43a0 00 00 7d 05 68 2d 00 00 00 8b 7d 08 8b 17 8d 4c 17 0c 8b 5f 08 8d 5c 1f 0c 58 3d 00 00 00 00 74 ..}.h-....}....L..._..\..X=....t
43c0 0a 39 d9 73 11 88 01 41 42 eb ee 89 17 5f 5b 5a 59 58 89 ec 5d c3 68 97 30 00 0a 68 02 00 00 00 .9.s...AB...._[ZYX..].h.0..h....
43e0 e8 00 bd ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 7f bc ff ff 68 94 00 00 0a e8 14 c1 ff ff 81 .....................h..........
4400 c4 04 00 00 00 68 09 00 00 00 68 94 00 00 0a e8 58 ff ff ff 81 c4 08 00 00 00 68 bd 30 00 0a 68 .....h....h.....X.........h.0..h
4420 dd 30 00 0a 68 94 00 00 0a e8 6d c9 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 d4 c0 ff ff 81 .0..h.....m..........h..........
4440 c4 04 00 00 00 68 00 00 00 00 68 94 00 00 0a e8 18 ff ff ff 81 c4 08 00 00 00 68 e2 30 00 0a 68 .....h....h...............h.0..h
4460 07 31 00 0a 68 94 00 00 0a e8 2d c9 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 94 c0 ff ff 81 .1..h.....-..........h..........
4480 c4 04 00 00 00 68 0a 00 00 00 68 94 00 00 0a e8 d8 fe ff ff 81 c4 08 00 00 00 68 0c 31 00 0a 68 .....h....h...............h.1..h
44a0 3c 31 00 0a 68 94 00 00 0a e8 ed c8 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 54 c0 ff ff 81 <1..h................h.....T....
44c0 c4 04 00 00 00 68 f7 ff ff ff 68 94 00 00 0a e8 98 fe ff ff 81 c4 08 00 00 00 68 42 31 00 0a 68 .....h....h...............hB1..h
44e0 6b 31 00 0a 68 94 00 00 0a e8 ad c8 ff ff 81 c4 0c 00 00 00 c3 68 94 00 00 0a e8 14 c0 ff ff 81 k1..h................h..........
4500 c4 04 00 00 00 68 f6 ff ff ff 68 94 00 00 0a e8 58 fe ff ff 81 c4 08 00 00 00 68 71 31 00 0a 68 .....h....h.....X.........hq1..h
4520 aa 31 00 0a 68 94 00 00 0a e8 6d c8 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 8b 4d 08 b8 00 00 00 .1..h.....m..........U..Q.M.....
4540 00 81 f9 30 00 00 00 7c 0d 81 f9 39 00 00 00 7f 05 b8 01 00 00 00 59 89 ec 5d c3 68 2f 00 00 00 ...0...|...9..........Y..].h/...
4560 e8 d0 ff ff ff 81 c4 04 00 00 00 68 b1 31 00 0a 68 00 00 00 00 50 e8 c8 bb ff ff 81 c4 0c 00 00 ...........h.1..h....P..........
4580 00 c3 68 30 00 00 00 e8 a9 ff ff ff 81 c4 04 00 00 00 68 d6 31 00 0a 68 01 00 00 00 50 e8 a1 bb ..h0..............h.1..h....P...
45a0 ff ff 81 c4 0c 00 00 00 68 39 00 00 00 e8 83 ff ff ff 81 c4 04 00 00 00 68 f8 31 00 0a 68 01 00 ........h9..............h.1..h..
45c0 00 00 50 e8 7b bb ff ff 81 c4 0c 00 00 00 c3 68 3a 00 00 00 e8 5c ff ff ff 81 c4 04 00 00 00 68 ..P.{..........h:....\.........h
45e0 1a 32 00 0a 68 00 00 00 00 50 e8 54 bb ff ff 81 c4 0c 00 00 00 c3 55 89 e5 8b 45 08 3d 30 00 00 .2..h....P.T..........U...E.=0..
4600 00 7c 10 3d 39 00 00 00 7f 09 2d 30 00 00 00 89 ec 5d c3 68 3f 32 00 0a 68 84 0e 00 0a e8 f0 d2 .|.=9.....-0.....].h?2..h.......
4620 ff ff 81 c4 08 00 00 00 50 68 84 0e 00 0a e8 f9 d5 ff ff 81 c4 08 00 00 00 68 08 00 00 0a 68 84 ........Ph...............h....h.
4640 0e 00 0a e8 ca d2 ff ff 81 c4 08 00 00 00 68 84 0e 00 0a e8 47 d1 ff ff 81 c4 04 00 00 00 bb 01 ..............h.....G...........
4660 00 00 00 e8 0c ba ff ff 55 89 e5 50 51 56 57 8b 75 08 8b 7d 0c ff 75 08 e8 f4 f1 ff ff 81 c4 04 ........U..PQVW.u..}..u.........
4680 00 00 00 8b 46 04 3b 06 7c 0f c7 07 00 00 00 00 c7 47 04 00 00 00 00 eb 3e 8b 4e 04 8d 44 0e 0c ....F.;.|........G......>.N..D..
46a0 89 07 31 c0 8a 44 0e 0c 3d 23 00 00 00 75 10 8b 06 8d 44 06 0c 89 47 04 8b 06 89 46 04 eb 18 ff ..1..D..=#...u....D...G....F....
46c0 75 08 e8 78 f3 ff ff 81 c4 04 00 00 00 8b 4e 04 8d 44 0e 0c 89 47 04 5f 5e 59 58 89 ec 5d c3 55 u..x..........N..D...G._^YX..].U
46e0 89 e5 68 94 00 00 0a e8 27 be ff ff 81 c4 04 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 6c ..h.....'.........h....h......hl
4700 32 00 0a 68 94 00 00 0a e8 4d c4 ff ff 81 c4 08 00 00 00 51 68 94 00 00 0a e8 4a ff ff ff 81 c4 2..h.....M.........Qh.....J.....
4720 08 00 00 00 68 74 32 00 0a 68 0e 00 00 00 8b 01 81 e8 94 00 00 0a 50 e8 07 ba ff ff 81 c4 0c 00 ....ht2..h............P.........
4740 00 00 68 91 32 00 0a 68 10 00 00 00 8b 41 04 81 e8 94 00 00 0a 50 e8 e8 b9 ff ff 81 c4 0c 00 00 ..h.2..h.....A.......P..........
4760 00 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 a1 bd ff ff 81 c4 04 00 00 00 68 00 00 00 00 68 00 00 ...].U..h...............h....h..
4780 00 00 89 e1 68 ac 32 00 0a 68 94 00 00 0a e8 c7 c3 ff ff 81 c4 08 00 00 00 51 68 94 00 00 0a e8 ....h.2..h...............Qh.....
47a0 c4 fe ff ff 81 c4 08 00 00 00 68 b5 32 00 0a 68 0e 00 00 00 8b 01 81 e8 94 00 00 0a 50 e8 81 b9 ..........h.2..h............P...
47c0 ff ff 81 c4 0c 00 00 00 68 e8 32 00 0a 68 11 00 00 00 8b 41 04 81 e8 94 00 00 0a 50 e8 62 b9 ff ........h.2..h.....A.......P.b..
47e0 ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 94 00 00 0a e8 1b bd ff ff 81 c4 04 00 00 00 68 00 .........].U..h...............h.
4800 00 00 00 68 00 00 00 00 89 e1 51 68 94 00 00 0a e8 53 fe ff ff 81 c4 08 00 00 00 68 19 33 00 0a ...h......Qh.....S.........h.3..
4820 68 00 00 00 00 8b 41 04 2b 01 50 e8 13 b9 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 94 00 h.....A.+.P.............].U..h..
4840 00 0a e8 cc bc ff ff 81 c4 04 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 4b 33 00 0a 68 94 .............h....h......hK3..h.
4860 00 00 0a e8 f2 c2 ff ff 81 c4 08 00 00 00 51 68 94 00 00 0a e8 ef fd ff ff 81 c4 08 00 00 00 68 ..............Qh...............h
4880 52 33 00 0a 68 00 00 00 00 8b 41 04 2b 01 50 e8 af b8 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 R3..h.....A.+.P.............].U.
48a0 e5 50 51 56 57 8b 75 08 8b 7d 0c ff 75 08 e8 be ef ff ff 81 c4 04 00 00 00 8b 46 04 3b 06 7c 0f .PQVW.u..}..u.............F.;.|.
48c0 c7 07 00 00 00 00 c7 47 04 00 00 00 00 eb 21 8b 4e 04 8d 44 0e 0c 89 07 ff 75 08 e8 5f f1 ff ff .......G......!.N..D.....u.._...
48e0 81 c4 04 00 00 00 8b 4e 04 8d 44 0e 0c 89 47 04 5f 5e 59 58 89 ec 5d c3 55 89 e5 51 52 56 57 8b .......N..D...G._^YX..].U..QRVW.
4900 75 08 8b 56 04 68 00 00 00 00 68 00 00 00 00 89 e7 57 68 2f 00 00 00 52 ff 36 e8 32 ed ff ff 81 u..V.h....h......Wh/...R.6.2....
4920 c4 10 00 00 00 57 68 2f 00 00 00 52 ff 77 04 e8 1d ed ff ff 81 c4 10 00 00 00 57 e8 77 e4 ff ff .....Wh/...R.w............W.w...
4940 81 c4 04 00 00 00 3d 00 00 00 00 75 18 ff 75 0c 57 e8 1d e5 ff ff 81 c4 08 00 00 00 3d 00 00 00 ......=....u..u.W...........=...
4960 00 75 07 eb c0 b8 00 00 00 00 81 c4 08 00 00 00 5f 5e 5a 59 89 ec 5d c3 55 89 e5 b8 88 33 00 0a .u.............._^ZY..].U....3..
4980 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e6 68 94 33 00 0a 56 e8 5e ff ff ff 81 c4 08 00 00 00 ...L.......QP..h.3..V.^.........
49a0 68 9d 33 00 0a 68 01 00 00 00 50 e8 93 b7 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 bb 33 h.3..h....P.............].U....3
49c0 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e6 68 c3 33 00 0a 56 e8 1c ff ff ff 81 c4 08 00 .....L.......QP..h.3..V.........
49e0 00 00 68 c8 33 00 0a 68 00 00 00 00 50 e8 51 b7 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 ..h.3..h....P.Q...........].U...
4a00 e7 33 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e6 68 ee 33 00 0a 56 e8 da fe ff ff 81 c4 .3.....L.......QP..h.3..V.......
4a20 08 00 00 00 68 f3 33 00 0a 68 00 00 00 00 50 e8 0f b7 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 ....h.3..h....P.............].U.
4a40 e5 b8 18 34 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e6 68 21 34 00 0a 56 e8 98 fe ff ff ...4.....L.......QP..h!4..V.....
4a60 81 c4 08 00 00 00 68 26 34 00 0a 68 01 00 00 00 50 e8 cd b6 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 ......h&4..h....P.............].
4a80 55 89 e5 b8 4d 34 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e6 68 56 34 00 0a 56 e8 56 fe U...M4.....L.......QP..hV4..V.V.
4aa0 ff ff 81 c4 08 00 00 00 68 5b 34 00 0a 68 00 00 00 00 50 e8 8b b6 ff ff 81 c4 0c 00 00 00 89 ec ........h[4..h....P.............
4ac0 5d c3 55 89 e5 51 56 8b 75 08 8b 0e 3b 4e 04 73 25 8b 46 04 29 c8 3d 02 00 00 00 74 19 31 c0 8a ].U..QV.u...;N.s%.F.).=....t.1..
4ae0 01 3d 2d 00 00 00 74 0e 3d 30 00 00 00 7c 0e 3d 39 00 00 00 7f 07 b8 00 00 00 00 eb 05 b8 01 00 .=-...t.=0...|.=9...............
4b00 00 00 5e 59 89 ec 5d c3 55 89 e5 b8 83 34 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 ..^Y..].U....4.....L.......QP..Q
4b20 e8 9d ff ff ff 81 c4 04 00 00 00 68 89 34 00 0a 68 00 00 00 00 50 e8 08 b6 ff ff 81 c4 0c 00 00 ...........h.4..h....P..........
4b40 00 89 ec 5d c3 55 89 e5 b8 b0 34 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 60 ff ...].U....4.....L.......QP..Q.`.
4b60 ff ff 81 c4 04 00 00 00 68 b9 34 00 0a 68 00 00 00 00 50 e8 cb b5 ff ff 81 c4 0c 00 00 00 89 ec ........h.4..h....P.............
4b80 5d c3 55 89 e5 b8 e3 34 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 23 ff ff ff 81 ].U....4.....L.......QP..Q.#....
4ba0 c4 04 00 00 00 68 eb 34 00 0a 68 00 00 00 00 50 e8 8e b5 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 .....h.4..h....P.............].U
4bc0 89 e5 b8 0f 35 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 e6 fe ff ff 81 c4 04 00 ....5.....L.......QP..Q.........
4be0 00 00 68 16 35 00 0a 68 01 00 00 00 50 e8 51 b5 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 ..h.5..h....P.Q...........].U...
4c00 46 35 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 a9 fe ff ff 81 c4 04 00 00 00 68 F5.....L.......QP..Q...........h
4c20 4d 35 00 0a 68 01 00 00 00 50 e8 14 b5 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 b8 7e 35 00 M5..h....P.............].U...~5.
4c40 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 6c fe ff ff 81 c4 04 00 00 00 68 86 35 00 ....L.......QP..Q.l.........h.5.
4c60 0a 68 00 00 00 00 50 e8 d7 b4 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 8b 4d 08 8b 49 04 .h....P.............].U..Q.M..I.
4c80 31 c0 8a 41 ff 3d 3a 00 00 00 b8 01 00 00 00 74 05 b8 00 00 00 00 59 89 ec 5d c3 55 89 e5 b8 b2 1..A.=:........t......Y..].U....
4ca0 35 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 be ff ff ff 81 c4 04 00 00 00 68 ba 5.....L.......QP..Q...........h.
4cc0 35 00 0a 68 01 00 00 00 50 e8 75 b4 ff ff 81 c4 0c 00 00 00 b8 d5 35 00 0a 8b 08 8d 4c 08 04 05 5..h....P.u...........5.....L...
4ce0 04 00 00 00 51 50 89 e1 51 e8 88 ff ff ff 81 c4 04 00 00 00 68 dc 35 00 0a 68 00 00 00 00 50 e8 ....QP..Q...........h.5..h....P.
4d00 3f b4 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 53 57 8b 7d 08 8b 5d 0c 8b 55 10 31 ?...........].U..PQRSW.}..]..U.1
4d20 c9 39 d1 7d 24 53 57 e8 aa cd ff ff 81 c4 08 00 00 00 68 20 00 00 00 57 e8 23 ca ff ff 81 c4 08 .9.}$SW...........h....W.#......
4d40 00 00 00 c1 eb 08 41 eb d8 5f 5b 5a 59 58 89 ec 5d c3 68 40 05 00 0a e8 b7 b7 ff ff 81 c4 04 00 ......A.._[ZYX..].h@............
4d60 00 00 68 50 0d 00 0a e8 a7 b7 ff ff 81 c4 04 00 00 00 68 01 00 00 00 68 ab 00 00 00 68 4c 0d 00 ..hP..............h....h....hL..
4d80 0a e8 88 ff ff ff 81 c4 0c 00 00 00 68 4c 0d 00 0a e8 09 ca ff ff 81 c4 04 00 00 00 68 f8 35 00 ............hL..............h.5.
4da0 0a 68 61 62 20 00 b8 40 05 00 0a ff 70 0c e8 90 b3 ff ff 81 c4 0c 00 00 00 c3 68 40 05 00 0a e8 .hab...@....p.............h@....
4dc0 4f b7 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 3f b7 ff ff 81 c4 04 00 00 00 68 02 00 00 00 68 O.........hP....?.........h....h
4de0 34 12 00 00 68 4c 0d 00 0a e8 20 ff ff ff 81 c4 0c 00 00 00 68 4c 0d 00 0a e8 a1 c9 ff ff 81 c4 4...hL..............hL..........
4e00 04 00 00 00 68 19 36 00 0a 68 3e 36 00 0a 68 40 05 00 0a e8 83 bf ff ff 81 c4 0c 00 00 00 c3 68 ....h.6..h>6..h@...............h
4e20 40 05 00 0a e8 ea b6 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 da b6 ff ff 81 c4 04 00 00 00 68 @..............hP..............h
4e40 02 00 00 00 68 ab 00 00 00 68 4c 0d 00 0a e8 bb fe ff ff 81 c4 0c 00 00 00 68 4c 0d 00 0a e8 3c ....h....hL..............hL....<
4e60 c9 ff ff 81 c4 04 00 00 00 68 48 36 00 0a 68 68 36 00 0a 68 40 05 00 0a e8 1e bf ff ff 81 c4 0c .........hH6..hh6..h@...........
4e80 00 00 00 c3 68 40 05 00 0a e8 85 b6 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 75 b6 ff ff 81 c4 ....h@..............hP....u.....
4ea0 04 00 00 00 68 02 00 00 00 68 ff ff ff ff 68 4c 0d 00 0a e8 56 fe ff ff 81 c4 0c 00 00 00 68 4c ....h....h....hL....V.........hL
4ec0 0d 00 0a e8 d7 c8 ff ff 81 c4 04 00 00 00 68 72 36 00 0a 68 92 36 00 0a 68 40 05 00 0a e8 b9 be ..............hr6..h.6..h@......
4ee0 ff ff 81 c4 0c 00 00 00 c3 55 89 e5 50 56 57 8b 75 0c 68 00 00 00 00 68 00 00 00 00 89 e7 57 68 .........U..PVW.u.h....h......Wh
4f00 2f 00 00 00 ff 76 04 ff 36 e8 43 e7 ff ff 81 c4 10 00 00 00 57 e8 a8 fb ff ff 81 c4 04 00 00 00 /....v..6.C.........W...........
4f20 3d 00 00 00 00 74 24 56 ff 75 08 e8 23 e4 ff ff 81 c4 08 00 00 00 68 11 00 00 0a ff 75 08 e8 cf =....t$V.u..#.........h.....u...
4f40 c9 ff ff 81 c4 08 00 00 00 eb 1e 57 e8 1b d0 ff ff 81 c4 04 00 00 00 ff 75 10 50 ff 75 08 e8 ab ...........W............u.P.u...
4f60 fd ff ff 81 c4 0c 00 00 00 81 c4 08 00 00 00 5f 5e 58 89 ec 5d c3 55 89 e5 68 40 05 00 0a e8 90 ..............._^X..].U..h@.....
4f80 b5 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 80 b5 ff ff 81 c4 04 00 00 00 b8 9c 36 00 0a 8b 08 .........hP................6....
4fa0 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 01 00 00 00 51 68 4c 0d 00 0a e8 2c ff ff ff 81 c4 0c .L.......QP..h....QhL....,......
4fc0 00 00 00 68 4c 0d 00 0a e8 d2 c7 ff ff 81 c4 04 00 00 00 68 a2 36 00 0a 68 bc 36 00 0a 68 40 05 ...hL..............h.6..h.6..h@.
4fe0 00 0a e8 b4 bd ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 40 05 00 0a e8 15 b5 ff ff 81 c4 ...............].U..h@..........
5000 04 00 00 00 68 50 0d 00 0a e8 05 b5 ff ff 81 c4 04 00 00 00 b8 c3 36 00 0a 8b 08 8d 4c 08 04 05 ....hP................6.....L...
5020 04 00 00 00 51 50 89 e1 68 02 00 00 00 51 68 4c 0d 00 0a e8 b1 fe ff ff 81 c4 0c 00 00 00 68 4c ....QP..h....QhL..............hL
5040 0d 00 0a e8 57 c7 ff ff 81 c4 04 00 00 00 68 c9 36 00 0a 68 e3 36 00 0a 68 40 05 00 0a e8 39 bd ....W.........h.6..h.6..h@....9.
5060 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 40 05 00 0a e8 9a b4 ff ff 81 c4 04 00 00 00 68 ..........].U..h@..............h
5080 50 0d 00 0a e8 8a b4 ff ff 81 c4 04 00 00 00 b8 ed 36 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 P................6.....L.......Q
50a0 50 89 e1 68 02 00 00 00 51 68 4c 0d 00 0a e8 36 fe ff ff 81 c4 0c 00 00 00 68 4c 0d 00 0a e8 dc P..h....QhL....6.........hL.....
50c0 c6 ff ff 81 c4 04 00 00 00 68 f7 36 00 0a 68 1d 37 00 0a 68 40 05 00 0a e8 be bc ff ff 81 c4 0c .........h.6..h.7..h@...........
50e0 00 00 00 89 ec 5d c3 55 89 e5 68 40 05 00 0a e8 1f b4 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 .....].U..h@..............hP....
5100 0f b4 ff ff 81 c4 04 00 00 00 b8 27 37 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 02 ...........'7.....L.......QP..h.
5120 00 00 00 51 68 4c 0d 00 0a e8 bb fd ff ff 81 c4 0c 00 00 00 68 4c 0d 00 0a e8 61 c6 ff ff 81 c4 ...QhL..............hL....a.....
5140 04 00 00 00 68 2e 37 00 0a 68 4a 37 00 0a 68 40 05 00 0a e8 43 bc ff ff 81 c4 0c 00 00 00 89 ec ....h.7..hJ7..h@....C...........
5160 5d c3 55 89 e5 68 40 05 00 0a e8 a4 b3 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 94 b3 ff ff 81 ].U..h@..............hP.........
5180 c4 04 00 00 00 b8 52 37 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 02 00 00 00 51 68 ......R7.....L.......QP..h....Qh
51a0 4c 0d 00 0a e8 40 fd ff ff 81 c4 0c 00 00 00 68 4c 0d 00 0a e8 e6 c5 ff ff 81 c4 04 00 00 00 68 L....@.........hL..............h
51c0 5a 37 00 0a 68 84 37 00 0a 68 40 05 00 0a e8 c8 bb ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 Z7..h.7..h@................].U..
51e0 68 40 05 00 0a e8 29 b3 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 19 b3 ff ff 81 c4 04 00 00 00 h@....).........hP..............
5200 b8 8d 37 00 0a 8b 08 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 68 02 00 00 00 51 68 4c 0d 00 0a e8 ..7.....L.......QP..h....QhL....
5220 c5 fc ff ff 81 c4 0c 00 00 00 68 4c 0d 00 0a e8 6b c5 ff ff 81 c4 04 00 00 00 68 99 37 00 0a 68 ..........hL....k.........h.7..h
5240 c9 37 00 0a 68 40 05 00 0a e8 4d bb ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 56 8b 75 .7..h@....M...........].U..QRV.u
5260 08 8d 4e 0c 8b 16 8d 14 11 39 d1 73 37 ff 71 04 ff 31 e8 ce d2 ff ff 81 c4 08 00 00 00 50 ff 75 ..N......9.s7.q..1...........P.u
5280 0c e8 21 b1 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 05 8d 41 08 eb 05 03 4d 10 eb cc 5e 5a 59 ..!.........=....t..A....M...^ZY
52a0 89 ec 5d c3 ff 75 14 68 02 00 00 00 e8 34 ae ff ff 81 c4 08 00 00 00 68 d6 37 00 0a 68 02 00 00 ..]..u.h.....4.........h.7..h...
52c0 00 e8 1f ae ff ff 81 c4 08 00 00 00 ff 75 0c 68 02 00 00 00 e8 0c ae ff ff 81 c4 08 00 00 00 68 .............u.h...............h
52e0 08 00 00 0a 68 02 00 00 00 e8 f7 ad ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 76 ad ff ff 55 89 ....h.....................v...U.
5300 e5 81 ec 18 00 00 00 68 18 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 a0 0e 00 0a 68 0c 00 .......h....h....h......h....h..
5320 00 00 68 f0 37 00 0a 51 e8 07 02 00 00 81 c4 10 00 00 00 68 a0 0e 00 0a 68 0c 00 00 00 68 f8 37 ..h.7..Q...........h....h....h.7
5340 00 0a 51 e8 ec 01 00 00 81 c4 10 00 00 00 68 0c 00 00 00 68 00 38 00 0a 51 e8 fa fe ff ff 81 c4 ..Q...........h....h.8..Q.......
5360 0c 00 00 00 68 08 38 00 0a 68 14 00 00 00 29 c8 50 e8 cd ad ff ff 81 c4 0c 00 00 00 68 0c 00 00 ....h.8..h....).P...........h...
5380 00 68 1a 38 00 0a 51 e8 cc fe ff ff 81 c4 0c 00 00 00 68 22 38 00 0a 68 20 00 00 00 29 c8 50 e8 .h.8..Q...........h"8..h....).P.
53a0 9f ad ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 56 8b 75 08 8d 4e 0c 8b 16 8d 14 11 39 ............].U..QRV.u..N......9
53c0 d1 73 37 ff 71 04 ff 31 e8 78 d1 ff ff 81 c4 08 00 00 00 50 ff 75 0c e8 97 da ff ff 81 c4 08 00 .s7.q..1.x.........P.u..........
53e0 00 00 3d 00 00 00 00 74 05 8d 41 08 eb 05 03 4d 10 eb cc 5e 5a 59 89 ec 5d c3 ff 75 14 68 02 00 ..=....t..A....M...^ZY..]..u.h..
5400 00 00 e8 de ac ff ff 81 c4 08 00 00 00 68 34 38 00 0a 68 02 00 00 00 e8 c9 ac ff ff 81 c4 08 00 .............h48..h.............
5420 00 00 ff 75 0c 68 84 0e 00 0a e8 24 df ff ff 81 c4 08 00 00 00 68 84 0e 00 0a e8 60 c3 ff ff 81 ...u.h.....$.........h.....`....
5440 c4 04 00 00 00 68 08 00 00 0a 68 02 00 00 00 e8 91 ac ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 .....h....h.....................
5460 10 ac ff ff 55 89 e5 81 ec 18 00 00 00 68 18 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 a0 ....U........h....h....h......h.
5480 0e 00 0a 68 0c 00 00 00 68 54 38 00 0a 51 e8 a1 00 00 00 81 c4 10 00 00 00 68 a0 0e 00 0a 68 0c ...h....hT8..Q...........h....h.
54a0 00 00 00 68 5c 38 00 0a 51 e8 86 00 00 00 81 c4 10 00 00 00 b8 64 38 00 0a 8b 10 8d 54 10 04 05 ...h\8..Q............d8.....T...
54c0 04 00 00 00 52 50 89 e2 68 0c 00 00 00 52 51 e8 da fe ff ff 81 c4 0c 00 00 00 68 6c 38 00 0a 68 ....RP..h....RQ...........hl8..h
54e0 14 00 00 00 29 c8 50 e8 57 ac ff ff 81 c4 0c 00 00 00 b8 84 38 00 0a 8b 10 8d 54 10 04 05 04 00 ....).P.W...........8.....T.....
5500 00 00 52 50 89 e2 68 0c 00 00 00 52 51 e8 9c fe ff ff 81 c4 0c 00 00 00 68 8c 38 00 0a 68 20 00 ..RP..h....RQ...........h.8..h..
5520 00 00 29 c8 50 e8 19 ac ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 56 8b 75 08 8d 4e 0c ..).P.............].U..QRV.u..N.
5540 8b 16 8d 14 11 39 d1 73 30 ff 71 04 ff 31 e8 f2 cf ff ff 81 c4 08 00 00 00 50 ff 75 0c e8 45 ae .....9.s0.q..1...........P.u..E.
5560 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 05 8d 41 08 eb 39 03 4d 10 eb cc 8b 0e 3b 4e 08 73 34 ........=....t..A..9.M.....;N.s4
5580 ff 75 10 52 e8 4d d4 ff ff 81 c4 08 00 00 00 52 ff 75 0c ff 75 14 e8 e5 d2 ff ff 81 c4 0c 00 00 .u.R.M.........R.u..u...........
55a0 00 8b 45 10 01 06 89 d0 05 08 00 00 00 5e 5a 59 89 ec 5d c3 68 a4 38 00 0a 68 02 00 00 00 e8 22 ..E..........^ZY..].h.8..h....."
55c0 ab ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 a1 aa ff ff 55 89 e5 81 ec 18 00 00 00 68 18 00 00 ...................U........h...
55e0 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 a0 0e 00 0a 68 0c 00 00 00 68 c5 38 00 0a 51 e8 32 ff .h....h......h....h....h.8..Q.2.
5600 ff ff 81 c4 10 00 00 00 68 cd 38 00 0a 68 14 00 00 00 29 c8 50 e8 29 ab ff ff 81 c4 0c 00 00 00 ........h.8..h....).P.).........
5620 68 e9 38 00 0a 68 0c 00 00 00 ff 31 e8 12 ab ff ff 81 c4 0c 00 00 00 ff 71 10 ff 71 0c e8 03 cf h.8..h.....1............q..q....
5640 ff ff 81 c4 08 00 00 00 68 05 39 00 0a 68 21 39 00 0a 50 e8 77 ae ff ff 81 c4 0c 00 00 00 68 a0 ........h.9..h!9..P.w.........h.
5660 0e 00 0a 68 0c 00 00 00 68 29 39 00 0a 51 e8 c1 fe ff ff 81 c4 10 00 00 00 68 31 39 00 0a 68 14 ...h....h)9..Q...........h19..h.
5680 00 00 00 29 c8 50 e8 b8 aa ff ff 81 c4 0c 00 00 00 68 4d 39 00 0a 68 0c 00 00 00 ff 31 e8 a1 aa ...).P...........hM9..h.....1...
56a0 ff ff 81 c4 0c 00 00 00 ff 71 10 ff 71 0c e8 92 ce ff ff 81 c4 08 00 00 00 68 69 39 00 0a 68 85 .........q..q............hi9..h.
56c0 39 00 0a 50 e8 06 ae ff ff 81 c4 0c 00 00 00 68 a0 0e 00 0a 68 0c 00 00 00 68 8d 39 00 0a 51 e8 9..P...........h....h....h.9..Q.
56e0 50 fe ff ff 81 c4 10 00 00 00 68 95 39 00 0a 68 20 00 00 00 29 c8 50 e8 47 aa ff ff 81 c4 0c 00 P.........h.9..h....).P.G.......
5700 00 00 68 b1 39 00 0a 68 18 00 00 00 ff 31 e8 30 aa ff ff 81 c4 0c 00 00 00 ff 71 1c ff 71 18 e8 ..h.9..h.....1.0..........q..q..
5720 21 ce ff ff 81 c4 08 00 00 00 68 cd 39 00 0a 68 e9 39 00 0a 50 e8 95 ad ff ff 81 c4 0c 00 00 00 !.........h.9..h.9..P...........
5740 89 ec 5d c3 55 89 e5 51 52 53 56 8b 75 08 ff 75 10 ff 75 0c e8 ec cd ff ff 81 c4 08 00 00 00 89 ..].U..QRSV.u..u..u.............
5760 c3 8d 4e 0c 8b 16 8d 14 11 39 d1 73 2e ff 71 04 ff 31 e8 ce cd ff ff 81 c4 08 00 00 00 50 53 e8 ..N......9.s..q..1...........PS.
5780 23 ac ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 05 8d 41 08 eb 23 03 4d 14 eb ce 8b 0e 3b 4e 08 #.........=....t..A..#.M.....;N.
57a0 73 1f 8b 45 14 01 06 8b 45 0c 89 02 8b 45 10 89 42 04 89 d0 05 08 00 00 00 5e 5b 5a 59 89 ec 5d s..E....E....E..B........^[ZY..]
57c0 c3 68 f1 39 00 0a 68 02 00 00 00 e8 15 a9 ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 94 a8 ff ff .h.9..h.........................
57e0 55 89 e5 81 ec 18 00 00 00 68 18 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 00 00 00 00 68 U........h....h....h......h....h
5800 00 00 00 00 89 e2 52 68 19 3a 00 0a 68 a0 0e 00 0a e8 6a d0 ff ff 81 c4 0c 00 00 00 68 0c 00 00 ......Rh.:..h.....j.........h...
5820 00 ff 72 04 ff 32 51 e8 18 ff ff ff 81 c4 10 00 00 00 68 21 3a 00 0a 68 14 00 00 00 29 c8 50 e8 ..r..2Q...........h!:..h....).P.
5840 ff a8 ff ff 81 c4 0c 00 00 00 68 44 3a 00 0a 68 0c 00 00 00 ff 31 e8 e8 a8 ff ff 81 c4 0c 00 00 ..........hD:..h.....1..........
5860 00 ff 71 10 ff 71 0c e8 d9 cc ff ff 81 c4 08 00 00 00 68 67 3a 00 0a 68 8a 3a 00 0a 50 e8 4d ac ..q..q............hg:..h.:..P.M.
5880 ff ff 81 c4 0c 00 00 00 52 68 92 3a 00 0a 68 a0 0e 00 0a e8 e8 cf ff ff 81 c4 0c 00 00 00 68 0c ........Rh.:..h...............h.
58a0 00 00 00 ff 72 04 ff 32 51 e8 96 fe ff ff 81 c4 10 00 00 00 68 9a 3a 00 0a 68 14 00 00 00 29 c8 ....r..2Q...........h.:..h....).
58c0 50 e8 7d a8 ff ff 81 c4 0c 00 00 00 68 bd 3a 00 0a 68 0c 00 00 00 ff 31 e8 66 a8 ff ff 81 c4 0c P.}.........h.:..h.....1.f......
58e0 00 00 00 ff 71 10 ff 71 0c e8 57 cc ff ff 81 c4 08 00 00 00 68 e0 3a 00 0a 68 03 3b 00 0a 50 e8 ....q..q..W.........h.:..h.;..P.
5900 cb ab ff ff 81 c4 0c 00 00 00 52 68 0b 3b 00 0a 68 a0 0e 00 0a e8 66 cf ff ff 81 c4 0c 00 00 00 ..........Rh.;..h.....f.........
5920 68 0c 00 00 00 ff 72 04 ff 32 51 e8 14 fe ff ff 81 c4 10 00 00 00 68 13 3b 00 0a 68 20 00 00 00 h.....r..2Q...........h.;..h....
5940 29 c8 50 e8 fb a7 ff ff 81 c4 0c 00 00 00 68 36 3b 00 0a 68 18 00 00 00 ff 31 e8 e4 a7 ff ff 81 ).P...........h6;..h.....1......
5960 c4 0c 00 00 00 ff 71 1c ff 71 18 e8 d5 cb ff ff 81 c4 08 00 00 00 68 59 3b 00 0a 68 7c 3b 00 0a ......q..q............hY;..h|;..
5980 50 e8 49 ab ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 51 52 56 8b 75 08 8d 4e 0c 8b 16 8d 14 P.I...........].U..QRV.u..N.....
59a0 11 39 d1 73 30 ff 71 04 ff 31 e8 96 cb ff ff 81 c4 08 00 00 00 50 ff 75 0c e8 b5 d4 ff ff 81 c4 .9.s0.q..1...........P.u........
59c0 08 00 00 00 3d 00 00 00 00 74 05 8d 41 08 eb 3b 03 4d 10 eb cc 31 c0 8b 0e 3b 4e 08 7d 34 ff 75 ....=....t..A..;.M...1...;N.}4.u
59e0 10 52 e8 ef cf ff ff 81 c4 08 00 00 00 52 ff 75 0c ff 75 14 e8 2b da ff ff 81 c4 0c 00 00 00 8b .R...........R.u..u..+..........
5a00 45 10 01 06 89 d0 05 08 00 00 00 5e 5a 59 89 ec 5d c3 68 84 3b 00 0a 68 02 00 00 00 e8 c4 a6 ff E..........^ZY..].h.;..h........
5a20 ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 43 a6 ff ff 55 89 e5 81 ec 18 00 00 00 68 18 00 00 00 68 .............C...U........h....h
5a40 00 00 00 00 68 00 00 00 00 89 e1 b8 ab 3b 00 0a 8b 10 8d 54 10 04 05 04 00 00 00 52 50 89 e2 68 ....h........;.....T.......RP..h
5a60 a0 0e 00 0a 68 0c 00 00 00 52 51 e8 20 ff ff ff 81 c4 10 00 00 00 68 b3 3b 00 0a 68 14 00 00 00 ....h....RQ...........h.;..h....
5a80 29 c8 50 e8 bb a6 ff ff 81 c4 0c 00 00 00 68 d5 3b 00 0a 68 0c 00 00 00 ff 31 e8 a4 a6 ff ff 81 ).P...........h.;..h.....1......
5aa0 c4 0c 00 00 00 ff 71 10 ff 71 0c e8 95 ca ff ff 81 c4 08 00 00 00 68 f7 3b 00 0a 68 19 3c 00 0a ......q..q............h.;..h.<..
5ac0 50 e8 09 aa ff ff 81 c4 0c 00 00 00 68 a0 0e 00 0a 68 0c 00 00 00 52 51 e8 b3 fe ff ff 81 c4 10 P...........h....h....RQ........
5ae0 00 00 00 68 21 3c 00 0a 68 14 00 00 00 29 c8 50 e8 4e a6 ff ff 81 c4 0c 00 00 00 68 43 3c 00 0a ...h!<..h....).P.N.........hC<..
5b00 68 0c 00 00 00 ff 31 e8 37 a6 ff ff 81 c4 0c 00 00 00 ff 71 10 ff 71 0c e8 28 ca ff ff 81 c4 08 h.....1.7..........q..q..(......
5b20 00 00 00 68 65 3c 00 0a 68 87 3c 00 0a 50 e8 9c a9 ff ff 81 c4 0c 00 00 00 b8 8f 3c 00 0a 8b 10 ...he<..h.<..P.............<....
5b40 8d 54 10 04 05 04 00 00 00 52 50 89 e2 68 a0 0e 00 0a 68 0c 00 00 00 52 51 e8 32 fe ff ff 81 c4 .T.......RP..h....h....RQ.2.....
5b60 10 00 00 00 68 97 3c 00 0a 68 20 00 00 00 29 c8 50 e8 cd a5 ff ff 81 c4 0c 00 00 00 68 b9 3c 00 ....h.<..h....).P...........h.<.
5b80 0a 68 18 00 00 00 ff 31 e8 b6 a5 ff ff 81 c4 0c 00 00 00 ff 71 1c ff 71 18 e8 a7 c9 ff ff 81 c4 .h.....1............q..q........
5ba0 08 00 00 00 68 db 3c 00 0a 68 fd 3c 00 0a 50 e8 1b a9 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 ....h.<..h.<..P.............].U.
5bc0 e5 51 52 56 8b 75 08 8d 4e 0c 8b 16 8d 14 11 39 d1 73 37 ff 71 04 ff 31 e8 68 c9 ff ff 81 c4 08 .QRV.u..N......9.s7.q..1.h......
5be0 00 00 00 50 ff 75 0c e8 bb a7 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 05 8d 41 08 eb 05 03 4d ...P.u............=....t..A....M
5c00 10 eb cc 5e 5a 59 89 ec 5d c3 ff 75 14 ff 75 18 e8 fd bc ff ff 81 c4 08 00 00 00 68 05 3d 00 0a ...^ZY..]..u..u............h.=..
5c20 ff 75 18 e8 ea bc ff ff 81 c4 08 00 00 00 ff 75 0c ff 75 18 e8 d9 bc ff ff 81 c4 08 00 00 00 68 .u.............u..u............h
5c40 08 00 00 0a ff 75 18 e8 c6 bc ff ff 81 c4 08 00 00 00 68 01 00 00 00 ff 75 1c e8 fc b3 ff ff 81 .....u............h.....u.......
5c60 c4 08 00 00 00 bb 01 00 00 00 e8 05 a4 ff ff 55 89 e5 68 62 0d 00 0a e8 97 a8 ff ff 81 c4 04 00 ...............U..hb............
5c80 00 00 68 72 0e 00 0a e8 87 a8 ff ff 81 c4 04 00 00 00 81 ec 18 00 00 00 68 18 00 00 00 68 00 00 ..hr....................h....h..
5ca0 00 00 68 00 00 00 00 89 e1 68 00 00 00 00 68 00 00 00 00 89 e2 68 18 00 00 00 52 e8 7b b3 ff ff ..h......h....h......h....R.{...
5cc0 81 c4 08 00 00 00 68 a0 0e 00 0a 68 0c 00 00 00 68 27 3d 00 0a 51 e8 59 f8 ff ff 81 c4 10 00 00 ......h....h....h'=..Q.Y........
5ce0 00 52 68 6e 0e 00 0a 68 2f 3d 00 0a 68 0c 00 00 00 68 36 3d 00 0a 51 e8 c2 fe ff ff 81 c4 18 00 .Rhn...h/=..h....h6=..Q.........
5d00 00 00 68 3e 3d 00 0a 68 14 00 00 00 29 c8 50 e8 2f a4 ff ff 81 c4 0c 00 00 00 52 68 6e 0e 00 0a ..h>=..h....).P./.........Rhn...
5d20 68 58 3d 00 0a 68 0c 00 00 00 68 5f 3d 00 0a 51 e8 89 fe ff ff 59 81 c4 10 00 00 00 5a 68 67 3d hX=..h....h_=..Q.....Y......Zhg=
5d40 00 0a 68 02 00 00 00 ff 72 04 e8 f4 a3 ff ff 81 c4 0c 00 00 00 81 c4 2c 00 00 00 5d c3 55 89 e5 ..h.....r..............,...].U..
5d60 51 52 56 8b 75 08 8d 4e 0c 8b 16 8d 14 11 39 d1 73 37 ff 71 04 ff 31 e8 c9 c7 ff ff 81 c4 08 00 QRV.u..N......9.s7.q..1.........
5d80 00 00 50 ff 75 0c e8 e8 d0 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 05 8d 41 08 eb 05 03 4d 10 ..P.u............=....t..A....M.
5da0 eb cc 5e 5a 59 89 ec 5d c3 ff 75 14 ff 75 18 e8 5e bb ff ff 81 c4 08 00 00 00 68 81 3d 00 0a ff ..^ZY..]..u..u..^.........h.=...
5dc0 75 18 e8 4b bb ff ff 81 c4 08 00 00 00 ff 75 0c ff 75 18 e8 7b d5 ff ff 81 c4 08 00 00 00 68 08 u..K..........u..u..{.........h.
5de0 00 00 0a ff 75 18 e8 27 bb ff ff 81 c4 08 00 00 00 68 01 00 00 00 ff 75 1c e8 5d b2 ff ff 81 c4 ....u..'.........h.....u..].....
5e00 08 00 00 00 bb 01 00 00 00 e8 66 a2 ff ff 55 89 e5 68 62 0d 00 0a e8 f8 a6 ff ff 81 c4 04 00 00 ..........f...U..hb.............
5e20 00 68 72 0e 00 0a e8 e8 a6 ff ff 81 c4 04 00 00 00 81 ec 18 00 00 00 68 18 00 00 00 68 00 00 00 .hr....................h....h...
5e40 00 68 00 00 00 00 89 e1 68 00 00 00 00 68 00 00 00 00 89 e2 b8 a9 3d 00 0a 8b 18 8d 5c 18 04 05 .h......h....h........=.....\...
5e60 04 00 00 00 53 50 89 e3 68 18 00 00 00 52 e8 c8 b1 ff ff 81 c4 08 00 00 00 68 a0 0e 00 0a 68 0c ....SP..h....R...........h....h.
5e80 00 00 00 68 b1 3d 00 0a 51 e8 a6 f6 ff ff 81 c4 10 00 00 00 52 68 6e 0e 00 0a 68 b9 3d 00 0a 68 ...h.=..Q...........Rhn...h.=..h
5ea0 0c 00 00 00 53 51 e8 b2 fe ff ff 59 5b 81 c4 0c 00 00 00 5a 68 c0 3d 00 0a 68 14 00 00 00 29 c8 ....SQ.....Y[......Zh.=..h....).
5ec0 50 e8 7d a2 ff ff 81 c4 0c 00 00 00 b8 e0 3d 00 0a 05 04 00 00 00 89 03 05 08 00 00 00 89 43 04 P.}...........=...............C.
5ee0 52 68 6e 0e 00 0a 68 ec 3d 00 0a 68 0c 00 00 00 53 51 e8 66 fe ff ff 59 5b 81 c4 0c 00 00 00 5a Rhn...h.=..h....SQ.f...Y[......Z
5f00 68 f3 3d 00 0a 68 02 00 00 00 ff 72 04 e8 31 a2 ff ff 81 c4 0c 00 00 00 81 c4 34 00 00 00 5d c3 h.=..h.....r..1...........4...].
5f20 55 89 e5 51 52 56 8b 75 08 8d 4e 0c 8b 16 8d 14 11 39 d1 73 30 ff 71 04 ff 31 e8 06 c6 ff ff 81 U..QRV.u..N......9.s0.q..1......
5f40 c4 08 00 00 00 50 ff 75 0c e8 59 a4 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 05 8d 41 08 eb 0a .....P.u..Y.........=....t..A...
5f60 03 4d 10 eb cc b8 00 00 00 00 5e 5a 59 89 ec 5d c3 55 89 e5 81 ec 18 00 00 00 68 18 00 00 00 68 .M........^ZY..].U........h....h
5f80 00 00 00 00 68 00 00 00 00 89 e1 68 a0 0e 00 0a 68 0c 00 00 00 68 0d 3e 00 0a 51 e8 94 f5 ff ff ....h......h....h....h.>..Q.....
5fa0 81 c4 10 00 00 00 68 0c 00 00 00 68 15 3e 00 0a 51 e8 6a ff ff ff 81 c4 0c 00 00 00 68 1d 3e 00 ......h....h.>..Q.j.........h.>.
5fc0 0a 68 14 00 00 00 29 c8 50 e8 75 a1 ff ff 81 c4 0c 00 00 00 68 35 3e 00 0a 68 0c 00 00 00 ff 31 .h....).P.u.........h5>..h.....1
5fe0 e8 5e a1 ff ff 81 c4 0c 00 00 00 ff 71 10 ff 71 0c e8 4f c5 ff ff 81 c4 08 00 00 00 68 4d 3e 00 .^..........q..q..O.........hM>.
6000 0a 68 65 3e 00 0a 50 e8 c3 a4 ff ff 81 c4 0c 00 00 00 68 0c 00 00 00 68 6d 3e 00 0a 51 e8 fe fe .he>..P...........h....hm>..Q...
6020 ff ff 81 c4 0c 00 00 00 68 75 3e 00 0a 68 00 00 00 00 50 e8 0b a1 ff ff 81 c4 0c 00 00 00 89 ec ........hu>..h....P.............
6040 5d c3 55 89 e5 51 52 56 8b 75 08 8d 4e 0c 8b 16 8d 14 11 39 d1 73 30 ff 71 04 ff 31 e8 e4 c4 ff ].U..QRV.u..N......9.s0.q..1....
6060 ff 81 c4 08 00 00 00 50 ff 75 0c e8 03 ce ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 05 8d 41 08 .......P.u............=....t..A.
6080 eb 0a 03 4d 10 eb cc b8 00 00 00 00 5e 5a 59 89 ec 5d c3 55 89 e5 81 ec 18 00 00 00 68 18 00 00 ...M........^ZY..].U........h...
60a0 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 a0 0e 00 0a 68 0c 00 00 00 68 8d 3e 00 0a 51 e8 72 f4 .h....h......h....h....h.>..Q.r.
60c0 ff ff 81 c4 10 00 00 00 b8 95 3e 00 0a 8b 10 8d 54 10 04 05 04 00 00 00 52 50 89 e2 68 0c 00 00 ..........>.....T.......RP..h...
60e0 00 52 51 e8 5a ff ff ff 81 c4 0c 00 00 00 68 9d 3e 00 0a 68 14 00 00 00 29 c8 50 e8 43 a0 ff ff .RQ.Z.........h.>..h....).P.C...
6100 81 c4 0c 00 00 00 68 bb 3e 00 0a 68 0c 00 00 00 ff 31 e8 2c a0 ff ff 81 c4 0c 00 00 00 ff 71 10 ......h.>..h.....1.,..........q.
6120 ff 71 0c e8 1d c4 ff ff 81 c4 08 00 00 00 68 d9 3e 00 0a 68 f7 3e 00 0a 50 e8 91 a3 ff ff 81 c4 .q............h.>..h.>..P.......
6140 0c 00 00 00 b8 ff 3e 00 0a 8b 10 8d 54 10 04 05 04 00 00 00 52 50 89 e2 68 0c 00 00 00 52 51 e8 ......>.....T.......RP..h....RQ.
6160 de fe ff ff 81 c4 0c 00 00 00 68 07 3f 00 0a 68 00 00 00 00 50 e8 c9 9f ff ff 81 c4 0c 00 00 00 ..........h.?..h....P...........
6180 89 ec 5d c3 55 89 e5 50 51 52 56 57 8b 75 08 8b 4e 08 8b 7d 0c 8b 17 3b 57 08 7d 47 3b 4e 04 7c ..].U..PQRVW.u..N..}...;W.}G;N.|
61a0 26 8d 46 04 50 e8 69 a3 ff ff 81 c4 04 00 00 00 31 c9 50 ff 36 e8 53 af ff ff 81 c4 08 00 00 00 &.F.P.i.........1.P.6.S.........
61c0 3d 00 00 00 00 74 0e 31 c0 8a 44 0e 10 88 44 17 0c 41 42 eb c2 89 4e 08 89 17 5f 5e 5a 59 58 89 =....t.1..D...D..AB...N..._^ZYX.
61e0 ec 5d c3 68 25 3f 00 0a 68 02 00 00 00 e8 f3 9e ff ff 81 c4 08 00 00 00 bb 01 00 00 00 e8 72 9e .].h%?..h.....................r.
6200 ff ff 68 94 00 00 0a e8 07 a3 ff ff 81 c4 04 00 00 00 68 e0 00 00 0a e8 f7 a2 ff ff 81 c4 04 00 ..h...............h.............
6220 00 00 68 b0 00 00 0a e8 e7 a2 ff ff 81 c4 04 00 00 00 68 46 3f 00 0a 68 94 00 00 0a e8 19 a9 ff ..h...............hF?..h........
6240 ff 81 c4 08 00 00 00 68 b0 00 00 0a 68 dc 00 00 0a e8 2e ff ff ff 81 c4 08 00 00 00 68 4f 3f 00 .......h....h...............hO?.
6260 0a 68 61 3f 00 0a 68 b0 00 00 0a e8 2b ab ff ff 81 c4 0c 00 00 00 c3 55 89 e5 51 8b 45 08 8b 08 .ha?..h.....+..........U..Q.E...
6280 8d 4c 08 04 05 04 00 00 00 51 50 89 e1 51 e8 11 00 00 00 81 c4 04 00 00 00 81 c4 08 00 00 00 59 .L.......QP..Q.................Y
62a0 89 ec 5d c3 55 89 e5 51 8b 4d 08 68 6a 3f 00 0a 51 e8 42 e6 ff ff 81 c4 08 00 00 00 3d 00 00 00 ..].U..Q.M.hj?..Q.B.........=...
62c0 00 b8 04 00 00 00 75 5c 68 73 3f 00 0a 51 e8 25 e6 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 b8 04 ......u\hs?..Q.%.........=......
62e0 00 00 00 75 3f 68 7d 3f 00 0a 51 e8 08 e6 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 b8 02 00 00 00 ...u?h}?..Q...........=.........
6300 75 22 68 86 3f 00 0a 51 e8 eb e5 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 b8 02 00 00 00 75 05 b8 u"h.?..Q...........=.........u..
6320 01 00 00 00 59 89 ec 5d c3 55 89 e5 68 90 3f 00 0a e8 41 ff ff ff 81 c4 04 00 00 00 68 9c 3f 00 ....Y..].U..h.?...A.........h.?.
6340 0a 50 68 01 00 00 00 e8 f7 9d ff ff 81 c4 0c 00 00 00 68 c0 3f 00 0a e8 1b ff ff ff 81 c4 04 00 .Ph...............h.?...........
6360 00 00 68 cb 3f 00 0a 50 68 02 00 00 00 e8 d1 9d ff ff 81 c4 0c 00 00 00 68 ee 3f 00 0a e8 f5 fe ..h.?..Ph...............h.?.....
6380 ff ff 81 c4 04 00 00 00 68 f9 3f 00 0a 50 68 04 00 00 00 e8 ab 9d ff ff 81 c4 0c 00 00 00 68 1c ........h.?..Ph...............h.
63a0 40 00 0a e8 cf fe ff ff 81 c4 04 00 00 00 68 29 40 00 0a 50 68 01 00 00 00 e8 85 9d ff ff 81 c4 @.............h)@..Ph...........
63c0 0c 00 00 00 68 4e 40 00 0a e8 a9 fe ff ff 81 c4 04 00 00 00 68 5c 40 00 0a 50 68 02 00 00 00 e8 ....hN@.............h\@..Ph.....
63e0 5f 9d ff ff 81 c4 0c 00 00 00 68 82 40 00 0a e8 83 fe ff ff 81 c4 04 00 00 00 68 90 40 00 0a 50 _.........h.@.............h.@..P
6400 68 04 00 00 00 e8 39 9d ff ff 81 c4 0c 00 00 00 68 b6 40 00 0a e8 5d fe ff ff 81 c4 04 00 00 00 h.....9.........h.@...].........
6420 68 bc 40 00 0a 50 68 01 00 00 00 e8 13 9d ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 h.@..Ph.................].U..PQR
6440 57 8b 7d 08 8b 55 0c 8d 4a 04 8b 12 01 ca 31 c0 39 d1 73 17 68 01 00 00 00 8a 01 50 57 e8 ac e8 W.}..U..J.....1.9.s.h......PW...
6460 ff ff 81 c4 0c 00 00 00 41 eb e5 5f 5a 59 58 89 ec 5d c3 55 89 e5 68 40 05 00 0a e8 93 a0 ff ff ........A.._ZYX..].U..h@........
6480 81 c4 04 00 00 00 68 50 0d 00 0a e8 83 a0 ff ff 81 c4 04 00 00 00 68 01 02 03 00 68 03 00 00 00 ......hP..............h....h....
64a0 89 e1 51 68 4c 0d 00 0a e8 8d ff ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 e2 b2 ff ff 81 c4 04 ..QhL..............hL...........
64c0 00 00 00 68 e8 40 00 0a 68 03 41 00 0a 68 40 05 00 0a e8 36 ab ff ff 81 c4 0c 00 00 00 89 ec 5d ...h.@..h.A..h@....6...........]
64e0 c3 55 89 e5 50 51 56 57 8b 75 08 8b 7d 0c 68 20 00 00 00 ff 75 08 e8 96 d2 ff ff 81 c4 08 00 00 .U..PQVW.u..}.h.....u...........
6500 00 8b 46 04 3b 06 7c 0f c7 07 00 00 00 00 c7 47 04 00 00 00 00 eb 57 8b 4e 04 8d 44 0e 0c 89 07 ..F.;.|........G......W.N..D....
6520 31 c0 8a 44 0e 0c 3d 23 00 00 00 75 10 8b 06 8d 44 06 0c 89 47 04 8b 06 89 46 04 eb 31 31 c0 8a 1..D..=#...u....D...G....F..11..
6540 44 0e 0c 3d 22 00 00 00 75 0c 56 e8 e2 d7 ff ff 81 c4 04 00 00 00 ff 75 08 e8 e1 d4 ff ff 81 c4 D..="...u.V............u........
6560 04 00 00 00 8b 4e 04 8d 44 0e 0c 89 47 04 5f 5e 59 58 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 90 .....N..D...G._^YX..].U..h......
6580 9f ff ff 81 c4 04 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 10 41 00 0a 68 f2 00 00 0a e8 .........h....h......h.A..h.....
65a0 b6 a5 ff ff 81 c4 08 00 00 00 51 68 f2 00 00 0a e8 2c ff ff ff 81 c4 08 00 00 00 68 18 41 00 0a ..........Qh.....,.........h.A..
65c0 68 04 00 00 00 b8 f2 00 00 0a ff 70 04 e8 71 9b ff ff 81 c4 0c 00 00 00 68 56 41 00 0a 68 0e 00 h..........p..q.........hVA..h..
65e0 00 00 8b 01 81 e8 f2 00 00 0a 50 e8 53 9b ff ff 81 c4 0c 00 00 00 68 7d 41 00 0a 68 10 00 00 00 ..........P.S.........h}A..h....
6600 8b 41 04 81 e8 f2 00 00 0a 50 e8 34 9b ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 .A.......P.4...........].U..h...
6620 0a e8 ed 9e ff ff 81 c4 04 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 a2 41 00 0a 68 f2 00 ............h....h......h.A..h..
6640 00 0a e8 13 a5 ff ff 81 c4 08 00 00 00 51 68 f2 00 00 0a e8 89 fe ff ff 81 c4 08 00 00 00 68 ab .............Qh...............h.
6660 41 00 0a 68 05 00 00 00 b8 f2 00 00 0a ff 70 04 e8 ce 9a ff ff 81 c4 0c 00 00 00 68 ff 41 00 0a A..h..........p............h.A..
6680 68 0e 00 00 00 8b 01 81 e8 f2 00 00 0a 50 e8 b0 9a ff ff 81 c4 0c 00 00 00 68 3c 42 00 0a 68 11 h............P...........h<B..h.
66a0 00 00 00 8b 41 04 81 e8 f2 00 00 0a 50 e8 91 9a ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 ....A.......P.............].U..h
66c0 f2 00 00 0a e8 4a 9e ff ff 81 c4 04 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 51 68 f2 00 00 .....J.........h....h......Qh...
66e0 0a e8 fb fd ff ff 81 c4 08 00 00 00 68 77 42 00 0a 68 00 00 00 00 8b 41 04 2b 01 50 e8 42 9a ff ............hwB..h.....A.+.P.B..
6700 ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 fb 9d ff ff 81 c4 04 00 00 00 68 00 .........].U..h...............h.
6720 00 00 00 68 00 00 00 00 89 e1 68 b3 42 00 0a 68 f2 00 00 0a e8 21 a4 ff ff 81 c4 08 00 00 00 51 ...h......h.B..h.....!.........Q
6740 68 f2 00 00 0a e8 97 fd ff ff 81 c4 08 00 00 00 68 c4 42 00 0a 68 0d 00 00 00 8b 01 81 e8 f2 00 h...............h.B..h..........
6760 00 0a 50 e8 db 99 ff ff 81 c4 0c 00 00 00 68 02 43 00 0a 68 18 00 00 00 8b 41 04 81 e8 f2 00 00 ..P...........h.C..h.....A......
6780 0a 50 e8 bc 99 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 75 9d ff ff 81 c4 .P.............].U..h.....u.....
67a0 04 00 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 3e 43 00 0a 68 f2 00 00 0a e8 9b a3 ff ff 81 ....h....h......h>C..h..........
67c0 c4 08 00 00 00 51 68 f2 00 00 0a e8 11 fd ff ff 81 c4 08 00 00 00 68 4b 43 00 0a 68 0d 00 00 00 .....Qh...............hKC..h....
67e0 8b 01 81 e8 f2 00 00 0a 50 e8 55 99 ff ff 81 c4 0c 00 00 00 68 8e 43 00 0a 68 15 00 00 00 8b 41 ........P.U.........h.C..h.....A
6800 04 81 e8 f2 00 00 0a 50 e8 36 99 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 89 e5 68 a0 0e 00 0a ff 35 .......P.6...........]...h.....5
6820 a8 0e 00 0a e8 45 9b ff ff 81 c4 08 00 00 00 81 7d 00 01 00 00 00 7e 27 68 cf 43 00 0a ff 75 08 .....E..........}.....~'h.C...u.
6840 e8 6b 99 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 0d e8 28 23 00 00 8b 1d 0d 00 00 0a eb 1a 68 .k.........=....t..(#..........h
6860 28 05 00 0a 68 c4 00 00 0a e8 10 00 00 00 81 c4 08 00 00 00 bb 00 00 00 00 e8 f6 97 ff ff 55 89 (...h.........................U.
6880 e5 50 51 52 53 81 ec 00 02 00 00 68 00 02 00 00 68 00 00 00 00 68 00 00 00 00 89 e1 68 00 00 00 .PQRS......h....h....h......h...
68a0 00 68 00 00 00 00 89 e2 31 db 51 e8 63 9c ff ff 81 c4 04 00 00 00 51 ff 75 08 e8 5d c2 ff ff 81 .h......1.Q.c.........Q.u..]....
68c0 c4 08 00 00 00 81 39 00 00 00 00 0f 84 b2 00 00 00 52 51 e8 90 dd ff ff 81 c4 08 00 00 00 52 e8 ......9..........RQ...........R.
68e0 d3 c4 ff ff 81 c4 04 00 00 00 3d 00 00 00 00 0f 85 7a 00 00 00 68 d7 43 00 0a 52 e8 73 c5 ff ff ..........=......z...h.C..R.s...
6900 81 c4 08 00 00 00 3d 00 00 00 00 0f 84 22 00 00 00 52 51 e8 50 dd ff ff 81 c4 08 00 00 00 68 dd ......=......"...RQ.P.........h.
6920 43 00 0a 52 e8 4a c5 ff ff 81 c4 08 00 00 00 89 c3 eb 3c 51 e8 0c 9c ff ff 81 c4 04 00 00 00 81 C..R.J............<Q............
6940 fb 00 00 00 00 74 14 ff 75 0c 51 e8 24 0a 00 00 81 c4 08 00 00 00 e9 4f ff ff ff ff 75 0c 51 e8 .....t..u.Q.$..........O....u.Q.
6960 47 04 00 00 81 c4 08 00 00 00 e9 3b ff ff ff 51 ff 75 0c e8 37 d9 ff ff 81 c4 08 00 00 00 e9 27 G..........;...Q.u..7..........'
6980 ff ff ff ff 75 0c e8 14 ae ff ff 81 c4 04 00 00 00 81 c4 14 02 00 00 5b 5a 59 58 89 ec 5d c3 55 ....u..................[ZYX..].U
69a0 89 e5 68 f2 00 00 0a e8 67 9b ff ff 81 c4 04 00 00 00 68 02 05 00 0a e8 57 9b ff ff 81 c4 04 00 ..h.....g.........h.....W.......
69c0 00 00 68 40 05 00 0a e8 47 9b ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 37 9b ff ff 81 c4 04 00 ..h@....G.........hP....7.......
69e0 00 00 68 4c 0d 00 0a 68 fe 04 00 0a e8 8d fe ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 9e ad ff ..hL...h...............hL.......
6a00 ff 81 c4 04 00 00 00 68 e5 43 00 0a 68 16 44 00 0a 68 40 05 00 0a e8 80 a3 ff ff 81 c4 0c 00 00 .......h.C..h.D..h@.............
6a20 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 e1 9a ff ff 81 c4 04 00 00 00 68 02 05 00 0a e8 d1 9a ...].U..h...............h.......
6a40 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 c1 9a ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 b1 9a ........h@..............hP......
6a60 ff ff 81 c4 04 00 00 00 68 1a 44 00 0a 68 f2 00 00 0a e8 e3 a0 ff ff 81 c4 08 00 00 00 68 4c 0d ........h.D..h...............hL.
6a80 00 0a 68 fe 04 00 0a e8 f2 fd ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 03 ad ff ff 81 c4 04 00 ..h...............hL............
6aa0 00 00 68 22 44 00 0a 68 5c 44 00 0a 68 40 05 00 0a e8 57 a5 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 ..h"D..h\D..h@....W...........].
6ac0 55 89 e5 68 f2 00 00 0a e8 46 9a ff ff 81 c4 04 00 00 00 68 02 05 00 0a e8 36 9a ff ff 81 c4 04 U..h.....F.........h.....6......
6ae0 00 00 00 68 40 05 00 0a e8 26 9a ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 16 9a ff ff 81 c4 04 ...h@....&.........hP...........
6b00 00 00 00 68 64 44 00 0a 68 f2 00 00 0a e8 48 a0 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 fe 04 ...hdD..h.....H.........hL...h..
6b20 00 0a e8 57 fd ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 68 ac ff ff 81 c4 04 00 00 00 68 73 44 ...W.........hL....h.........hsD
6b40 00 0a 68 a8 44 00 0a 68 40 05 00 0a e8 4a a2 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 ..h.D..h@....J...........].U..h.
6b60 00 00 0a e8 ab 99 ff ff 81 c4 04 00 00 00 68 02 05 00 0a e8 9b 99 ff ff 81 c4 04 00 00 00 68 40 ..............h...............h@
6b80 05 00 0a e8 8b 99 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 7b 99 ff ff 81 c4 04 00 00 00 68 b7 ..............hP....{.........h.
6ba0 44 00 0a 68 f2 00 00 0a e8 ad 9f ff ff 81 c4 08 00 00 00 68 c7 44 00 0a 68 f2 00 00 0a e8 98 9f D..h...............h.D..h.......
6bc0 ff ff 81 c4 08 00 00 00 68 d7 44 00 0a 68 f2 00 00 0a e8 83 9f ff ff 81 c4 08 00 00 00 68 4c 0d ........h.D..h...............hL.
6be0 00 0a 68 fe 04 00 0a e8 92 fc ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 a3 ab ff ff 81 c4 04 00 ..h...............hL............
6c00 00 00 68 e5 44 00 0a 68 0d 45 00 0a 68 40 05 00 0a e8 f7 a3 ff ff 81 c4 0c 00 00 00 68 1c 45 00 ..h.D..h.E..h@..............h.E.
6c20 0a 68 44 45 00 0a 68 40 05 00 0a e8 dd a3 ff ff 81 c4 0c 00 00 00 68 53 45 00 0a 68 7b 45 00 0a .hDE..h@..............hSE..h{E..
6c40 68 40 05 00 0a e8 c3 a3 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 b2 98 ff h@................].U..h........
6c60 ff 81 c4 04 00 00 00 68 02 05 00 0a e8 a2 98 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 92 98 ff .......h...............h@.......
6c80 ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 82 98 ff ff 81 c4 04 00 00 00 68 8e 45 00 0a 68 f2 00 00 .......hP..............h.E..h...
6ca0 0a e8 b4 9e ff ff 81 c4 08 00 00 00 68 9e 45 00 0a 68 f2 00 00 0a e8 9f 9e ff ff 81 c4 08 00 00 ............h.E..h..............
6cc0 00 68 b4 45 00 0a 68 f2 00 00 0a e8 8a 9e ff ff 81 c4 08 00 00 00 68 ca 45 00 0a 68 f2 00 00 0a .h.E..h...............h.E..h....
6ce0 e8 75 9e ff ff 81 c4 08 00 00 00 68 da 45 00 0a 68 f2 00 00 0a e8 60 9e ff ff 81 c4 08 00 00 00 .u.........h.E..h.....`.........
6d00 68 4c 0d 00 0a 68 fe 04 00 0a e8 6f fb ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 80 aa ff ff 81 hL...h.....o.........hL.........
6d20 c4 04 00 00 00 68 e8 45 00 0a 68 17 46 00 0a 68 40 05 00 0a e8 d4 a2 ff ff 81 c4 0c 00 00 00 68 .....h.E..h.F..h@..............h
6d40 26 46 00 0a 68 55 46 00 0a 68 40 05 00 0a e8 ba a2 ff ff 81 c4 0c 00 00 00 68 7c 46 00 0a 68 ab &F..hUF..h@..............h|F..h.
6d60 46 00 0a 68 40 05 00 0a e8 a0 a2 ff ff 81 c4 0c 00 00 00 68 c9 46 00 0a 68 f8 46 00 0a 68 40 05 F..h@..............h.F..h.F..h@.
6d80 00 0a e8 86 a2 ff ff 81 c4 0c 00 00 00 68 07 47 00 0a 68 36 47 00 0a 68 40 05 00 0a e8 6c a2 ff .............h.G..h6G..h@....l..
6da0 ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 68 00 00 00 00 68 00 00 00 00 89 e1 51 ff 75 .........].U..PQRh....h......Q.u
6dc0 08 e8 a2 d8 ff ff 81 c4 08 00 00 00 51 e8 e5 bf ff ff 81 c4 04 00 00 00 3d 00 00 00 00 0f 85 8e ............Q...........=.......
6de0 00 00 00 8b 11 31 c0 8a 02 3d 23 00 00 00 75 15 51 ff 75 0c e8 5a c5 ff ff 81 c4 08 00 00 00 0f .....1...=#...u.Q.u..Z..........
6e00 85 7f 00 00 00 8b 51 04 31 c0 8a 42 ff 3d 3a 00 00 00 75 13 ff 75 08 ff 75 0c e8 90 d4 ff ff 81 ......Q.1..B.=:...u..u..u.......
6e20 c4 08 00 00 00 75 5d 68 49 47 00 0a 51 e8 c6 da ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 19 68 .....u]hIG..Q...........=....t.h
6e40 04 00 00 00 51 ff 75 0c e8 9c e0 ff ff 81 c4 0c 00 00 00 e9 65 ff ff ff 68 01 00 00 00 51 ff 75 ....Q.u.............e...h....Q.u
6e60 0c e8 83 e0 ff ff 81 c4 0c 00 00 00 e9 4c ff ff ff 68 08 00 00 0a ff 75 0c e8 94 aa ff ff 81 c4 .............L...h.....u........
6e80 08 00 00 00 81 c4 08 00 00 00 5a 59 58 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 75 96 ff ff 81 c4 ..........ZYX..].U..h.....u.....
6ea0 04 00 00 00 68 40 05 00 0a e8 65 96 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 55 96 ff ff 81 c4 ....h@....e.........hP....U.....
6ec0 04 00 00 00 68 52 47 00 0a 68 f2 00 00 0a e8 87 9c ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 ....hRG..h...............hL...h.
6ee0 00 00 0a e8 c3 fe ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 a7 a8 ff ff 81 c4 04 00 00 00 68 5c ..............hL..............h\
6f00 47 00 0a 68 8d 47 00 0a 68 40 05 00 0a e8 89 9e ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 G..h.G..h@................].U..h
6f20 f2 00 00 0a e8 ea 95 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 da 95 ff ff 81 c4 04 00 00 00 68 ...............h@..............h
6f40 50 0d 00 0a e8 ca 95 ff ff 81 c4 04 00 00 00 68 97 47 00 0a 68 f2 00 00 0a e8 fc 9b ff ff 81 c4 P..............h.G..h...........
6f60 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 38 fe ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 1c ....hL...h.....8.........hL.....
6f80 a8 ff ff 81 c4 04 00 00 00 68 a3 47 00 0a 68 d2 47 00 0a 68 40 05 00 0a e8 fe 9d ff ff 81 c4 0c .........h.G..h.G..h@...........
6fa0 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 5f 95 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 .....].U..h....._.........h@....
6fc0 4f 95 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 3f 95 ff ff 81 c4 04 00 00 00 68 de 47 00 0a 68 O.........hP....?.........h.G..h
6fe0 f2 00 00 0a e8 71 9b ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 ad fd ff ff 81 c4 .....q.........hL...h...........
7000 08 00 00 00 68 4c 0d 00 0a e8 91 a7 ff ff 81 c4 04 00 00 00 68 ec 47 00 0a 68 1a 48 00 0a 68 40 ....hL..............h.G..h.H..h@
7020 05 00 0a e8 73 9d ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 d4 94 ff ff 81 ....s...........].U..h..........
7040 c4 04 00 00 00 68 40 05 00 0a e8 c4 94 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 b4 94 ff ff 81 .....h@..............hP.........
7060 c4 04 00 00 00 68 2a 48 00 0a 68 f2 00 00 0a e8 e6 9a ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 .....h*H..h...............hL...h
7080 f2 00 00 0a e8 22 fd ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 06 a7 ff ff 81 c4 04 00 00 00 68 .....".........hL..............h
70a0 36 48 00 0a 68 5d 48 00 0a 68 40 05 00 0a e8 e8 9c ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 6H..h]H..h@................].U..
70c0 68 f2 00 00 0a e8 49 94 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 39 94 ff ff 81 c4 04 00 00 00 h.....I.........h@....9.........
70e0 68 50 0d 00 0a e8 29 94 ff ff 81 c4 04 00 00 00 68 6e 48 00 0a 68 f2 00 00 0a e8 5b 9a ff ff 81 hP....).........hnH..h.....[....
7100 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 97 fc ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 .....hL...h...............hL....
7120 7b a6 ff ff 81 c4 04 00 00 00 68 7a 48 00 0a 68 a7 48 00 0a 68 40 05 00 0a e8 5d 9c ff ff 81 c4 {.........hzH..h.H..h@....].....
7140 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 be 93 ff ff 81 c4 04 00 00 00 68 40 05 00 0a ......].U..h...............h@...
7160 e8 ae 93 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 9e 93 ff ff 81 c4 04 00 00 00 68 af 48 00 0a ...........hP..............h.H..
7180 68 f2 00 00 0a e8 d0 99 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 0c fc ff ff 81 h...............hL...h..........
71a0 c4 08 00 00 00 68 4c 0d 00 0a e8 f0 a5 ff ff 81 c4 04 00 00 00 68 b6 48 00 0a 68 de 48 00 0a 68 .....hL..............h.H..h.H..h
71c0 40 05 00 0a e8 d2 9b ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 33 93 ff ff @................].U..h.....3...
71e0 81 c4 04 00 00 00 68 40 05 00 0a e8 23 93 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 13 93 ff ff ......h@....#.........hP........
7200 81 c4 04 00 00 00 68 e9 48 00 0a 68 f2 00 00 0a e8 45 99 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a ......h.H..h.....E.........hL...
7220 68 f2 00 00 0a e8 81 fb ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 65 a5 ff ff 81 c4 04 00 00 00 h...............hL....e.........
7240 68 f6 48 00 0a 68 1e 49 00 0a 68 40 05 00 0a e8 47 9b ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 h.H..h.I..h@....G...........].U.
7260 e5 68 f2 00 00 0a e8 a8 92 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 98 92 ff ff 81 c4 04 00 00 .h...............h@.............
7280 00 68 50 0d 00 0a e8 88 92 ff ff 81 c4 04 00 00 00 68 2d 49 00 0a 68 f2 00 00 0a e8 ba 98 ff ff .hP..............h-I..h.........
72a0 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 f6 fa ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a ......hL...h...............hL...
72c0 e8 da a4 ff ff 81 c4 04 00 00 00 68 45 49 00 0a 68 6d 49 00 0a 68 40 05 00 0a e8 bc 9a ff ff 81 ...........hEI..hmI..h@.........
72e0 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 1d 92 ff ff 81 c4 04 00 00 00 68 40 05 00 .......].U..h...............h@..
7300 0a e8 0d 92 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 fd 91 ff ff 81 c4 04 00 00 00 68 88 49 00 ............hP..............h.I.
7320 0a 68 f2 00 00 0a e8 2f 98 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 6b fa ff ff .h...../.........hL...h.....k...
7340 81 c4 08 00 00 00 68 4c 0d 00 0a e8 4f a4 ff ff 81 c4 04 00 00 00 68 9e 49 00 0a 68 c8 49 00 0a ......hL....O.........h.I..h.I..
7360 68 40 05 00 0a e8 31 9a ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 50 51 52 68 00 00 00 00 68 h@....1...........].U..PQRh....h
7380 00 00 00 00 89 e1 51 ff 75 08 e8 d9 d2 ff ff 81 c4 08 00 00 00 51 e8 1c ba ff ff 81 c4 04 00 00 ......Q.u............Q..........
73a0 00 3d 00 00 00 00 75 1c 8b 11 31 c0 8a 02 3d 23 00 00 00 74 0f 8b 51 04 31 c0 8a 42 ff 3d 3a 00 .=....u...1...=#...t..Q.1..B.=:.
73c0 00 00 75 13 ff 75 08 ff 75 0c e8 e0 ce ff ff 81 c4 08 00 00 00 eb 66 ff 75 0c ff 75 08 e8 68 00 ..u..u..u.............f.u..u..h.
73e0 00 00 81 c4 08 00 00 00 ff 75 0c ff 75 08 e8 64 02 00 00 81 c4 08 00 00 00 ff 75 0c ff 75 08 e8 .........u..u..d..........u..u..
7400 23 04 00 00 81 c4 08 00 00 00 ff 75 0c ff 75 08 e8 52 05 00 00 81 c4 08 00 00 00 ff 75 0c ff 75 #..........u..u..R..........u..u
7420 08 e8 37 06 00 00 81 c4 08 00 00 00 ff 75 0c ff 75 08 e8 1c 07 00 00 81 c4 08 00 00 00 81 c4 08 ..7..........u..u...............
7440 00 00 00 5a 59 58 89 ec 5d c3 55 89 e5 50 51 52 53 68 00 00 00 00 68 00 00 00 00 89 e1 68 00 00 ...ZYX..].U..PQRSh....h......h..
7460 00 00 68 00 00 00 00 89 e2 ff 75 08 e8 d4 90 ff ff 81 c4 04 00 00 00 51 ff 75 08 e8 e8 d1 ff ff ..h.......u............Q.u......
7480 81 c4 08 00 00 00 51 e8 2b b9 ff ff 81 c4 04 00 00 00 3d 00 00 00 00 0f 85 ac 01 00 00 8b 19 31 ......Q.+.........=............1
74a0 c0 8a 03 3d 23 00 00 00 0f 84 9b 01 00 00 51 68 2f 00 00 00 ff 71 04 ff 31 e8 93 c1 ff ff 81 c4 ...=#.........Qh/....q..1.......
74c0 10 00 00 00 51 ff 75 0c e8 86 be ff ff 81 c4 08 00 00 00 68 11 00 00 0a ff 75 0c e8 32 a4 ff ff ....Q.u............h.....u..2...
74e0 81 c4 08 00 00 00 68 e1 49 00 0a 51 e8 82 b9 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 75 35 68 e7 ......h.I..Q...........=....u5h.
7500 49 00 0a 51 e8 6a b9 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 75 1d 68 ed 49 00 0a 51 e8 52 b9 ff I..Q.j.........=....u.h.I..Q.R..
7520 ff 81 c4 08 00 00 00 3d 00 00 00 00 75 05 e9 16 01 00 00 52 ff 75 08 e8 2c d1 ff ff 81 c4 08 00 .......=....u......R.u..,.......
7540 00 00 52 e8 6f b8 ff ff 81 c4 04 00 00 00 3d 00 00 00 00 0f 85 f0 00 00 00 8b 1a 31 c0 8a 03 3d ..R.o.........=............1...=
7560 23 00 00 00 0f 84 df 00 00 00 52 68 2f 00 00 00 ff 72 04 ff 32 e8 d7 c0 ff ff 81 c4 10 00 00 00 #.........Rh/....r..2...........
7580 52 ff 75 0c e8 ca bd ff ff 81 c4 08 00 00 00 68 11 00 00 0a ff 75 0c e8 76 a3 ff ff 81 c4 08 00 R.u............h.....u..v.......
75a0 00 00 68 f3 49 00 0a 51 e8 c6 b8 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 0f 85 8b 00 00 00 68 f9 ..h.I..Q...........=..........h.
75c0 49 00 0a 52 e8 aa b8 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 0f 84 6f 00 00 00 52 ff 75 08 e8 85 I..R...........=......o...R.u...
75e0 d0 ff ff 81 c4 08 00 00 00 52 e8 c8 b7 ff ff 81 c4 04 00 00 00 3d 00 00 00 00 0f 85 49 00 00 00 .........R...........=......I...
7600 8b 1a 31 c0 8a 03 3d 23 00 00 00 0f 84 38 00 00 00 52 68 2f 00 00 00 ff 72 04 ff 32 e8 30 c0 ff ..1...=#.....8...Rh/....r..2.0..
7620 ff 81 c4 10 00 00 00 52 ff 75 0c e8 23 bd ff ff 81 c4 08 00 00 00 68 11 00 00 0a ff 75 0c e8 cf .......R.u..#.........h.....u...
7640 a2 ff ff 81 c4 08 00 00 00 81 c4 10 00 00 00 5b 5a 59 58 89 ec 5d c3 55 89 e5 50 51 52 53 56 57 ...............[ZYX..].U..PQRSVW
7660 68 00 00 00 00 68 00 00 00 00 89 e1 31 d2 31 db 31 f6 31 ff ff 75 08 e8 c9 8e ff ff 81 c4 04 00 h....h......1.1.1.1..u..........
7680 00 00 51 ff 75 08 e8 dd cf ff ff 81 c4 08 00 00 00 51 e8 20 b7 ff ff 81 c4 04 00 00 00 3d 00 00 ..Q.u............Q...........=..
76a0 00 00 0f 85 37 01 00 00 52 8b 11 31 c0 8a 02 5a 3d 23 00 00 00 0f 84 24 01 00 00 68 ff 49 00 0a ....7...R..1...Z=#.....$...h.I..
76c0 51 e8 32 d2 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 18 51 e8 64 14 00 00 81 c4 04 00 00 00 89 Q.2.........=....t.Q.d..........
76e0 c3 ba 01 00 00 00 e9 97 ff ff ff 68 06 4a 00 0a 51 e8 02 d2 ff ff 81 c4 08 00 00 00 3d 00 00 00 ...........h.J..Q...........=...
7700 00 74 18 51 e8 34 14 00 00 81 c4 04 00 00 00 89 c6 ba 01 00 00 00 e9 67 ff ff ff 68 0e 4a 00 0a .t.Q.4.................g...h.J..
7720 51 e8 d2 d1 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 18 51 e8 04 14 00 00 81 c4 04 00 00 00 89 Q...........=....t.Q............
7740 c6 ba 01 00 00 00 e9 37 ff ff ff 68 16 4a 00 0a 51 e8 a2 d1 ff ff 81 c4 08 00 00 00 3d 00 00 00 .......7...h.J..Q...........=...
7760 00 74 18 51 e8 d4 13 00 00 81 c4 04 00 00 00 89 c7 ba 01 00 00 00 e9 07 ff ff ff 68 1d 4a 00 0a .t.Q.......................h.J..
7780 51 e8 72 d1 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 18 51 e8 a4 13 00 00 81 c4 04 00 00 00 89 Q.r.........=....t.Q............
77a0 c7 ba 01 00 00 00 e9 d7 fe ff ff 68 24 4a 00 0a 51 e8 42 d1 ff ff 81 c4 08 00 00 00 3d 00 00 00 ...........h$J..Q.B.........=...
77c0 00 0f 84 bb fe ff ff 51 e8 70 13 00 00 81 c4 04 00 00 00 89 c7 ba 01 00 00 00 e9 a3 fe ff ff 81 .......Q.p......................
77e0 fa 00 00 00 00 74 30 81 e3 03 00 00 00 c1 e3 03 81 e7 07 00 00 00 09 fb c1 e3 03 81 e6 07 00 00 .....t0.........................
7800 00 09 f3 68 01 00 00 00 53 ff 75 0c e8 fd d4 ff ff 81 c4 0c 00 00 00 81 c4 08 00 00 00 5f 5e 5b ...h....S.u.................._^[
7820 5a 59 58 89 ec 5d c3 55 89 e5 50 51 52 53 56 57 68 00 00 00 00 68 00 00 00 00 89 e1 31 d2 31 db ZYX..].U..PQRSVWh....h......1.1.
7840 31 f6 31 ff ff 75 08 e8 f9 8c ff ff 81 c4 04 00 00 00 51 ff 75 08 e8 0d ce ff ff 81 c4 08 00 00 1.1..u............Q.u...........
7860 00 51 e8 50 b5 ff ff 81 c4 04 00 00 00 3d 00 00 00 00 0f 85 a7 00 00 00 52 8b 11 31 c0 8a 02 5a .Q.P.........=..........R..1...Z
7880 3d 23 00 00 00 0f 84 94 00 00 00 68 2d 4a 00 0a 51 e8 62 d0 ff ff 81 c4 08 00 00 00 3d 00 00 00 =#.........h-J..Q.b.........=...
78a0 00 74 18 51 e8 94 12 00 00 81 c4 04 00 00 00 89 c3 ba 01 00 00 00 e9 97 ff ff ff 68 36 4a 00 0a .t.Q.......................h6J..
78c0 51 e8 32 d0 ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 18 51 e8 64 12 00 00 81 c4 04 00 00 00 89 Q.2.........=....t.Q.d..........
78e0 c6 ba 01 00 00 00 e9 67 ff ff ff 68 3e 4a 00 0a 51 e8 02 d0 ff ff 81 c4 08 00 00 00 3d 00 00 00 .......g...h>J..Q...........=...
7900 00 0f 84 4b ff ff ff 51 e8 30 12 00 00 81 c4 04 00 00 00 89 c7 ba 01 00 00 00 e9 33 ff ff ff 81 ...K...Q.0.................3....
7920 fa 00 00 00 00 74 30 81 e3 03 00 00 00 c1 e3 03 81 e7 07 00 00 00 09 fb c1 e3 03 81 e6 07 00 00 .....t0.........................
7940 00 09 f3 68 01 00 00 00 53 ff 75 0c e8 bd d3 ff ff 81 c4 0c 00 00 00 81 c4 08 00 00 00 5f 5e 5b ...h....S.u.................._^[
7960 5a 59 58 89 ec 5d c3 55 89 e5 50 51 52 68 00 00 00 00 68 00 00 00 00 89 e1 ff 75 08 e8 c4 8b ff ZYX..].U..PQRh....h.......u.....
7980 ff 81 c4 04 00 00 00 51 ff 75 08 e8 d8 cc ff ff 81 c4 08 00 00 00 51 e8 1b b4 ff ff 81 c4 04 00 .......Q.u............Q.........
79a0 00 00 3d 00 00 00 00 0f 85 a3 00 00 00 8b 11 31 c0 8a 02 3d 23 00 00 00 0f 84 92 00 00 00 68 47 ..=............1...=#.........hG
79c0 4a 00 0a 51 e8 2f cf ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 19 68 04 00 00 00 51 ff 75 0c e8 J..Q./.........=....t.h....Q.u..
79e0 05 d5 ff ff 81 c4 0c 00 00 00 e9 61 00 00 00 68 51 4a 00 0a 51 e8 fe ce ff ff 81 c4 08 00 00 00 ...........a...hQJ..Q...........
7a00 3d 00 00 00 00 74 19 68 02 00 00 00 51 ff 75 0c e8 d4 d4 ff ff 81 c4 0c 00 00 00 e9 30 00 00 00 =....t.h....Q.u.............0...
7a20 68 5b 4a 00 0a 51 e8 cd ce ff ff 81 c4 08 00 00 00 3d 00 00 00 00 0f 84 4b ff ff ff 68 01 00 00 h[J..Q...........=......K...h...
7a40 00 51 ff 75 0c e8 9f d4 ff ff 81 c4 0c 00 00 00 81 c4 08 00 00 00 5a 59 58 89 ec 5d c3 55 89 e5 .Q.u..................ZYX..].U..
7a60 50 51 52 68 00 00 00 00 68 00 00 00 00 89 e1 ff 75 08 e8 ce 8a ff ff 81 c4 04 00 00 00 51 ff 75 PQRh....h.......u............Q.u
7a80 08 e8 e2 cb ff ff 81 c4 08 00 00 00 51 e8 25 b3 ff ff 81 c4 04 00 00 00 3d 00 00 00 00 0f 85 a3 ............Q.%.........=.......
7aa0 00 00 00 8b 11 31 c0 8a 02 3d 23 00 00 00 0f 84 92 00 00 00 68 64 4a 00 0a 51 e8 39 ce ff ff 81 .....1...=#.........hdJ..Q.9....
7ac0 c4 08 00 00 00 3d 00 00 00 00 74 19 68 04 00 00 00 51 ff 75 0c e8 0f d4 ff ff 81 c4 0c 00 00 00 .....=....t.h....Q.u............
7ae0 e9 61 00 00 00 68 6d 4a 00 0a 51 e8 08 ce ff ff 81 c4 08 00 00 00 3d 00 00 00 00 74 19 68 02 00 .a...hmJ..Q...........=....t.h..
7b00 00 00 51 ff 75 0c e8 de d3 ff ff 81 c4 0c 00 00 00 e9 30 00 00 00 68 76 4a 00 0a 51 e8 d7 cd ff ..Q.u.............0...hvJ..Q....
7b20 ff 81 c4 08 00 00 00 3d 00 00 00 00 0f 84 4b ff ff ff 68 01 00 00 00 51 ff 75 0c e8 a9 d3 ff ff .......=......K...h....Q.u......
7b40 81 c4 0c 00 00 00 81 c4 08 00 00 00 5a 59 58 89 ec 5d c3 55 89 e5 68 7e 4a 00 0a ff 75 0c e8 af ............ZYX..].U..h~J...u...
7b60 9d ff ff 81 c4 08 00 00 00 ff 75 08 ff 75 0c e8 3b c7 ff ff 81 c4 08 00 00 00 89 ec 5d c3 55 89 ..........u..u..;...........].U.
7b80 e5 68 f2 00 00 0a e8 88 89 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 78 89 ff ff 81 c4 04 00 00 .h...............h@....x........
7ba0 00 68 50 0d 00 0a e8 68 89 ff ff 81 c4 04 00 00 00 68 85 4a 00 0a 68 f2 00 00 0a e8 9a 8f ff ff .hP....h.........h.J..h.........
7bc0 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 9f f7 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a ......hL...h...............hL...
7be0 e8 ba 9b ff ff 81 c4 04 00 00 00 68 8f 4a 00 0a 68 c7 4a 00 0a 68 40 05 00 0a e8 9c 91 ff ff 81 ...........h.J..h.J..h@.........
7c00 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 fd 88 ff ff 81 c4 04 00 00 00 68 40 05 00 .......].U..h...............h@..
7c20 0a e8 ed 88 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 dd 88 ff ff 81 c4 04 00 00 00 68 d1 4a 00 ............hP..............h.J.
7c40 0a 68 f2 00 00 0a e8 0f 8f ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 14 f7 ff ff .h...............hL...h.........
7c60 81 c4 08 00 00 00 68 4c 0d 00 0a e8 2f 9b ff ff 81 c4 04 00 00 00 68 dd 4a 00 0a 68 13 4b 00 0a ......hL..../.........h.J..h.K..
7c80 68 40 05 00 0a e8 11 91 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 72 88 ff h@................].U..h.....r..
7ca0 ff 81 c4 04 00 00 00 68 40 05 00 0a e8 62 88 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 52 88 ff .......h@....b.........hP....R..
7cc0 ff 81 c4 04 00 00 00 68 1f 4b 00 0a 68 f2 00 00 0a e8 84 8e ff ff 81 c4 08 00 00 00 68 4c 0d 00 .......h.K..h...............hL..
7ce0 0a 68 f2 00 00 0a e8 89 f6 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 a4 9a ff ff 81 c4 04 00 00 .h...............hL.............
7d00 00 68 32 4b 00 0a 68 68 4b 00 0a 68 40 05 00 0a e8 86 90 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 .h2K..hhK..h@................].U
7d20 89 e5 68 f2 00 00 0a e8 e7 87 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 d7 87 ff ff 81 c4 04 00 ..h...............h@............
7d40 00 00 68 50 0d 00 0a e8 c7 87 ff ff 81 c4 04 00 00 00 68 81 4b 00 0a 68 f2 00 00 0a e8 f9 8d ff ..hP..............h.K..h........
7d60 ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 fe f5 ff ff 81 c4 08 00 00 00 68 4c 0d 00 .......hL...h...............hL..
7d80 0a e8 19 9a ff ff 81 c4 04 00 00 00 68 9a 4b 00 0a 68 cc 4b 00 0a 68 40 05 00 0a e8 fb 8f ff ff ............h.K..h.K..h@........
7da0 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 5c 87 ff ff 81 c4 04 00 00 00 68 40 05 ........].U..h.....\.........h@.
7dc0 00 0a e8 4c 87 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 3c 87 ff ff 81 c4 04 00 00 00 68 ee 4b ...L.........hP....<.........h.K
7de0 00 0a 68 f2 00 00 0a e8 6e 8d ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 73 f5 ff ..h.....n.........hL...h.....s..
7e00 ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 8e 99 ff ff 81 c4 04 00 00 00 68 07 4c 00 0a 68 39 4c 00 .......hL..............h.L..h9L.
7e20 0a 68 40 05 00 0a e8 70 8f ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 d1 86 .h@....p...........].U..h.......
7e40 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 c1 86 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 b1 86 ........h@..............hP......
7e60 ff ff 81 c4 04 00 00 00 68 5b 4c 00 0a 68 f2 00 00 0a e8 e3 8c ff ff 81 c4 08 00 00 00 68 4c 0d ........h[L..h...............hL.
7e80 00 0a 68 f2 00 00 0a e8 e8 f4 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 03 99 ff ff 81 c4 04 00 ..h...............hL............
7ea0 00 00 68 74 4c 00 0a 68 a6 4c 00 0a 68 40 05 00 0a e8 e5 8e ff ff 81 c4 0c 00 00 00 89 ec 5d c3 ..htL..h.L..h@................].
7ec0 55 89 e5 68 f2 00 00 0a e8 46 86 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 36 86 ff ff 81 c4 04 U..h.....F.........h@....6......
7ee0 00 00 00 68 50 0d 00 0a e8 26 86 ff ff 81 c4 04 00 00 00 68 c8 4c 00 0a 68 f2 00 00 0a e8 58 8c ...hP....&.........h.L..h.....X.
7f00 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 5d f4 ff ff 81 c4 08 00 00 00 68 4c 0d ........hL...h.....].........hL.
7f20 00 0a e8 78 98 ff ff 81 c4 04 00 00 00 68 e7 4c 00 0a 68 1c 4d 00 0a 68 40 05 00 0a e8 5a 8e ff ...x.........h.L..h.M..h@....Z..
7f40 ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 bb 85 ff ff 81 c4 04 00 00 00 68 40 .........].U..h...............h@
7f60 05 00 0a e8 ab 85 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 9b 85 ff ff 81 c4 04 00 00 00 68 47 ..............hP..............hG
7f80 4d 00 0a 68 f2 00 00 0a e8 cd 8b ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 d2 f3 M..h...............hL...h.......
7fa0 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 ed 97 ff ff 81 c4 04 00 00 00 68 66 4d 00 0a 68 9b 4d ........hL..............hfM..h.M
7fc0 00 0a 68 40 05 00 0a e8 cf 8d ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 30 ..h@................].U..h.....0
7fe0 85 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 20 85 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 10 .........h@..............hP.....
8000 85 ff ff 81 c4 04 00 00 00 68 c6 4d 00 0a 68 f2 00 00 0a e8 42 8b ff ff 81 c4 08 00 00 00 68 4c .........h.M..h.....B.........hL
8020 0d 00 0a 68 f2 00 00 0a e8 47 f3 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 62 97 ff ff 81 c4 04 ...h.....G.........hL....b......
8040 00 00 00 68 df 4d 00 0a 68 16 4e 00 0a 68 40 05 00 0a e8 44 8d ff ff 81 c4 0c 00 00 00 89 ec 5d ...h.M..h.N..h@....D...........]
8060 c3 55 89 e5 68 f2 00 00 0a e8 a5 84 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 95 84 ff ff 81 c4 .U..h...............h@..........
8080 04 00 00 00 68 50 0d 00 0a e8 85 84 ff ff 81 c4 04 00 00 00 68 35 4e 00 0a 68 f2 00 00 0a e8 b7 ....hP..............h5N..h......
80a0 8a ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 bc f2 ff ff 81 c4 08 00 00 00 68 4c .........hL...h...............hL
80c0 0d 00 0a e8 d7 96 ff ff 81 c4 04 00 00 00 68 54 4e 00 0a 68 92 4e 00 0a 68 40 05 00 0a e8 b9 8c ..............hTN..h.N..h@......
80e0 ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 1a 84 ff ff 81 c4 04 00 00 00 68 ..........].U..h...............h
8100 40 05 00 0a e8 0a 84 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 fa 83 ff ff 81 c4 04 00 00 00 68 @..............hP..............h
8120 ba 4e 00 0a 68 f2 00 00 0a e8 2c 8a ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a 68 f2 00 00 0a e8 31 .N..h.....,.........hL...h.....1
8140 f2 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 4c 96 ff ff 81 c4 04 00 00 00 68 d9 4e 00 0a 68 17 .........hL....L.........h.N..h.
8160 4f 00 0a 68 40 05 00 0a e8 2e 8c ff ff 81 c4 0c 00 00 00 89 ec 5d c3 55 89 e5 68 f2 00 00 0a e8 O..h@................].U..h.....
8180 8f 83 ff ff 81 c4 04 00 00 00 68 40 05 00 0a e8 7f 83 ff ff 81 c4 04 00 00 00 68 50 0d 00 0a e8 ..........h@..............hP....
81a0 6f 83 ff ff 81 c4 04 00 00 00 68 3f 4f 00 0a 68 f2 00 00 0a e8 a1 89 ff ff 81 c4 08 00 00 00 68 o.........h?O..h...............h
81c0 4c 0d 00 0a 68 f2 00 00 0a e8 a6 f1 ff ff 81 c4 08 00 00 00 68 4c 0d 00 0a e8 c1 95 ff ff 81 c4 L...h...............hL..........
81e0 04 00 00 00 68 5d 4f 00 0a 68 8e 4f 00 0a 68 40 05 00 0a e8 a3 8b ff ff 81 c4 0c 00 00 00 8
# Read a text file of SubX instructions from stdin, and convert it into a list
# of whitespace-separated ascii hex bytes on stdout. Label definitions and
# uses are left untouched.
#
# To run:
#   $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/pack.subx  -o apps/pack
#   $ echo '05/add-to-eax 0x20/imm32'  |./bootstrap run apps/pack
# Expected output:
#   05 20 00 00 00  # 05/add-to-eax 0x20/imm32
# The original instruction gets included as a comment at the end of each
# converted line.
#
# There's zero error-checking. For now we assume the input program is valid.
# We'll continue to rely on the C++ version for error messages.

== code
#   instruction                     effective address                                                   register    displacement    immediate
# . op          subop               mod             rm32          base        index         scale       r32
# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes

Entry:  # run tests if necessary, convert stdin if not
    # . prologue
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp

    # initialize heap
    # . Heap = new-segment(Heap-size)
    # . . push args
    68/push  Heap/imm32
    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
    # . . call
    e8/call  new-segment/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp

    # - if argc > 1 and argv[1] == "test", then return run_tests()
    # if (argc <= 1) goto interactive
    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
    7e/jump-if-<=  $subx-pack-main:interactive/disp8
    # if (!kernel-string-equal?(argv[1], "test")) goto interactive
    # . eax = kernel-string-equal?(argv[1], "test")
    # . . push args
    68/push  "test"/imm32
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  kernel-string-equal?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto interactive
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $subx-pack-main:interactive/disp8
    # run-tests()
    e8/call  run-tests/disp32
    # syscall(exit, *Num-test-failures)
    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
    eb/jump  $subx-pack-main:end/disp8
$subx-pack-main:interactive:
    # - otherwise convert stdin
    # subx-pack(Stdin, Stdout)
    # . . push args
    68/push  Stdout/imm32
    68/push  Stdin/imm32
    # . . call
    e8/call  subx-pack/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x8/imm32         # add to esp
    # syscall(exit, 0)
    bb/copy-to-ebx  0/imm32
$subx-pack-main:end:
    e8/call  syscall_exit/disp32

# - big picture
# We'll operate on each line/instruction in isolation. That way we only need to
# allocate memory for converting a single instruction.
#
# To pack an entire file, convert every segment in it
# To convert a code segment, convert every instruction (line) until the next segment header
# To convert a non-data segment, convert every word until the next segment header
#
# primary state: line
#   stream of 512 bytes; abort if it ever overflows

# conceptual hierarchy within a line:
#   line = words separated by ' ', maybe followed by comment starting with '#'
#   word = datum until '/', then 0 or more metadata separated by '/'
#
# we won't bother saving the internal structure of lines; reparsing should be cheap using three primitives:
#   next-token(stream, delim char) -> slice (start, end pointers)
#   next-token-from-slice(start, end, delim char) -> slice
#   slice-equal?(slice, string)

subx-pack:  # in: (addr buffered-file), out: (addr buffered-file)
    # pseudocode:
    #   var line: (stream byte 512)
    #   var in-code? = false
    #   while true
    #     clear-stream(line)
    #     read-line-buffered(in, line)
    #     if (line->write == 0) break             # end of file
    #     var word-slice = next-word(line)
    #     if slice-empty?(word-slice)             # whitespace
    #       write-stream-data(out, line)
    #     else if (slice-equal?(word-slice, "=="))
    #       word-slice = next-word(line)
    #       in-code? = slice-equal?(word-slice, "code")
    #       write-stream-data(out, line)
    #     else if (in-code?)
    #       rewind-stream(line)
    #       convert-instruction(line, out)
    #     else
    #       rewind-stream(line)
    #       convert-data(line, out)
    #   flush(out)
    #
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    53/push-ebx
    # var line/ecx: (stream byte 512)
    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
    68/push  0x200/imm32/length
    68/push  0/imm32/read
    68/push  0/imm32/write
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # var word-slice/edx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
    # var in-code?/ebx: boolean = false
    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
$subx-pack:loop:
    # clear-stream(line)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # read-line-buffered(in, line)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  read-line-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
$subx-pack:check0:
    # if (line->write == 0) break
    81          7/subop/compare     0/mod/indirect  1/rm32/ecx    .           .             .           .           .               0/imm32           # compare *ecx
    0f 84/jump-if-=  $subx-pack:break/disp32
#?     # dump line {{{
#?     # . write(2/stderr, "LL: ")
#?     # . . push args
#?     68/push  "LL: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, line)
#?     # . . push args
#?     51/push-ecx
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # next-word(line, word-slice)
    # . . push args
    52/push-edx
    51/push-ecx
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
$subx-pack:check1:
    # if (slice-empty?(word-slice)) write-stream-data(out, line)
    # . eax = slice-empty?(word-slice)
    # . . push args
    52/push-edx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) write-stream-data(out, line)
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $subx-pack:pass-through/disp32
$subx-pack:check2:
#?     # dump word-slice {{{
#?     # . write(2/stderr, "AA: ")
#?     # . . push args
#?     68/push  "AA: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . clear-stream($Stderr->buffer)
#?     # . . push args
#?     68/push  $Stderr->buffer/imm32
#?     # . . call
#?     e8/call  clear-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write-slice-buffered(Stderr, word-slice)
#?     # . . push args
#?     52/push-edx
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  write-slice-buffered/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . flush(Stderr)
#?     # . . push args
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  flush/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # if (!slice-equal?(word-slice, "==")) goto next check
    # . eax = slice-equal?(word-slice, "==")
    # . . push args
    68/push  "=="/imm32
    52/push-edx
    # . . call
    e8/call  slice-equal?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto check3
    3d/compare-eax-and  0/imm32/false
    0f 84/jump-if-=  $subx-pack:check3/disp32
    # word-slice = next-word(line)
    # . . push args
    52/push-edx
    51/push-ecx
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # dump segment name {{{
#?     # . write(2/stderr, "AA: ")
#?     # . . push args
#?     68/push  "AA: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . clear-stream($Stderr->buffer)
#?     # . . push args
#?     68/push  $Stderr->buffer/imm32
#?     # . . call
#?     e8/call  clear-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write-slice-buffered(Stderr, word-slice)
#?     # . . push args
#?     52/push-edx
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  write-slice-buffered/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . flush(Stderr)
#?     # . . push args
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  flush/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # in-code? = slice-equal?(word-slice, "code")
    # . . push args
    68/push  "code"/imm32
    52/push-edx
    # . . call
    e8/call  slice-equal?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . . in-code? = eax
    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
    # write-stream-data(out, line)
    eb/jump  $subx-pack:pass-through/disp8
$subx-pack:check3:
    # else rewind-stream(line)
    # . rewind-stream(line)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  rewind-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # if (in-code? != false) convert-instruction(line, out)
    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0/imm32/false     # compare ebx
    74/jump-if-=  $subx-pack:data/disp8
$subx-pack:code:
    # . convert-instruction(line, out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    51/push-ecx
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . loop
    e9/jump  $subx-pack:loop/disp32
$subx-pack:data:
    # else convert-data(line, out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    51/push-ecx
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . loop
    e9/jump  $subx-pack:loop/disp32
$subx-pack:pass-through:
    # write-stream-data(out, line)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-stream-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . loop
    e9/jump  $subx-pack:loop/disp32
$subx-pack:break:
    # flush(out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
$subx-pack:end:
    # . reclaim locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x214/imm32       # add to esp
    # . restore registers
    5b/pop-to-ebx
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-subx-pack-passes-empty-lines-through:
    # if a line is empty, pass it along unchanged
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-input-buffered-file->buffer)
    # . . push args
    68/push  $_test-input-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # write nothing to input
    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-buffered-file/imm32
    # . . call
    e8/call  subx-pack/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that the line just passed through
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "", msg)
    # . . push args
    68/push  "F - test-subx-pack-passes-empty-lines-through"/imm32
    68/push  ""/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-subx-pack-passes-lines-with-just-whitespace-through:
    # if a line is empty, pass it along unchanged
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-input-buffered-file->buffer)
    # . . push args
    68/push  $_test-input-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "    ")
    # . . push args
    68/push  "    "/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-buffered-file/imm32
    # . . call
    e8/call  subx-pack/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that the line just passed through
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "    ", msg)
    # . . push args
    68/push  "F - test-subx-pack-passes-with-just-whitespace-through"/imm32
    68/push  "    "/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-subx-pack-passes-segment-headers-through:
    # if a line starts with '==', pass it along unchanged
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-input-buffered-file->buffer)
    # . . push args
    68/push  $_test-input-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "== abcd 0x1")
    # . . push args
    68/push  "== abcd 0x1"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-buffered-file/imm32
    # . . call
    e8/call  subx-pack/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that the line just passed through
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "== abcd 0x1", msg)
    # . . push args
    68/push  "F - test-subx-pack-passes-segment-headers-through"/imm32
    68/push  "== abcd 0x1"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-subx-pack-in-data-segment:
    # correctly process lines in the data segment
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-input-buffered-file->buffer)
    # . . push args
    68/push  $_test-input-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    #   == code 0x1
    #   == data 0x2
    #   3 4/imm32
    # . write(_test-input-stream, "== code 0x1")
    # . . push args
    68/push  "== code 0x1\n"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . write(_test-input-stream, "== data 0x2\n")
    # . . push args
    68/push  "== data 0x2\n"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . write(_test-input-stream, "3 4/imm32\n")
    # . . push args
    68/push  "3 4/imm32\n"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-buffered-file/imm32
    # . . call
    e8/call  subx-pack/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
#?     # debug print {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "== code 0x1", msg)
    # . . push args
    68/push  "F - test-subx-pack-in-data-segment/0"/imm32
    68/push  "== code 0x1"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "== data 0x2", msg)
    # . . push args
    68/push  "F - test-subx-pack-in-data-segment/1"/imm32
    68/push  "== data 0x2"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "03 04 00 00 00 ", msg)
    # . . push args
    68/push  "F - test-subx-pack-in-data-segment/2"/imm32
    68/push  "03 04 00 00 00 "/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-subx-pack-code-and-data-segments:
    # correctly process lines in both code and data segments
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-input-buffered-file->buffer)
    # . . push args
    68/push  $_test-input-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    #   == code 0x1
    #   e8/call 20/disp32
    #   68/push 0x20/imm8
    #   == data 0x2
    #   3 4/imm32
    # . write(_test-input-stream, "== code 0x1\n")
    # . . push args
    68/push  "== code 0x1\n"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . write(_test-input-stream, "e8/call 20/disp32\n")
    # . . push args
    68/push  "e8/call 20/disp32\n"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . write(_test-input-stream, "68/push 0x20/imm8\n")
    # . . push args
    68/push  "68/push 0x20/imm8\n"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . write(_test-input-stream, "== data 0x2\n")
    # . . push args
    68/push  "== data 0x2\n"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . write(_test-input-stream, "3 4/imm32\n")
    # . . push args
    68/push  "3 4/imm32\n"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-buffered-file/imm32
    # . . call
    e8/call  subx-pack/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    #   == code 0x1
    #   e8 20 00 00 00  # e8/call 20/disp32
    #   68 20  # 68/push 0x20/imm8
    #   == data 0x2
    #   03 04 00 00 00
#?     # debug print {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "== code 0x1", msg)
    # . . push args
    68/push  "F - test-subx-pack-code-and-data-segments/0"/imm32
    68/push  "== code 0x1"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "e8 20 00 00 00  # e8/call 20/disp32", msg)
    # . . push args
    68/push  "F - test-subx-pack-code-and-data-segments/1"/imm32
    68/push  "e8 20 00 00 00  # e8/call 20/disp32"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "68 20  # 68/push 0x20/imm8", msg)
    # . . push args
    68/push  "F - test-subx-pack-code-and-data-segments/2"/imm32
    68/push  "68 20  # 68/push 0x20/imm8"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "== data 0x2", msg)
    # . . push args
    68/push  "F - test-subx-pack-code-and-data-segments/3"/imm32
    68/push  "== data 0x2"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . check-next-stream-line-equal(_test-output-stream, "03 04 00 00 00 ", msg)
    # . . push args
    68/push  "F - test-subx-pack-code-and-data-segments/4"/imm32
    68/push  "03 04 00 00 00 "/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

convert-data:  # line: (addr stream byte), out: (addr buffered-file)
    # pseudocode:
    #   var word-slice: slice
    #   while true
    #     word-slice = next-word(line)
    #     if slice-empty?(word-slice)                 # end of file (maybe including trailing whitespace)
    #       break  # skip emitting some whitespace
    #     if slice-starts-with?(word-slice, "#")      # comment
    #       write-slice-buffered(out, word-slice)
    #       return
    #     if slice-ends-with?(word-slice, ":")        # label
    #       write-stream-data(out, line)
    #       return
    #     if has-metadata?(word-slice, "imm32")
    #       emit(out, word-slice, 4)
    #     # disp32 is not permitted in data segments, and anything else is only a byte long
    #     else
    #       emit(out, word-slice, 1)
    #   write-buffered(out, "\n")
    #
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    # var word-slice/ecx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
#?     # dump line {{{
#?     # . write(2/stderr, "LL: ")
#?     # . . push args
#?     68/push  "LL: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # write-stream(2/stderr, line)
#?     # . . push args
#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
$convert-data:loop:
    # next-word(line, word-slice)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # dump word-slice {{{
#?     # . write(2/stderr, "AA: ")
#?     # . . push args
#?     68/push  "AA: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . clear-stream($Stderr->buffer)
#?     # . . push args
#?     68/push  $Stderr->buffer/imm32
#?     # . . call
#?     e8/call  clear-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write-slice-buffered(Stderr, word-slice)
#?     # . . push args
#?     51/push-ecx
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  write-slice-buffered/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . flush(Stderr)
#?     # . . push args
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  flush/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
$convert-data:check0:
    # if (slice-empty?(word-slice)) break
    # . eax = slice-empty?(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) break
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $convert-data:break/disp32
$convert-data:check-for-comment:
    # if (slice-starts-with?(word-slice, "#"))
    # . var start/edx: (addr byte) = word-slice->start
    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
    # . if (c != '#') goto next check
    3d/compare-eax-and  0x23/imm32/hash
    75/jump-if-!=  $convert-data:check-for-label/disp8
$convert-data:comment:
    # write-slice-buffered(out, word-slice)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-slice-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # return
    0f 85/jump-if-!=  $convert-data:end/disp32
$convert-data:check-for-label:
    # if (slice-ends-with?(word-slice, ":"))
    # . var end/edx: (addr byte) = word-slice->end
    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
    # . var c/eax: byte = *(end-1)
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    1/mod/*+disp8   2/rm32/edx    .           .             .           0/r32/AL    -1/disp8        .                 # copy byte at *ecx to AL
    # . if (c != ':') goto next check
    3d/compare-eax-and  0x3a/imm32/colon
    75/jump-if-!=  $convert-data:check-for-imm32/disp8
$convert-data:label:
    # write-stream-data(out, line)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-stream-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # return
    75/jump-if-!=  $convert-data:end/disp8
$convert-data:check-for-imm32:
    # if (has-metadata?(word-slice, "imm32"))
    # . eax = has-metadata?(ecx, "imm32")
    # . . push args
    68/push  "imm32"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) process as a single byte
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $convert-data:single-byte/disp8
$convert-data:imm32:
    # emit(out, word-slice, 4)
    # . . push args
    68/push  4/imm32
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    e9/jump  $convert-data:loop/disp32
$convert-data:single-byte:
    # emit(out, word-slice, 1)
    # . . push args
    68/push  1/imm32
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    e9/jump  $convert-data:loop/disp32
$convert-data:break:
    # write-buffered(out, "\n")
    # . . push args
    68/push  Newline/imm32
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
$convert-data:end:
    # . reclaim locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . restore registers
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-passes-comments-through:
    # if a line starts with '#', pass it along unchanged
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "# abcd")
    # . . push args
    68/push  "# abcd"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that the line just passed through
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "# abcd", msg)
    # . . push args
    68/push  "F - test-convert-data-passes-comments-through"/imm32
    68/push  "# abcd"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-passes-labels-through:
    # if the first word ends with ':', pass along the entire line unchanged
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "ab: # cd")
    # . . push args
    68/push  "ab: # cd"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that the line just passed through
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "ab: # cd", msg)
    # . . push args
    68/push  "F - test-convert-data-passes-labels-through"/imm32
    68/push  "ab: # cd"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-passes-names-through:
    # If a word is a valid name, just emit it unchanged.
    # Later phases will deal with it.
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "abcd/imm32")
    # . . push args
    68/push  "abcd/imm32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that the line just passed through
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "abcd/imm32 \n", msg)
    # . . push args
    68/push  "F - test-convert-data-passes-names-through"/imm32
    68/push  "abcd/imm32 \n"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-handles-imm32:
    # If a word has the /imm32 metadata, emit it in 4 bytes.
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "30/imm32")
    # . . push args
    68/push  "30/imm32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that 4 bytes were written
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "30 00 00 00 \n", msg)
    # . . push args
    68/push  "F - test-convert-data-handles-imm32"/imm32
    68/push  "30 00 00 00 \n"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-handles-single-byte:
    # Any metadata but /imm32 will emit a single byte.
    # Data segments can't have /disp32, and SubX doesn't support 16-bit operands.
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "30/imm16")
    # . . push args
    68/push  "30/imm16"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that a single byte was written (imm16 is not a valid operand type)
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "30 \n", msg)
    # . . push args
    68/push  "F - test-convert-data-handles-single-byte"/imm32
    68/push  "30 \n"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-multiple-bytes:
    # Multiple single-byte words in input stream get processed one by one.
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "1 2")
    # . . push args
    68/push  "1 2"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "01 02 \n", msg)
    # . . push args
    68/push  "F - test-convert-data-multiple-bytes"/imm32
    68/push  "01 02 \n"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-byte-then-name:
    # Single-byte word followed by valid name get processed one by one.
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "30 abcd/o")
    # . . push args
    68/push  "30 abcd/o"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "30 abcd/o \n", msg)
    # . . push args
    68/push  "F - test-convert-data-byte-then-name"/imm32
    68/push  "30 abcd/o \n"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-multiple-words:
    # Multiple words in input stream get processed one by one.
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "30 abcd/o 42e1/imm32")
    # . . push args
    68/push  "30 abcd/o 42e1/imm32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "30 abcd/o 42 e1 00 00 \n", msg)
    # . . push args
    68/push  "F - test-convert-data-multiple-words"/imm32
    68/push  "30 abcd/o e1 42 00 00 \n"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-data-trailing-comment:
    # Trailing comments in data segment get appropriately ignored.
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "30/imm32 # comment")
    # . . push args
    68/push  "30/imm32 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-data(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "30 00 00 00 # comment", msg)
    # . . push args
    68/push  "F - test-convert-data-trailing-comment"/imm32
    68/push  "30 00 00 00 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

# pack an instruction, following the C++ version
#
# zero error handling at the moment (continuing to rely on the C++ version for that):
#   missing fields are always 0-filled
#   bytes never mentioned are silently dropped; if you don't provide /mod, /rm32 or /r32 you don't get a 0 ModR/M byte. You get *no* ModR/M byte.
#   may pick up any of duplicate operands in an instruction
#   silently drop extraneous operands
#   unceremoniously abort on non-numeric operands except disp or imm
#   opcodes must be lowercase and zero padded
#   opcodes with misleading operand metadata may get duplicated as operands as well. don't rely on this.
convert-instruction:  # line: (addr stream byte), out: (addr buffered-file)
    # pseudocode:
    #   # some early exits
    #   var word-slice = next-word(line)
    #   if slice-empty?(word-slice)
    #     write-stream-data(out, line)
    #     return
    #   if slice-starts-with?(word-slice, "#")
    #     write-stream-data(out, line)
    #     return
    #   if slice-ends-with?(word-slice, ":")
    #     write-stream-data(out, line)
    #     return
    #   # really convert
    #   emit-opcodes(line, out)
    #   emit-modrm(line, out)
    #   emit-sib(line, out)
    #   emit-disp(line, out)
    #   emit-imm(line, out)
    #   emit-line-in-comment(line, out)
    #
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    # var word-slice/ecx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # next-word(line, word-slice)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
$convert-instruction:check0:
    # if (slice-empty?(word-slice)) break
    # . eax = slice-empty?(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) pass through
    3d/compare-eax-and  0/imm32/false
    75/jump-if-!=  $convert-instruction:pass-through/disp8
$convert-instruction:check1:
    # if (slice-starts-with?(word-slice, "#")) write-stream-data(out, line)
    # . var start/edx: (addr byte) = word-slice->start
    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
    # . if (c == '#') pass through
    3d/compare-eax-and  0x23/imm32/hash
    74/jump-if-=  $convert-instruction:pass-through/disp8
$convert-instruction:check2:
    # if (slice-ends-with?(word-slice, ":")) write-stream-data(out, line)
    # . var end/edx: (addr byte) = word-slice->end
    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
    # . var c/eax: byte = *(end-1)
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    1/mod/*+disp8   2/rm32/edx    .           .             .           0/r32/AL    -1/disp8        .                 # copy byte at *ecx to AL
    # . if (c == ':') pass through
    3d/compare-eax-and  0x3a/imm32/colon
    75/jump-if-!=  $convert-instruction:really-convert/disp8
$convert-instruction:pass-through:
    # write-stream-data(out, line)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-stream-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # return
    eb/jump  $convert-instruction:end/disp8
$convert-instruction:really-convert:
    # emit-opcodes(line, out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  emit-opcodes/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # emit-modrm(line, out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  emit-modrm/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # emit-sib(line, out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  emit-sib/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # emit-disp(line, out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  emit-disp/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # emit-imm(line, out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  emit-imm/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # emit-line-in-comment(line, out)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  emit-line-in-comment/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
$convert-instruction:end:
    # . restore locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . restore registers
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

emit-opcodes:  # line: (addr stream byte), out: (addr buffered-file)
    # opcodes occupy 1-3 bytes:
    #   xx
    #   0f xx
    #   f2 xx
    #   f3 xx
    #   f2 0f xx
    #   f3 0f xx
    #
    # pseudocode:
    #   rewind-stream(line)
    #
    #   var op1 = next-word(line)
    #   if (slice-empty?(op1) || slice-starts-with?(op1, "#")) return
    #   op1 = next-token-from-slice(op1->start, op1->end, "/")
    #   write-slice-buffered(out, op1)
    #   if !slice-equal?(op1, "0f") && !slice-equal?(op1, "f2") && !slice-equal?(op1, "f3")
    #     return
    #
    #   var op2 = next-word(line)
    #   if (slice-empty?(op2) || slice-starts-with?(op2, "#")) return
    #   op2 = next-token-from-slice(op2->start, op2->end, "/")
    #   write-slice-buffered(out, op2)
    #   if slice-equal?(op1, "0f")
    #     return
    #   if !slice-equal?(op2, "0f")
    #     return
    #
    #   var op3 = next-word(line)
    #   if (slice-empty?(op3) || slice-starts-with?(op3, "#")) return
    #   op3 = next-token-from-slice(op3->start, op3->end, "/")
    #   write-slice-buffered(out, op3)
    #
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    53/push-ebx
    # var op1/ecx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # var op2/edx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
    # rewind-stream(line)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  rewind-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
$emit-opcodes:op1:
    # next-word(line, op1)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # if (slice-empty?(op1)) return
    # . eax = slice-empty?(op1)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) return
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $emit-opcodes:end/disp32
    # if (slice-starts-with?(op1, "#")) return
    # . var start/ebx: (addr byte) = op1->start
    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # copy *ecx to ebx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at *ebx to AL
    # . if (c == '#') return
    3d/compare-eax-and  0x23/imm32/hash
    0f 84/jump-if-=  $emit-opcodes:end/disp32
    # op1 = next-token-from-slice(op1->start, op1->end, '/')
    # . . push args
    51/push-ecx
    68/push  0x2f/imm32/slash
    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
    # . . call
    e8/call  next-token-from-slice/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
    # write-slice-buffered(out, op1)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-slice-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # write-buffered(out, " ")
    # . . push args
    68/push  Space/imm32
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # if (slice-equal?(op1, "0f")) goto op2
    # . eax = slice-equal?(op1, "0f")
    # . . push args
    68/push  "0f"/imm32
    51/push-ecx
    # . . call
    e8/call  slice-equal?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax != false) goto op2
    3d/compare-eax-and  0/imm32/false
    75/jump-if-!=  $emit-opcodes:op2/disp8
    # if (slice-equal?(op1, "f2")) goto op2
    # . eax = slice-equal?(op1, "f2")
    # . . push args
    68/push  "f2"/imm32
    51/push-ecx
    # . . call
    e8/call  slice-equal?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax != false) goto op2
    3d/compare-eax-and  0/imm32/false
    75/jump-if-!=  $emit-opcodes:op2/disp8
    # if (slice-equal?(op1, "f3")) goto op2
    # . eax = slice-equal?(op1, "f3")
    # . . push args
    68/push  "f3"/imm32
    51/push-ecx
    # . . call
    e8/call  slice-equal?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax != false) goto op2
    3d/compare-eax-and  0/imm32/false
    75/jump-if-!=  $emit-opcodes:op2/disp8
    # otherwise return
    e9/jump  $emit-opcodes:end/disp32
$emit-opcodes:op2:
    # next-word(line, op2)
    # . . push args
    52/push-edx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # if (slice-empty?(op2)) return
    # . eax = slice-empty?(op2)
    # . . push args
    52/push-edx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) return
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $emit-opcodes:end/disp32
    # if (slice-starts-with?(op2, "#")) return
    # . var start/ebx: (addr byte) = op2->start
    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           3/r32/ebx   .               .                 # copy *edx to ebx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at *ebx to AL
    # . if (c == '#') return
    3d/compare-eax-and  0x23/imm32/hash
    0f 84/jump-if-=  $emit-opcodes:end/disp32
    # op2 = next-token-from-slice(op2->start, op2->end, '/')
    # . . push args
    52/push-edx
    68/push  0x2f/imm32/slash
    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
    # . . call
    e8/call  next-token-from-slice/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
    # write-slice-buffered(out, op2)
    # . . push args
    52/push-edx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-slice-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # write-buffered(out, " ")
    # . . push args
    68/push  Space/imm32
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # if (slice-equal?(op1, "0f")) return
    # . eax = slice-equal?(op1, "0f")
    # . . push args
    68/push  "0f"/imm32
    51/push-ecx
    # . . call
    e8/call  slice-equal?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax != false) return
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $emit-opcodes:end/disp32
    # if (!slice-equal?(op2, "0f")) return
    # . eax = slice-equal?(op2, "0f")
    # . . push args
    68/push  "0f"/imm32
    52/push-edx
    # . . call
    e8/call  slice-equal?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) return
    3d/compare-eax-and  0/imm32/false
    0f 84/jump-if-=  $emit-opcodes:end/disp32
$emit-opcodes:op3:
    # next-word(line, op3)  # reuse op2/edx
    # . . push args
    52/push-edx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # if (slice-empty?(op3)) return
    # . eax = slice-empty?(op3)
    # . . push args
    52/push-edx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) return
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $emit-opcodes:end/disp32
    # if (slice-starts-with?(op3, "#")) return
    # . var start/ebx: (addr byte) = op2->start
    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           3/r32/ebx   .               .                 # copy *edx to ebx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at *ebx to AL
    # . if (c == '#') return
    3d/compare-eax-and  0x23/imm32/hash
    0f 84/jump-if-=  $emit-opcodes:end/disp32
    # op3 = next-token-from-slice(op3->start, op3->end, '/')
    # . . push args
    52/push-edx
    68/push  0x2f/imm32/slash
    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
    # . . call
    e8/call  next-token-from-slice/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
    # write-slice-buffered(out, op3)
    # . . push args
    52/push-edx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-slice-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # write-buffered(out, " ")
    # . . push args
    68/push  Space/imm32
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
$emit-opcodes:end:
    # . restore locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
    # . restore registers
    5b/pop-to-ebx
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

emit-modrm:  # line: (addr stream byte), out: (addr buffered-file)
    # pseudocode:
    #   rewind-stream(line)
    #   var has-modrm? = false, mod = 0, rm32 = 0, r32 = 0
    #   var word-slice: slice
    #   while true
    #     word-slice = next-word(line)
    #     if (slice-empty?(word-slice)) break
    #     if (slice-starts-with?(word-slice, "#")) break
    #     if (has-metadata?(word-slice, "mod"))
    #       mod = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
    #       has-modrm? = true
    #     else if has-metadata?(word-slice, "rm32") or has-metadata?(word-slice, "xm32")
    #       rm32 = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
    #       has-modrm? = true
    #     else if has-metadata?(word-slice, "r32") or has-metadata?(word-slice, "x32") or has-metadata?(word-slice, "subop")
    #       r32 = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
    #       has-modrm? = true
    #   if has-modrm?
    #     var modrm = mod & 0b11
    #     modrm <<= 3
    #     modrm |= r32 & 0b111
    #     modrm <<= 3
    #     modrm |= rm32 & 0b111
    #     emit-hex(out, modrm, 1)
    #
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    53/push-ebx
    56/push-esi
    57/push-edi
    # var word-slice/ecx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # var has-modrm?/edx: boolean = false
    31/xor                          3/mod/direct    2/rm32/edx    .           .             .           2/r32/edx   .               .                 # clear edx
    # var mod/ebx: byte = 0
    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
    # var rm32/esi: byte = 0
    31/xor                          3/mod/direct    6/rm32/esi    .           .             .           6/r32/esi   .               .                 # clear esi
    # var r32/edi: byte = 0
    31/xor                          3/mod/direct    7/rm32/edi    .           .             .           7/r32/edi   .               .                 # clear edi
    # rewind-stream(line)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  rewind-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump line {{{
#?     # . write(2/stderr, "LL: ")
#?     # . . push args
#?     68/push  "LL: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, line)
#?     # . . push args
#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . rewind-stream(line)
#?     # . . push args
#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
#?     # . . call
#?     e8/call  rewind-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # }}}
$emit-modrm:loop:
    # next-word(line, word-slice)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # dump word-slice {{{
#?     # . write(2/stderr, "AA: ")
#?     # . . push args
#?     68/push  "AA: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . clear-stream($Stderr->buffer)
#?     # . . push args
#?     68/push  $Stderr->buffer/imm32
#?     # . . call
#?     e8/call  clear-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write-slice-buffered(Stderr, word-slice)
#?     # . . push args
#?     51/push-ecx
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  write-slice-buffered/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . flush(Stderr)
#?     # . . push args
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  flush/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
$emit-modrm:check0:
    # if (slice-empty?(word-slice)) break
    # . eax = slice-empty?(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) pass through
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $emit-modrm:break/disp32
$emit-modrm:check1:
    # if (slice-starts-with?(word-slice, "#")) break
    # . spill edx
    52/push-edx
    # . var start/edx: (addr byte) = word-slice->start
    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
    # . restore edx
    5a/pop-to-edx
    # . if (c == '#') pass through
    3d/compare-eax-and  0x23/imm32/hash
    0f 84/jump-if-=  $emit-modrm:break/disp32
$emit-modrm:check-for-mod:
    # if (has-metadata?(word-slice, "mod"))
    # . eax = has-metadata?(ecx, "mod")
    # . . push args
    68/push  "mod"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-modrm:check-for-rm32/disp8
$emit-modrm:mod:
    # mod = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . mod = eax
    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
    # has-modrm? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-modrm:loop/disp32
$emit-modrm:check-for-rm32:
    # if (has-metadata?(word-slice, "rm32"))
    # . eax = has-metadata?(ecx, "rm32")
    # . . push args
    68/push  "rm32"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-modrm:check-for-xm32/disp8
$emit-modrm:rm32:
    # rm32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . rm32 = eax
    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
    # has-modrm? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-modrm:loop/disp32
$emit-modrm:check-for-xm32:
    # if (has-metadata?(word-slice, "xm32"))
    # . eax = has-metadata?(ecx, "xm32")
    # . . push args
    68/push  "xm32"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-modrm:check-for-r32/disp8
$emit-modrm:xm32:
    # rm32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . rm32 = eax
    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
    # has-modrm? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-modrm:loop/disp32
$emit-modrm:check-for-r32:
    # if (has-metadata?(word-slice, "r32"))
    # . eax = has-metadata?(ecx, "r32")
    # . . push args
    68/push  "r32"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-modrm:check-for-x32/disp8
$emit-modrm:r32:
    # r32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . r32 = eax
    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
    # has-modrm? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-modrm:loop/disp32
$emit-modrm:check-for-x32:
    # if (has-metadata?(word-slice, "x32"))
    # . eax = has-metadata?(ecx, "x32")
    # . . push args
    68/push  "x32"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-modrm:check-for-subop/disp8
$emit-modrm:x32:
    # r32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . r32 = eax
    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
    # has-modrm? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-modrm:loop/disp32
$emit-modrm:check-for-subop:
    # if (has-metadata?(word-slice, "subop"))
    # . eax = has-metadata?(ecx, "subop")
    # . . push args
    68/push  "subop"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) loop
    3d/compare-eax-and  0/imm32/false
    0f 84/jump-if-=  $emit-modrm:loop/disp32
$emit-modrm:subop:
    # r32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . r32 = eax
    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
    # has-modrm? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-modrm:loop/disp32
$emit-modrm:break:
    # if (!has-modrm?) return
    81          7/subop/compare     3/mod/direct    2/rm32/edx    .           .             .           .           .               0/imm32/false     # compare edx
    74/jump-if-=  $emit-modrm:end/disp8
$emit-modrm:calculate:
    # var modrm/ebx: byte = mod & 0b11
    81          4/subop/and         3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm32/0b11      # bitwise and of ebx
    # modrm <<= 3
    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm8            # shift ebx left by 3 bits
    # modrm |= r32 & 0b111
    81          4/subop/and         3/mod/direct    7/rm32/edi    .           .             .           .           .               7/imm32/0b111     # bitwise and of edi
    09/or                           3/mod/direct    3/rm32/ebx    .           .             .           7/r32/edi   .               .                 # ebx = bitwise OR with edi
    # modrm <<= 3
    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm8            # shift ebx left by 3 bits
    # modrm |= rm32 & 0b111
    81          4/subop/and         3/mod/direct    6/rm32/esi    .           .             .           .           .               7/imm32/0b111     # bitwise and of esi
    09/or                           3/mod/direct    3/rm32/ebx    .           .             .           6/r32/esi   .               .                 # ebx = bitwise OR with esi
$emit-modrm:emit:
    # emit-hex(out, modrm, 1)
    # . . push args
    68/push  1/imm32
    53/push-ebx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit-hex/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
$emit-modrm:end:
    # . restore locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . restore registers
    5f/pop-to-edi
    5e/pop-to-esi
    5b/pop-to-ebx
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

emit-sib:  # line: (addr stream byte), out: (addr buffered-file)
    # pseudocode:
    #   var has-sib? = false, base = 0, index = 0, scale = 0
    #   var word-slice: slice
    #   while true
    #     word-slice = next-word(line)
    #     if (slice-empty?(word-slice)) break
    #     if (slice-starts-with?(word-slice, "#")) break
    #     if (has-metadata?(word-slice, "base")
    #       base = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
    #       has-sib? = true
    #     else if (has-metadata?(word-slice, "index")
    #       index = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
    #       has-sib? = true
    #     else if (has-metadata?(word-slice, "scale")
    #       scale = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
    #       has-sib? = true
    #   if has-sib?
    #     var sib = scale & 0b11
    #     sib <<= 3
    #     sib |= index & 0b111
    #     sib <<= 3
    #     sib |= base & 0b111
    #     emit-hex(out, sib, 1)
    #
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    53/push-ebx
    56/push-esi
    57/push-edi
    # var word-slice/ecx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # var has-sib?/edx: boolean = false
    31/xor                          3/mod/direct    2/rm32/edx    .           .             .           2/r32/edx   .               .                 # clear edx
    # var scale/ebx: byte = 0
    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
    # var base/esi: byte = 0
    31/xor                          3/mod/direct    6/rm32/esi    .           .             .           6/r32/esi   .               .                 # clear esi
    # var index/edi: byte = 0
    31/xor                          3/mod/direct    7/rm32/edi    .           .             .           7/r32/edi   .               .                 # clear edi
    # rewind-stream(line)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  rewind-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
$emit-sib:loop:
#?     # dump line {{{
#?     # . write(2/stderr, "LL: ")
#?     # . . push args
#?     68/push  "LL: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, line)
#?     # . . push args
#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # next-word(line, word-slice)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # dump word-slice {{{
#?     # . write(2/stderr, "AA: ")
#?     # . . push args
#?     68/push  "AA: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . clear-stream($Stderr->buffer)
#?     # . . push args
#?     68/push  $Stderr->buffer/imm32
#?     # . . call
#?     e8/call  clear-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write-slice-buffered(Stderr, word-slice)
#?     # . . push args
#?     51/push-ecx
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  write-slice-buffered/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . flush(Stderr)
#?     # . . push args
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  flush/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
$emit-sib:check0:
    # if (slice-empty?(word-slice)) break
    # . eax = slice-empty?(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) pass through
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $emit-sib:break/disp32
$emit-sib:check1:
    # if (slice-starts-with?(word-slice, "#")) break
    # . spill edx
    52/push-edx
    # . var start/edx: (addr byte) = word-slice->start
    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
    # . restore edx
    5a/pop-to-edx
    # . if (c == '#') pass through
    3d/compare-eax-and  0x23/imm32/hash
    0f 84/jump-if-=  $emit-sib:break/disp32
$emit-sib:check-for-scale:
    # if (has-metadata?(word-slice, "scale"))
    # . eax = has-metadata?(ecx, "scale")
    # . . push args
    68/push  "scale"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-sib:check-for-base/disp8
$emit-sib:scale:
    # scale = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . scale = eax
    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
    # has-sib? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-sib:loop/disp32
$emit-sib:check-for-base:
    # if (has-metadata?(word-slice, "base"))
    # . eax = has-metadata?(ecx, "base")
    # . . push args
    68/push  "base"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-sib:check-for-index/disp8
$emit-sib:base:
    # base = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . base = eax
    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
    # has-sib? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-sib:loop/disp32
$emit-sib:check-for-index:
    # if (has-metadata?(word-slice, "index"))
    # . eax = has-metadata?(ecx, "index")
    # . . push args
    68/push  "index"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) loop
    3d/compare-eax-and  0/imm32/false
    0f 84/jump-if-=  $emit-sib:loop/disp32
$emit-sib:index:
    # index = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
    # . eax = parse-datum-of-word(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-datum-of-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . index = eax
    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
    # has-sib? = true
    ba/copy-to-edx  1/imm32/true
    # continue
    e9/jump  $emit-sib:loop/disp32
$emit-sib:break:
    # if (!has-sib?) return
    81          7/subop/compare     3/mod/direct    2/rm32/edx    .           .             .           .           .               0/imm32/false     # compare edx
    74/jump-if-=  $emit-sib:end/disp8
$emit-sib:calculate:
    # var sib/ebx: byte = scale & 0b11
    81          4/subop/and         3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm32/0b11      # bitwise and of ebx
    # sib <<= 2
    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm8            # shift ebx left by 3 bits
    # sib |= index & 0b111
    81          4/subop/and         3/mod/direct    7/rm32/edi    .           .             .           .           .               7/imm32/0b111     # bitwise and of edi
    09/or                           3/mod/direct    3/rm32/ebx    .           .             .           7/r32/edi   .               .                 # ebx = bitwise OR with edi
    # sib <<= 3
    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm8            # shift ebx left by 3 bits
    # sib |= base & 0b111
    81          4/subop/and         3/mod/direct    6/rm32/esi    .           .             .           .           .               7/imm32/0b111     # bitwise and of esi
    09/or                           3/mod/direct    3/rm32/ebx    .           .             .           6/r32/esi   .               .                 # ebx = bitwise OR with esi
$emit-sib:emit:
    # emit-hex(out, sib, 1)
    # . . push args
    68/push  1/imm32
    53/push-ebx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit-hex/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
$emit-sib:end:
    # . restore locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . restore registers
    5f/pop-to-edi
    5e/pop-to-esi
    5b/pop-to-ebx
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

emit-disp:  # line: (addr stream byte), out: (addr buffered-file)
    # pseudocode:
    #   rewind-stream(line)
    #   var word-slice: slice
    #   while true
    #     word-slice = next-word(line)
    #     if (slice-empty?(word-slice)) break
    #     if (slice-starts-with?(word-slice, "#")) break
    #     if has-metadata?(word-slice, "disp32")
    #       emit(out, word-slice, 4)
    #       break
    #     if has-metadata?(word-slice, "disp16")
    #       emit(out, word-slice, 2)
    #       break
    #     if has-metadata?(word-slice, "disp8")
    #       emit(out, word-slice, 1)
    #       break
    #
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    # var word-slice/ecx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # rewind-stream(line)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  rewind-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump line {{{
#?     # . write(2/stderr, "LL: ")
#?     # . . push args
#?     68/push  "LL: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, line)
#?     # . . push args
#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
$emit-disp:loop:
    # next-word(line, word-slice)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # dump word-slice {{{
#?     # . write(2/stderr, "AA: ")
#?     # . . push args
#?     68/push  "AA: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . clear-stream($Stderr->buffer)
#?     # . . push args
#?     68/push  $Stderr->buffer/imm32
#?     # . . call
#?     e8/call  clear-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write-slice-buffered(Stderr, word-slice)
#?     # . . push args
#?     51/push-ecx
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  write-slice-buffered/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . flush(Stderr)
#?     # . . push args
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  flush/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
$emit-disp:check0:
    # if (slice-empty?(word-slice)) break
    # . eax = slice-empty?(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) pass through
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $emit-disp:break/disp32
$emit-disp:check1:
    # if (slice-starts-with?(word-slice, "#")) break
    # . var start/edx: (addr byte) = word-slice->start
    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
    # . if (c == '#') break
    3d/compare-eax-and  0x23/imm32/hash
    0f 84/jump-if-=  $emit-disp:break/disp32
$emit-disp:check-for-disp32:
    # if (has-metadata?(word-slice, "disp32"))
    # . eax = has-metadata?(ecx, "disp32")
    # . . push args
    68/push  "disp32"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-disp:check-for-disp16/disp8
$emit-disp:disp32:
    # emit(out, word-slice, 4)
    # . . push args
    68/push  4/imm32
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # break
    e9/jump  $emit-disp:break/disp32
$emit-disp:check-for-disp16:
    # else if (has-metadata?(word-slice, "disp16"))
    # . eax = has-metadata?(ecx, "disp16")
    # . . push args
    68/push  "disp16"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-disp:check-for-disp8/disp8
$emit-disp:disp16:
    # emit(out, word-slice, 2)
    # . . push args
    68/push  2/imm32
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # break
    e9/jump  $emit-disp:break/disp32
$emit-disp:check-for-disp8:
    # if (has-metadata?(word-slice, "disp8"))
    # . eax = has-metadata?(ecx, "disp8")
    # . . push args
    68/push  "disp8"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) loop
    3d/compare-eax-and  0/imm32/false
    0f 84/jump-if-=  $emit-disp:loop/disp32
$emit-disp:disp8:
    # emit(out, word-slice, 1)
    # . . push args
    68/push  1/imm32
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # break
$emit-disp:break:
    # . restore locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . restore registers
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

emit-imm:  # line: (addr stream byte), out: (addr buffered-file)
    # pseudocode:
    #   rewind-stream(line)
    #   var word-slice: slice
    #   while true
    #     word-slice = next-word(line)
    #     if (slice-empty?(word-slice)) break
    #     if (slice-starts-with?(word-slice, "#")) break
    #     if has-metadata?(word-slice, "imm32")
    #       emit(out, word-slice, 4)
    #       break
    #     if has-metadata?(word-slice, "imm16")
    #       emit(out, word-slice, 2)
    #       break
    #     if has-metadata?(word-slice, "imm8")
    #       emit(out, word-slice, 1)
    #       break
    #
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    # var word-slice/ecx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # rewind-stream(line)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  rewind-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump line {{{
#?     # . write(2/stderr, "LL: ")
#?     # . . push args
#?     68/push  "LL: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, line)
#?     # . . push args
#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
$emit-imm:loop:
    # next-word(line, word-slice)
    # . . push args
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    # . . call
    e8/call  next-word/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # dump word-slice {{{
#?     # . write(2/stderr, "AA: ")
#?     # . . push args
#?     68/push  "AA: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . clear-stream($Stderr->buffer)
#?     # . . push args
#?     68/push  $Stderr->buffer/imm32
#?     # . . call
#?     e8/call  clear-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write-slice-buffered(Stderr, word-slice)
#?     # . . push args
#?     51/push-ecx
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  write-slice-buffered/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . flush(Stderr)
#?     # . . push args
#?     68/push  Stderr/imm32
#?     # . . call
#?     e8/call  flush/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
$emit-imm:check0:
    # if (slice-empty?(word-slice)) break
    # . eax = slice-empty?(word-slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  slice-empty?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . if (eax != false) pass through
    3d/compare-eax-and  0/imm32/false
    0f 85/jump-if-!=  $emit-imm:break/disp32
$emit-imm:check1:
    # if (slice-starts-with?(word-slice, "#")) break
    # . var start/edx: (addr byte) = slice->start
    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
    # . var c/eax: byte = *start
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
    # . if (c == '#') break
    3d/compare-eax-and  0x23/imm32/hash
    0f 84/jump-if-=  $emit-imm:break/disp32
$emit-imm:check-for-imm32:
    # if (has-metadata?(word-slice, "imm32"))
    # . eax = has-metadata?(ecx, "imm32")
    # . . push args
    68/push  "imm32"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-imm:check-for-imm16/disp8
$emit-imm:imm32:
    # emit(out, word-slice, 4)
    # . . push args
    68/push  4/imm32
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # break
    e9/jump  $emit-imm:break/disp32
$emit-imm:check-for-imm16:
    # if (has-metadata?(word-slice, "imm16"))
    # . eax = has-metadata?(ecx, "imm16")
    # . . push args
    68/push  "imm16"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) goto next check
    3d/compare-eax-and  0/imm32/false
    74/jump-if-=  $emit-imm:check-for-imm8/disp8
$emit-imm:imm16:
    # emit(out, word-slice, 2)
    # . . push args
    68/push  2/imm32
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # break
    e9/jump  $emit-imm:break/disp32
$emit-imm:check-for-imm8:
    # if (has-metadata?(word-slice, "imm8"))
    # . eax = has-metadata?(ecx, "imm8")
    # . . push args
    68/push  "imm8"/imm32
    51/push-ecx
    # . . call
    e8/call  has-metadata?/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . if (eax == false) loop
    3d/compare-eax-and  0/imm32/false
    0f 84/jump-if-=  $emit-imm:loop/disp32
$emit-imm:imm8:
    # emit(out, word-slice, 1)
    # . . push args
    68/push  1/imm32
    51/push-ecx
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  emit/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # break
$emit-imm:break:
    # . restore locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . restore registers
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

emit-line-in-comment:  # line: (addr stream byte), out: (addr buffered-file)
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # write-buffered(out, " # ")
    # . . push args
    68/push  " # "/imm32
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-buffered/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # write-stream-data(out, line)
    # . . push args
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
    # . . call
    e8/call  write-stream-data/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
$emit-line-in-comment:end:
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-passes-comments-through:
    # if a line starts with '#', pass it along unchanged
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "# abcd")
    # . . push args
    68/push  "# abcd"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that the line just passed through
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "# abcd", msg)
    # . . push args
    68/push  "F - test-convert-instruction-passes-comments-through"/imm32
    68/push  "# abcd"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-passes-labels-through:
    # if the first word ends with ':', pass along the entire line unchanged
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "ab: # cd")
    # . . push args
    68/push  "ab: # cd"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check that the line just passed through
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . check-stream-equal(_test-output-stream, "ab: # cd", msg)
    # . . push args
    68/push  "F - test-convert-instruction-passes-labels-through"/imm32
    68/push  "ab: # cd"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-single-opcode:
    # if the instruction consists of a single opcode, strip its metadata and pass it along
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "ab/cd # comment")
    # . . push args
    68/push  "ab/cd # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "ab  # ab/cd # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-single-opcode"/imm32
    68/push  "ab  # ab/cd # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-0f-opcode:
    # if the instruction starts with 0f opcode, include a second opcode
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "0f/m1 ab/m2 # comment")
    # . . push args
    68/push  "0f/m1 ab/m2 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "0f ab  # 0f/m1 ab/m2 # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-0f-opcode"/imm32
    68/push  "0f ab  # 0f/m1 ab/m2 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-f2-opcode:
    # if the instruction starts with f2 opcode, include a second opcode
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "f2/m1 ab/m2 # comment")
    # . . push args
    68/push  "f2/m1 ab/m2 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "f2 ab  # f2/m1 ab/m2 # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-f2-opcode"/imm32
    68/push  "f2 ab  # f2/m1 ab/m2 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-f3-opcode:
    # if the instruction starts with f3 opcode, include a second opcode
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "f3/m1 ab/m2 # comment")
    # . . push args
    68/push  "f3/m1 ab/m2 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "f3 ab  # f3/m1 ab/m2 # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-f3-opcode"/imm32
    68/push  "f3 ab  # f3/m1 ab/m2 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-f2-0f-opcode:
    # if the instruction starts with f2 0f opcode, include a second opcode
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "f2/m1 0f/m2 ab/m3 # comment")
    # . . push args
    68/push  "f2/m1 0f/m2 ab/m3 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "f2 0f ab  # f2/m1 0f/m2 ab/m3 # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-f2-0f-opcode"/imm32
    68/push  "f2 0f ab  # f2/m1 0f/m2 ab/m3 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-f3-0f-opcode:
    # if the instruction starts with f3 0f opcode, include a second opcode
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "f3/m1 0f/m2 ab/m3 # comment")
    # . . push args
    68/push  "f3/m1 0f/m2 ab/m3 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "f3 0f ab  # f3/m1 0f/m2 ab/m3 # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-f3-0f-opcode"/imm32
    68/push  "f3 0f ab  # f3/m1 0f/m2 ab/m3 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-unused-opcodes:
    # if the instruction doesn't start with f2, f3 or 0f, don't include other opcodes
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "ab/m1 cd/m2 # comment")
    # . . push args
    68/push  "ab/m1 cd/m2 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "ab  # f3/m1 0f/m2 ab/m3 # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-unused-opcodes"/imm32
    68/push  "ab  # ab/m1 cd/m2 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-unused-second-opcodes:
    # if the second opcode isn't 0f, don't include further opcodes
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "f2/m1 ab/m2 cd/m3 # comment")
    # . . push args
    68/push  "f2/m1 ab/m2 cd/m3 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "f2 ab  # f2/m1 ab/m2 cd/m3 # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-unused-second-opcodes"/imm32
    68/push  "f2 ab  # f2/m1 ab/m2 cd/m3 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-unused-second-opcodes-2:
    # if the second opcode isn't 0f, don't include further opcodes
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "f3/m1 ab/m2 cd/m3 # comment")
    # . . push args
    68/push  "f3/m1 ab/m2 cd/m3 # comment"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "f3 ab  # f3/m1 ab/m2 cd/m3 # comment", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-unused-second-opcodes"/imm32
    68/push  "f3 ab  # f3/m1 ab/m2 cd/m3 # comment"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-modrm-byte:
    # pack mod, rm32 and r32 operands into ModR/M byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/mod 0/rm32 1/r32")
    # . . push args
    68/push  "8b/copy 0/mod 0/rm32 1/r32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 08  # 8b/copy 0/mod 0/rm32 1/r32", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-modrm-byte"/imm32
    68/push  "8b 08  # 8b/copy 0/mod 0/rm32 1/r32"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-modrm-byte-with-non-zero-mod:
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "01/add 3/mod/direct 3/rm32/ebx 1/r32/ecx")
    # . . push args
    68/push  "01/add 3/mod/direct 3/rm32/ebx 1/r32/ecx"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "out: ")
#?     # . . push args
#?     68/push  "out: "/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # check output
    # . check-stream-equal(_test-output-stream, "# abcd", msg)
    # . . push args
    68/push  "F - test-convert-instruction-foo"/imm32
    68/push  "01 cb  # 01/add 3/mod/direct 3/rm32/ebx 1/r32/ecx"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-modrm-byte-from-subop:
    # pack mod, rm32 and subop operands into ModR/M byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "ff 6/subop/push 0/mod 0/rm32")
    # . . push args
    68/push  "ff 6/subop/push 0/mod 0/rm32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "ff 30  # ff 6/subop/push 0/mod 0/rm32", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-modrm-byte-from-subop"/imm32
    68/push  "ff 30  # ff 6/subop/push 0/mod 0/rm32"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-modrm-byte-with-missing-mod:
    # pack rm32 and r32 operands into ModR/M byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/rm32 1/r32")
    # . . push args
    68/push  "8b/copy 0/rm32 1/r32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 08  # 8b/copy 0/rm32 1/r32", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-modrm-byte-with-missing-mod"/imm32
    68/push  "8b 08  # 8b/copy 0/rm32 1/r32"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-modrm-byte-with-missing-rm32:
    # pack mod and r32 operands into ModR/M byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/mod 1/r32")
    # . . push args
    68/push  "8b/copy 0/mod 1/r32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 08  # 8b/copy 0/mod 1/r32", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-modrm-byte-with-missing-rm32"/imm32
    68/push  "8b 08  # 8b/copy 0/mod 1/r32"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-modrm-byte-with-missing-r32:
    # pack mod and rm32 operands into ModR/M byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/mod 0/rm32")
    # . . push args
    68/push  "8b/copy 0/mod 0/rm32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 00  # 8b/copy 0/mod 0/rm32", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-modrm-byte-with-missing-r32"/imm32
    68/push  "8b 00  # 8b/copy 0/mod 0/rm32"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-sib-byte:
    # pack base, index and scale operands into SIB byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale")
    # . . push args
    68/push  "8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-sib-byte"/imm32
    68/push  "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-scale:
    # pack base, index and scale operands into SIB byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/scale")
    # . . push args
    68/push  "8b/copy 0/mod 4/rm32 1/scale"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 04 40  # 8b/copy 0/mod 4/rm32 1/scale", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-scale"/imm32
    68/push  "8b 04 40  # 8b/copy 0/mod 4/rm32 1/scale"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-sib-byte-with-missing-base:
    # pack index and scale operands into SIB byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale")
    # . . push args
    68/push  "8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-sib-byte-with-missing-base"/imm32
    68/push  "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-sib-byte-with-missing-index:
    # pack base and scale operands into SIB byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale")
    # . . push args
    68/push  "8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-sib-byte-with-missing-index"/imm32
    68/push  "8b 0c 00  # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-emits-sib-byte-with-missing-scale:
    # pack base and index operands into SIB byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/r32 0/base 1/index")
    # . . push args
    68/push  "8b/copy 0/mod 4/rm32 1/r32 0/base 1/index"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index", msg)
    # . . push args
    68/push  "F - test-convert-instruction-emits-sib-byte-with-missing-scale"/imm32
    68/push  "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-disp32-operand:
    # expand /disp32 operand into 4 bytes
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "e8/call 20/disp32")
    # . . push args
    68/push  "e8/call 20/disp32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "e8 20 00 00 00  # e8/call 20/disp32", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-disp32-operand"/imm32
    68/push  "e8 20 00 00 00  # e8/call 20/disp32"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-disp16-operand:
    # expand /disp16 operand into 2 bytes
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "e8/call 20/disp16")
    # . . push args
    68/push  "e8/call 20/disp16"/imm32  # not a valid instruction
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "e8 20 00  # e8/call 20/disp16", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-disp16-operand"/imm32
    68/push  "e8 20 00  # e8/call 20/disp16"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-disp8-operand:
    # expand /disp8 operand into 1 byte
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "eb/jump 20/disp8")
    # . . push args
    68/push  "eb/jump 20/disp8"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "eb 20  # eb/jump 20/disp8", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-disp8-operand"/imm32
    68/push  "eb 20  # eb/jump 20/disp8"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-disp8-name:
    # pass /disp8 name directly through
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "eb/jump xyz/disp8")
    # . . push args
    68/push  "eb/jump xyz/disp8"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "eb xyz/disp8  # eb/jump xyz/disp8", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-disp8-name"/imm32
    68/push  "eb xyz/disp8  # eb/jump xyz/disp8"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-imm32-operand:
    # expand /imm32 operand into 4 bytes
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "68/push 0x20/imm32")
    # . . push args
    68/push  "68/push 0x20/imm32"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "68 20 00 00 00  # 68/push 0x20/imm32", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-imm32-operand"/imm32
    68/push  "68 20 00 00 00  # 68/push 0x20/imm32"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-imm16-operand:
    # expand /imm16 operand into 2 bytes
    # we don't have one of these at the moment, so this expands to an invalid instruction
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "68/push 0x20/imm16")
    # . . push args
    68/push  "68/push 0x20/imm16"/imm32  # not a valid instruction
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "68 20 00  # 68/push 0x20/imm16", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-imm16-operand"/imm32
    68/push  "68 20 00  # 68/push 0x20/imm16"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-convert-instruction-handles-imm8-operand:
    # expand /imm8 operand into 1 byte
    # we don't have one of these at the moment, so this expands to an invalid instruction
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-input-stream)
    # . . push args
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # initialize input
    # . write(_test-input-stream, "68/push 0x20/imm8")
    # . . push args
    68/push  "68/push 0x20/imm8"/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  write/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # convert-instruction(_test-input-stream, _test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    68/push  _test-input-stream/imm32
    # . . call
    e8/call  convert-instruction/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # check output
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "^")
#?     # . . push args
#?     68/push  "^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # }}}
    # . check-stream-equal(_test-output-stream, "68 20  # 68/push 0x20/imm8", msg)
    # . . push args
    68/push  "F - test-convert-instruction-handles-imm8-operand"/imm32
    68/push  "68 20  # 68/push 0x20/imm8"/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-stream-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

# shortcut for parse-hex-int-from-slice(next-token-from-slice(word->start, word->end, '/'))
parse-datum-of-word:  # word: (addr slice) -> value/eax: int
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    51/push-ecx
    56/push-esi
    # esi = word
    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
    # var slice/ecx: slice
    68/push  0/imm32/end
    68/push  0/imm32/start
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # slice = next-token-from-slice(word->start, word->end, '/')
    # . . push args
    51/push-ecx
    68/push  0x2f/imm32/slash
    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
    # . . call
    e8/call  next-token-from-slice/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
    # return parse-hex-int-from-slice(slice)
    # . . push args
    51/push-ecx
    # . . call
    e8/call  parse-hex-int-from-slice/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
$parse-datum-of-word:end:
    # . reclaim locals
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . restore registers
    5e/pop-to-esi
    59/pop-to-ecx
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

# . . vim:nowrap:textwidth=0