Corncob retail 3.42: selected original routines Addresses below are file offsets. Near-call targets may wrap in Capstone output. 3.EXE SHA-256 c411dde7d18e1dc19d718327b70d1e69321448520344d3baa4a0c8e68a71e81e Read 64 world tiles and undo type-word XOR [0x1b84, 0x1c1c) 01b84 b90800 mov cx, 8 01b87 51 push cx 01b88 8bc1 mov ax, cx 01b8a f7d8 neg ax 01b8c 050800 add ax, 8 01b8f a3991f mov word ptr [0x1f99], ax 01b92 b90800 mov cx, 8 01b95 51 push cx 01b96 8bc1 mov ax, cx 01b98 f7d8 neg ax 01b9a 050800 add ax, 8 01b9d a3971f mov word ptr [0x1f97], ax 01ba0 bea31f mov si, 0x1fa3 01ba3 b91000 mov cx, 0x10 01ba6 8b1ec301 mov bx, word ptr [0x1c3] 01baa e81dcc call 0xffffe7ca 01bad 7269 jb 0x1c18 01baf a1971f mov ax, word ptr [0x1f97] 01bb2 3906a71f cmp word ptr [0x1fa7], ax 01bb6 7560 jne 0x1c18 01bb8 a1991f mov ax, word ptr [0x1f99] 01bbb 3906a91f cmp word ptr [0x1fa9], ax 01bbf 7557 jne 0x1c18 01bc1 e88e69 call 0x8552 01bc4 7252 jb 0x1c18 01bc6 e82f65 call 0x80f8 01bc9 a1ab1f mov ax, word ptr [0x1fab] 01bcc ba1700 mov dx, 0x17 01bcf f7e2 mul dx 01bd1 8bc8 mov cx, ax 01bd3 8b1ec301 mov bx, word ptr [0x1c3] 01bd7 1e push ds 01bd8 8cc0 mov ax, es 01bda 8ed8 mov ds, ax 01bdc 8bf7 mov si, di 01bde e8e9cb call 0xffffe7ca 01be1 1f pop ds 01be2 57 push di 01be3 8b0eab1f mov cx, word ptr [0x1fab] 01be7 0bc9 or cx, cx 01be9 7415 je 0x1c00 01beb 268b4515 mov ax, word ptr es:[di + 0x15] 01bef 26334504 xor ax, word ptr es:[di + 4] 01bf3 26334502 xor ax, word ptr es:[di + 2] 01bf7 26894515 mov word ptr es:[di + 0x15], ax 01bfb 83c717 add di, 0x17 01bfe e2eb loop 0x1beb 01c00 5f pop di 01c01 59 pop cx 01c02 e291 loop 0x1b95 01c04 59 pop cx 01c05 e280 loop 0x1b87 01c07 b90c00 mov cx, 0xc 01c0a bea902 mov si, 0x2a9 01c0d 8b1ec301 mov bx, word ptr [0x1c3] 01c11 e8b6cb call 0xffffe7ca 01c14 7204 jb 0x1c1a 01c16 f8 clc 01c17 c3 ret 01c18 59 pop cx 01c19 59 pop cx 01c1a f9 stc 01c1b c3 ret Expand compact object record using its template [0x7f85, 0x8056) 07f85 268b450b mov ax, word ptr es:[di + 0xb] 07f89 0bc0 or ax, ax 07f8b 750a jne 0x7f97 07f8d f9 stc 07f8e c3 ret 07f8f 2ec6067b1427 mov byte ptr cs:[0x147b], 0x27 07f95 f9 stc 07f96 c3 ret 07f97 894418 mov word ptr [si + 0x18], ax 07f9a 268b5d15 mov bx, word ptr es:[di + 0x15] 07f9e 895c48 mov word ptr [si + 0x48], bx 07fa1 3b1ebe2d cmp bx, word ptr [0x2dbe] 07fa5 77e8 ja 0x7f8f 07fa7 56 push si 07fa8 57 push di 07fa9 06 push es 07faa 8cd8 mov ax, ds 07fac 8ec0 mov es, ax 07fae fc cld 07faf 8bfe mov di, si 07fb1 8bf3 mov si, bx 07fb3 03f3 add si, bx 07fb5 81c6ca2c add si, 0x2cca 07fb9 8b34 mov si, word ptr [si] 07fbb b94a00 mov cx, 0x4a 07fbe f3a4 rep movsb byte ptr es:[di], byte ptr [si] 07fc0 07 pop es 07fc1 5f pop di 07fc2 5e pop si 07fc3 268b4502 mov ax, word ptr es:[di + 2] 07fc7 8904 mov word ptr [si], ax 07fc9 a1971f mov ax, word ptr [0x1f97] 07fcc ba2000 mov dx, 0x20 07fcf f7e2 mul dx 07fd1 03069b1f add ax, word ptr [0x1f9b] 07fd5 268b15 mov dx, word ptr es:[di] 07fd8 83e21f and dx, 0x1f 07fdb 03c2 add ax, dx 07fdd 894402 mov word ptr [si + 2], ax 07fe0 268b4504 mov ax, word ptr es:[di + 4] 07fe4 894404 mov word ptr [si + 4], ax 07fe7 a1991f mov ax, word ptr [0x1f99] 07fea ba2000 mov dx, 0x20 07fed f7e2 mul dx 07fef 03069d1f add ax, word ptr [0x1f9d] 07ff3 268b15 mov dx, word ptr es:[di] 07ff6 b105 mov cl, 5 07ff8 d3ca ror dx, cl 07ffa 83e21f and dx, 0x1f 07ffd 03c2 add ax, dx 07fff 894406 mov word ptr [si + 6], ax 08002 268b4506 mov ax, word ptr es:[di + 6] 08006 894408 mov word ptr [si + 8], ax 08009 268b05 mov ax, word ptr es:[di] 0800c b10a mov cl, 0xa 0800e d3c8 ror ax, cl 08010 251f00 and ax, 0x1f 08013 89440a mov word ptr [si + 0xa], ax 08016 268a6508 mov ah, byte ptr es:[di + 8] 0801a 32c0 xor al, al 0801c 89440c mov word ptr [si + 0xc], ax 0801f 268a6509 mov ah, byte ptr es:[di + 9] 08023 32c0 xor al, al 08025 89440e mov word ptr [si + 0xe], ax 08028 268a650a mov ah, byte ptr es:[di + 0xa] 0802c 32c0 xor al, al 0802e 894410 mov word ptr [si + 0x10], ax 08031 268b450d mov ax, word ptr es:[di + 0xd] 08035 89442e mov word ptr [si + 0x2e], ax 08038 268b450f mov ax, word ptr es:[di + 0xf] 0803c 894430 mov word ptr [si + 0x30], ax 0803f 268b4511 mov ax, word ptr es:[di + 0x11] 08043 894432 mov word ptr [si + 0x32], ax 08046 268b4513 mov ax, word ptr es:[di + 0x13] 0804a 894434 mov word ptr [si + 0x34], ax 0804d 268b450b mov ax, word ptr es:[di + 0xb] 08051 894418 mov word ptr [si + 0x18], ax 08054 f8 clc 08055 c3 ret Pack live object into compact record [0x8056, 0x80f8) 08056 8b04 mov ax, word ptr [si] 08058 26894502 mov word ptr es:[di + 2], ax 0805c a1971f mov ax, word ptr [0x1f97] 0805f ba2000 mov dx, 0x20 08062 f7e2 mul dx 08064 03069b1f add ax, word ptr [0x1f9b] 08068 8b5c02 mov bx, word ptr [si + 2] 0806b 2bd8 sub bx, ax 0806d 83e31f and bx, 0x1f 08070 26891d mov word ptr es:[di], bx 08073 8b4404 mov ax, word ptr [si + 4] 08076 26894504 mov word ptr es:[di + 4], ax 0807a a1991f mov ax, word ptr [0x1f99] 0807d ba2000 mov dx, 0x20 08080 f7e2 mul dx 08082 03069d1f add ax, word ptr [0x1f9d] 08086 8b5c06 mov bx, word ptr [si + 6] 08089 2bd8 sub bx, ax 0808b 83e31f and bx, 0x1f 0808e b105 mov cl, 5 08090 d3c3 rol bx, cl 08092 26091d or word ptr es:[di], bx 08095 8b4408 mov ax, word ptr [si + 8] 08098 26894506 mov word ptr es:[di + 6], ax 0809c 8b5c0a mov bx, word ptr [si + 0xa] 0809f 83e31f and bx, 0x1f 080a2 b10a mov cl, 0xa 080a4 d3c3 rol bx, cl 080a6 26091d or word ptr es:[di], bx 080a9 8b440c mov ax, word ptr [si + 0xc] 080ac 26886508 mov byte ptr es:[di + 8], ah 080b0 8b440e mov ax, word ptr [si + 0xe] 080b3 26886509 mov byte ptr es:[di + 9], ah 080b7 8b4410 mov ax, word ptr [si + 0x10] 080ba 2688650a mov byte ptr es:[di + 0xa], ah 080be 8b4418 mov ax, word ptr [si + 0x18] 080c1 2689450b mov word ptr es:[di + 0xb], ax 080c5 8b442e mov ax, word ptr [si + 0x2e] 080c8 2689450d mov word ptr es:[di + 0xd], ax 080cc 8b4430 mov ax, word ptr [si + 0x30] 080cf 2689450f mov word ptr es:[di + 0xf], ax 080d3 8b4432 mov ax, word ptr [si + 0x32] 080d6 26894511 mov word ptr es:[di + 0x11], ax 080da 8b4434 mov ax, word ptr [si + 0x34] 080dd 26894513 mov word ptr es:[di + 0x13], ax 080e1 8b4448 mov ax, word ptr [si + 0x48] 080e4 3b06be2d cmp ax, word ptr [0x2dbe] 080e8 7706 ja 0x80f0 080ea 26894515 mov word ptr es:[di + 0x15], ax 080ee f8 clc 080ef c3 ret 080f0 2ec6067b1428 mov byte ptr cs:[0x147b], 0x28 080f6 f9 stc 080f7 c3 ret Update radar flash, alternating colours and shared random colour [0x3fbc, 0x3ffa) 03fbc b000 mov al, 0 03fbe 803e550f00 cmp byte ptr [0xf55], 0 03fc3 740b je 0x3fd0 03fc5 2ef70643000004 test word ptr cs:[0x43], 0x400 03fcc 7402 je 0x3fd0 03fce b00f mov al, 0xf 03fd0 a2c22d mov byte ptr [0x2dc2], al 03fd3 a0c32d mov al, byte ptr [0x2dc3] 03fd6 8606c42d xchg byte ptr [0x2dc4], al 03fda a2c32d mov byte ptr [0x2dc3], al 03fdd a0c52d mov al, byte ptr [0x2dc5] 03fe0 8606c62d xchg byte ptr [0x2dc6], al 03fe4 a2c52d mov byte ptr [0x2dc5], al 03fe7 a0c72d mov al, byte ptr [0x2dc7] 03fea 8606c82d xchg byte ptr [0x2dc8], al 03fee a2c72d mov byte ptr [0x2dc7], al 03ff1 bb0f00 mov bx, 0xf 03ff4 e85aaa call 0xffffea51 03ff7 a2b631 mov byte ptr [0x31b6], al Jitter fire, smoke and effect disc geometry [0x3ffa, 0x4105) 03ffa be9d37 mov si, 0x379d 03ffd bffb36 mov di, 0x36fb 04000 83c602 add si, 2 04003 83c702 add di, 2 04006 b91000 mov cx, 0x10 04009 bb2c01 mov bx, 0x12c 0400c e842aa call 0xffffea51 0400f 0304 add ax, word ptr [si] 04011 8905 mov word ptr [di], ax 04013 83c602 add si, 2 04016 83c702 add di, 2 04019 e835aa call 0xffffea51 0401c 0304 add ax, word ptr [si] 0401e 8905 mov word ptr [di], ax 04020 83c602 add si, 2 04023 83c702 add di, 2 04026 e828aa call 0xffffea51 04029 0304 add ax, word ptr [si] 0402b 8905 mov word ptr [di], ax 0402d 83c602 add si, 2 04030 83c702 add di, 2 04033 e81baa call 0xffffea51 04036 0304 add ax, word ptr [si] 04038 8905 mov word ptr [di], ax 0403a 83c602 add si, 2 0403d 83c702 add di, 2 04040 83c31e add bx, 0x1e 04043 83c602 add si, 2 04046 83c702 add di, 2 04049 e2c1 loop 0x400c 0404b be5936 mov si, 0x3659 0404e bfb735 mov di, 0x35b7 04051 83c602 add si, 2 04054 83c702 add di, 2 04057 b91000 mov cx, 0x10 0405a bb3c00 mov bx, 0x3c 0405d e8f1a9 call 0xffffea51 04060 057800 add ax, 0x78 04063 0304 add ax, word ptr [si] 04065 8905 mov word ptr [di], ax 04067 83c602 add si, 2 0406a 83c702 add di, 2 0406d e8e1a9 call 0xffffea51 04070 057800 add ax, 0x78 04073 0304 add ax, word ptr [si] 04075 8905 mov word ptr [di], ax 04077 83c602 add si, 2 0407a 83c702 add di, 2 0407d e8d1a9 call 0xffffea51 04080 057800 add ax, 0x78 04083 0304 add ax, word ptr [si] 04085 8905 mov word ptr [di], ax 04087 83c602 add si, 2 0408a 83c702 add di, 2 0408d e8c1a9 call 0xffffea51 04090 057800 add ax, 0x78 04093 0304 add ax, word ptr [si] 04095 8905 mov word ptr [di], ax 04097 83c602 add si, 2 0409a 83c702 add di, 2 0409d 83c307 add bx, 7 040a0 83c602 add si, 2 040a3 83c702 add di, 2 040a6 e2b5 loop 0x405d 040a8 be743e mov si, 0x3e74 040ab bf543e mov di, 0x3e54 040ae 83c602 add si, 2 040b1 83c702 add di, 2 040b4 b90300 mov cx, 3 040b7 bbf401 mov bx, 0x1f4 040ba e894a9 call 0xffffea51 040bd 05e803 add ax, 0x3e8 040c0 0304 add ax, word ptr [si] 040c2 8905 mov word ptr [di], ax 040c4 83c602 add si, 2 040c7 83c702 add di, 2 040ca e884a9 call 0xffffea51 040cd 05e803 add ax, 0x3e8 040d0 0304 add ax, word ptr [si] 040d2 8905 mov word ptr [di], ax 040d4 83c602 add si, 2 040d7 83c702 add di, 2 040da e874a9 call 0xffffea51 040dd 05e803 add ax, 0x3e8 040e0 0304 add ax, word ptr [si] 040e2 8905 mov word ptr [di], ax 040e4 83c602 add si, 2 040e7 83c702 add di, 2 040ea e864a9 call 0xffffea51 040ed 05e803 add ax, 0x3e8 040f0 0304 add ax, word ptr [si] 040f2 8905 mov word ptr [di], ax 040f4 83c602 add si, 2 040f7 83c702 add di, 2 040fa 83c33e add bx, 0x3e 040fd 83c602 add si, 2 04100 83c702 add di, 2 04103 e2b5 loop 0x40ba Position and spin player propeller [0x43c6, 0x4422) 043c6 be050b mov si, 0xb05 043c9 bbf01f mov bx, 0x1ff0 043cc c7067c0e7cfc mov word ptr [0xe7c], 0xfc7c 043d2 bffa5b mov di, 0x5bfa 043d5 b90900 mov cx, 9 043d8 fc cld 043d9 8cd8 mov ax, ds 043db 8ec0 mov es, ax 043dd f3a5 rep movsw word ptr es:[di], word ptr [si] 043df be780e mov si, 0xe78 043e2 bf061d mov di, 0x1d06 043e5 e83514 call 0x581d 043e8 a1061d mov ax, word ptr [0x1d06] 043eb 99 cdq 043ec 0106fa5b add word ptr [0x5bfa], ax 043f0 1116fc5b adc word ptr [0x5bfc], dx 043f4 a1081d mov ax, word ptr [0x1d08] 043f7 99 cdq 043f8 0106fe5b add word ptr [0x5bfe], ax 043fc 1116005c adc word ptr [0x5c00], dx 04400 a10a1d mov ax, word ptr [0x1d0a] 04403 99 cdq 04404 0106025c add word ptr [0x5c02], ax 04408 1116045c adc word ptr [0x5c04], dx 0440c 8b1ee21d mov bx, word ptr [0x1de2] 04410 83eb0a sub bx, 0xa 04413 d1e3 shl bx, 1 04415 33d2 xor dx, dx 04417 2ea14300 mov ax, word ptr cs:[0x43] 0441b f7e3 mul bx 0441d f7d8 neg ax 0441f a30a5c mov word ptr [0x5c0a], ax Animate forcefield and saucer geometry [0x8ada, 0x8bd6) 08ada ff061263 inc word ptr [0x6312] 08ade a11263 mov ax, word ptr [0x6312] 08ae1 b10c mov cl, 0xc 08ae3 d3e0 shl ax, cl 08ae5 a3cc2d mov word ptr [0x2dcc], ax 08ae8 e8a64a call 0xd591 08aeb 8bc0 mov ax, ax 08aed baff1f mov dx, 0x1fff 08af0 f7ea imul dx 08af2 81fa0080 cmp dx, 0x8000 08af6 7502 jne 0x8afa 08af8 b4ff mov ah, 0xff 08afa d1e0 shl ax, 1 08afc d1d2 rcl dx, 1 08afe 8bc2 mov ax, dx 08b00 05ff1f add ax, 0x1fff 08b03 7503 jne 0x8b08 08b05 b80100 mov ax, 1 08b08 0bc0 or ax, ax 08b0a 7903 jns 0x8b0f 08b0c b8fe3f mov ax, 0x3ffe 08b0f 8bd0 mov dx, ax 08b11 be1863 mov si, 0x6318 08b14 8b0e1463 mov cx, word ptr [0x6314] 08b18 e8c901 call 0x8ce4 08b1b d1e2 shl dx, 1 08b1d 8b0e1663 mov cx, word ptr [0x6316] 08b21 e8c001 call 0x8ce4 08b24 a11263 mov ax, word ptr [0x6312] 08b27 bb270c mov bx, 0xc27 08b2a f7e3 mul bx 08b2c e8624a call 0xd591 08b2f a3ca2d mov word ptr [0x2dca], ax 08b32 50 push ax 08b33 8bc0 mov ax, ax 08b35 ba4d01 mov dx, 0x14d 08b38 f7ea imul dx 08b3a 81fa0080 cmp dx, 0x8000 08b3e 7502 jne 0x8b42 08b40 b4ff mov ah, 0xff 08b42 d1e0 shl ax, 1 08b44 d1d2 rcl dx, 1 08b46 8bc2 mov ax, dx 08b48 05e703 add ax, 0x3e7 08b4b a3936a mov word ptr [0x6a93], ax 08b4e 8bc2 mov ax, dx 08b50 2de703 sub ax, 0x3e7 08b53 f7d8 neg ax 08b55 a39f6a mov word ptr [0x6a9f], ax 08b58 58 pop ax 08b59 8bc0 mov ax, ax 08b5b baff0f mov dx, 0xfff 08b5e f7ea imul dx 08b60 81fa0080 cmp dx, 0x8000 08b64 7502 jne 0x8b68 08b66 b4ff mov ah, 0xff 08b68 d1e0 shl ax, 1 08b6a d1d2 rcl dx, 1 08b6c 8bc2 mov ax, dx 08b6e 05ff0f add ax, 0xfff 08b71 7503 jne 0x8b76 08b73 b80100 mov ax, 1 08b76 0bc0 or ax, ax 08b78 7903 jns 0x8b7d 08b7a b8ff1f mov ax, 0x1fff 08b7d 8bd0 mov dx, ax 08b7f be4263 mov si, 0x6342 08b82 8b0e3e63 mov cx, word ptr [0x633e] 08b86 e85b01 call 0x8ce4 08b89 d1e2 shl dx, 1 08b8b 8b0e4063 mov cx, word ptr [0x6340] 08b8f e85201 call 0x8ce4 08b92 a11263 mov ax, word ptr [0x6312] 08b95 bbd514 mov bx, 0x14d5 08b98 f7e3 mul bx 08b9a e8f449 call 0xd591 08b9d 8bc0 mov ax, ax 08b9f baff1f mov dx, 0x1fff 08ba2 f7ea imul dx 08ba4 81fa0080 cmp dx, 0x8000 08ba8 7502 jne 0x8bac 08baa b4ff mov ah, 0xff 08bac d1e0 shl ax, 1 08bae d1d2 rcl dx, 1 08bb0 8bc2 mov ax, dx 08bb2 05ff1f add ax, 0x1fff 08bb5 7503 jne 0x8bba 08bb7 b80100 mov ax, 1 08bba 0bc0 or ax, ax 08bbc 7903 jns 0x8bc1 08bbe b8ff3f mov ax, 0x3fff 08bc1 8bd0 mov dx, ax 08bc3 be7863 mov si, 0x6378 08bc6 8b0e7463 mov cx, word ptr [0x6374] 08bca e81701 call 0x8ce4 08bcd d1e2 shl dx, 1 08bcf 8b0e7663 mov cx, word ptr [0x6376] 08bd3 e80e01 call 0x8ce4 Update radar heading from PIT timer [0x8e7e, 0x8e8e) 08e7e 9c pushf 08e7f 2ea14300 mov ax, word ptr cs:[0x43] 08e83 d1e0 shl ax, 1 08e85 d1e0 shl ax, 1 08e87 89440c mov word ptr [si + 0xc], ax 08e8a 9d popf 08e8b eb51 jmp 0x8ede 08e8d 90 nop Generate training world [0x904f, 0x960a) 0904f ff06ce2d inc word ptr [0x2dce] 09053 be1e1a mov si, 0x1a1e 09056 8bfe mov di, si 09058 1e push ds 09059 07 pop es 0905a b94a00 mov cx, 0x4a 0905d 33c0 xor ax, ax 0905f f3ab rep stosw word ptr es:[di], ax 09061 b90a00 mov cx, 0xa 09064 33c0 xor ax, ax 09066 c74404c0e0 mov word ptr [si + 4], 0xe0c0 0906b c74406ffff mov word ptr [si + 6], 0xffff 09070 894408 mov word ptr [si + 8], ax 09073 89440a mov word ptr [si + 0xa], ax 09076 c704ffff mov word ptr [si], 0xffff 0907a c74402f6ff mov word ptr [si + 2], 0xfff6 0907f c70630ec0000 mov word ptr [0xec30], 0 09085 e8c6ff call 0x904e 09088 be1e1a mov si, 0x1a1e 0908b 56 push si 0908c 51 push cx 0908d bf4c7f mov di, 0x7f4c 09090 c70630ec0000 mov word ptr [0xec30], 0 09096 e8ff26 call 0xb798 09099 59 pop cx 0909a 5e pop si 0909b 81040080 add word ptr [si], 0x8000 0909f 835402ff adc word ptr [si + 2], -1 090a3 be1e1a mov si, 0x1a1e 090a6 56 push si 090a7 51 push cx 090a8 bfe07f mov di, 0x7fe0 090ab c70630ec0000 mov word ptr [0xec30], 0 090b1 e8e426 call 0xb798 090b4 59 pop cx 090b5 5e pop si 090b6 81040080 add word ptr [si], 0x8000 090ba 835402ff adc word ptr [si + 2], -1 090be e2e3 loop 0x90a3 090c0 be1e1a mov si, 0x1a1e 090c3 56 push si 090c4 51 push cx 090c5 bf967f mov di, 0x7f96 090c8 c70630ec0000 mov word ptr [0xec30], 0 090ce e8c726 call 0xb798 090d1 59 pop cx 090d2 5e pop si 090d3 a1a902 mov ax, word ptr [0x2a9] 090d6 8b16ab02 mov dx, word ptr [0x2ab] 090da 2de02e sub ax, 0x2ee0 090dd 83da00 sbb dx, 0 090e0 8904 mov word ptr [si], ax 090e2 895402 mov word ptr [si + 2], dx 090e5 33c0 xor ax, ax 090e7 894404 mov word ptr [si + 4], ax 090ea 894406 mov word ptr [si + 6], ax 090ed c70630ec0700 mov word ptr [0xec30], 7 090f3 bfe07f mov di, 0x7fe0 090f6 e89f26 call 0xb798 090f9 803ee80a00 cmp byte ptr [0xae8], 0 090fe 7403 je 0x9103 09100 e99702 jmp 0x939a 09103 b90f00 mov cx, 0xf 09106 be7e0e mov si, 0xe7e 09109 e8437a call 0x10b4f 0910c 8904 mov word ptr [si], ax 0910e 895402 mov word ptr [si + 2], dx 09111 e83b7a call 0x10b4f 09114 894404 mov word ptr [si + 4], ax 09117 895406 mov word ptr [si + 6], dx 0911a 33c0 xor ax, ax 0911c 89440a mov word ptr [si + 0xa], ax 0911f c744080e06 mov word ptr [si + 8], 0x60e 09124 56 push si 09125 51 push cx 09126 bf6487 mov di, 0x8764 09129 c70630ec0000 mov word ptr [0xec30], 0 0912f e81cff call 0x904e 09132 e86326 call 0xb798 09135 59 pop cx 09136 5e pop si 09137 e2cd loop 0x9106 09139 8b0e700e mov cx, word ptr [0xe70] 0913d 0bc9 or cx, cx 0913f 7503 jne 0x9144 09141 eb3a jmp 0x917d 09143 90 nop 09144 a1760e mov ax, word ptr [0xe76] 09147 0bc0 or ax, ax 09149 7906 jns 0x9151 0914b e81259 call 0xea60 0914e 250700 and ax, 7 09151 a330ec mov word ptr [0xec30], ax 09154 51 push cx 09155 be7e0e mov si, 0xe7e 09158 e8f479 call 0x10b4f 0915b 8904 mov word ptr [si], ax 0915d 895402 mov word ptr [si + 2], dx 09160 e8ec79 call 0x10b4f 09163 894404 mov word ptr [si + 4], ax 09166 895406 mov word ptr [si + 6], dx 09169 b82003 mov ax, 0x320 0916c 33d2 xor dx, dx 0916e 894408 mov word ptr [si + 8], ax 09171 89540a mov word ptr [si + 0xa], dx 09174 e8d7fe call 0x904e 09177 e86826 call 0xb7e2 0917a 59 pop cx 0917b e2c7 loop 0x9144 0917d 8cd8 mov ax, ds 0917f 8ec0 mov es, ax 09181 fc cld 09182 b90600 mov cx, 6 09185 be050b mov si, 0xb05 09188 bf7e0e mov di, 0xe7e 0918b f3a5 rep movsw word ptr es:[di], word ptr [si] 0918d be7e0e mov si, 0xe7e 09190 834406fb add word ptr [si + 6], -5 09194 83440202 add word ptr [si + 2], 2 09198 8b0e6e0e mov cx, word ptr [0xe6e] 0919c 890eeaf0 mov word ptr [0xf0ea], cx 091a0 0bc9 or cx, cx 091a2 7503 jne 0x91a7 091a4 eb3a jmp 0x91e0 091a6 90 nop 091a7 a1740e mov ax, word ptr [0xe74] 091aa 0bc0 or ax, ax 091ac 7906 jns 0x91b4 091ae e8af58 call 0xea60 091b1 250700 and ax, 7 091b4 a330ec mov word ptr [0xec30], ax 091b7 51 push cx 091b8 be7e0e mov si, 0xe7e 091bb e89179 call 0x10b4f 091be 8904 mov word ptr [si], ax 091c0 895402 mov word ptr [si + 2], dx 091c3 e88979 call 0x10b4f 091c6 894404 mov word ptr [si + 4], ax 091c9 895406 mov word ptr [si + 6], dx 091cc b82003 mov ax, 0x320 091cf 33d2 xor dx, dx 091d1 894408 mov word ptr [si + 8], ax 091d4 89540a mov word ptr [si + 0xa], dx 091d7 e874fe call 0x904e 091da e8df23 call 0xb5bc 091dd 59 pop cx 091de e2c7 loop 0x91a7 091e0 8b0e6c0e mov cx, word ptr [0xe6c] 091e4 890e13f1 mov word ptr [0xf113], cx 091e8 0bc9 or cx, cx 091ea 7503 jne 0x91ef 091ec eb3a jmp 0x9228 091ee 90 nop 091ef a1720e mov ax, word ptr [0xe72] 091f2 0bc0 or ax, ax 091f4 7906 jns 0x91fc 091f6 e86758 call 0xea60 091f9 250700 and ax, 7 091fc a330ec mov word ptr [0xec30], ax 091ff 51 push cx 09200 be7e0e mov si, 0xe7e 09203 e84979 call 0x10b4f 09206 8904 mov word ptr [si], ax 09208 895402 mov word ptr [si + 2], dx 0920b e84179 call 0x10b4f 0920e 894404 mov word ptr [si + 4], ax 09211 895406 mov word ptr [si + 6], dx 09214 b82003 mov ax, 0x320 09217 33d2 xor dx, dx 09219 894408 mov word ptr [si + 8], ax 0921c 89540a mov word ptr [si + 0xa], dx 0921f e82cfe call 0x904e 09222 e81a23 call 0xb53f 09225 59 pop cx 09226 e2c7 loop 0x91ef 09228 c70630ec0000 mov word ptr [0xec30], 0 0922e bf0e83 mov di, 0x830e 09231 be1e1a mov si, 0x1a1e 09234 c704fe7f mov word ptr [si], 0x7ffe 09238 c744020000 mov word ptr [si + 2], 0 0923d c744040000 mov word ptr [si + 4], 0 09242 c744060000 mov word ptr [si + 6], 0 09247 c74408ff3f mov word ptr [si + 8], 0x3fff 0924c c7440a0000 mov word ptr [si + 0xa], 0 09251 c7440c0000 mov word ptr [si + 0xc], 0 09256 c7440e0000 mov word ptr [si + 0xe], 0 0925b c744100000 mov word ptr [si + 0x10], 0 09260 e8ebfd call 0x904e 09263 e83225 call 0xb798 09266 c70630ec0000 mov word ptr [0xec30], 0 0926c bf0e83 mov di, 0x830e 0926f be1e1a mov si, 0x1a1e 09272 c7040280 mov word ptr [si], 0x8002 09276 c74402ffff mov word ptr [si + 2], 0xffff 0927b c744040000 mov word ptr [si + 4], 0 09280 c744060000 mov word ptr [si + 6], 0 09285 c74408ff3f mov word ptr [si + 8], 0x3fff 0928a c7440a0000 mov word ptr [si + 0xa], 0 0928f c7440c0000 mov word ptr [si + 0xc], 0 09294 c7440e0000 mov word ptr [si + 0xe], 0 09299 c744100000 mov word ptr [si + 0x10], 0 0929e e8adfd call 0x904e 092a1 e8f424 call 0xb798 092a4 bfa283 mov di, 0x83a2 092a7 be1e1a mov si, 0x1a1e 092aa c7040000 mov word ptr [si], 0 092ae c744020000 mov word ptr [si + 2], 0 092b3 c744040000 mov word ptr [si + 4], 0 092b8 c744060000 mov word ptr [si + 6], 0 092bd c74408fe7f mov word ptr [si + 8], 0x7ffe 092c2 c7440a0000 mov word ptr [si + 0xa], 0 092c7 c7440c0000 mov word ptr [si + 0xc], 0 092cc c7440e0000 mov word ptr [si + 0xe], 0 092d1 c744100000 mov word ptr [si + 0x10], 0 092d6 e875fd call 0x904e 092d9 e8bc24 call 0xb798 092dc bf5883 mov di, 0x8358 092df be1e1a mov si, 0x1a1e 092e2 c7040000 mov word ptr [si], 0 092e6 c744020000 mov word ptr [si + 2], 0 092eb c744040000 mov word ptr [si + 4], 0 092f0 c744060200 mov word ptr [si + 6], 2 092f5 c74408fe7f mov word ptr [si + 8], 0x7ffe 092fa c7440a0000 mov word ptr [si + 0xa], 0 092ff c7440c0000 mov word ptr [si + 0xc], 0 09304 c7440e0000 mov word ptr [si + 0xe], 0 09309 c744100000 mov word ptr [si + 0x10], 0 0930e e83dfd call 0x904e 09311 e88424 call 0xb798 09314 b80100 mov ax, 1 09317 a330ec mov word ptr [0xec30], ax 0931a bfda7d mov di, 0x7dda 0931d be1e1a mov si, 0x1a1e 09320 c7040000 mov word ptr [si], 0 09324 c744020000 mov word ptr [si + 2], 0 09329 c744040000 mov word ptr [si + 4], 0 0932e c744060000 mov word ptr [si + 6], 0 09333 c74408c02b mov word ptr [si + 8], 0x2bc0 09338 c7440a0000 mov word ptr [si + 0xa], 0 0933d c7440c0000 mov word ptr [si + 0xc], 0 09342 c7440e0000 mov word ptr [si + 0xe], 0 09347 c744100000 mov word ptr [si + 0x10], 0 0934c e8fffc call 0x904e 0934f e84624 call 0xb798 09352 a1720e mov ax, word ptr [0xe72] 09355 0bc0 or ax, ax 09357 7906 jns 0x935f 09359 e80457 call 0xea60 0935c 250700 and ax, 7 0935f a330ec mov word ptr [0xec30], ax 09362 bf988c mov di, 0x8c98 09365 be1e1a mov si, 0x1a1e 09368 c7040000 mov word ptr [si], 0 0936c c744020000 mov word ptr [si + 2], 0 09371 c744040000 mov word ptr [si + 4], 0 09376 c744060000 mov word ptr [si + 6], 0 0937b c74408007d mov word ptr [si + 8], 0x7d00 09380 c7440a0200 mov word ptr [si + 0xa], 2 09385 c7440c0000 mov word ptr [si + 0xc], 0 0938a c7440e0000 mov word ptr [si + 0xe], 0 0938f c744100000 mov word ptr [si + 0x10], 0 09394 e8b7fc call 0x904e 09397 e8fe23 call 0xb798 0939a c70630ec0000 mov word ptr [0xec30], 0 093a0 bf6e7e mov di, 0x7e6e 093a3 be1e1a mov si, 0x1a1e 093a6 c704401f mov word ptr [si], 0x1f40 093aa c74402f5ff mov word ptr [si + 2], 0xfff5 093af c74404401f mov word ptr [si + 4], 0x1f40 093b4 c744060000 mov word ptr [si + 6], 0 093b9 a15c0f mov ax, word ptr [0xf5c] 093bc 894408 mov word ptr [si + 8], ax 093bf c7440a0000 mov word ptr [si + 0xa], 0 093c4 c7440c00e0 mov word ptr [si + 0xc], 0xe000 093c9 c7440e24fa mov word ptr [si + 0xe], 0xfa24 093ce c744100000 mov word ptr [si + 0x10], 0 093d3 e878fc call 0x904e 093d6 e8bf23 call 0xb798 093d9 bf027f mov di, 0x7f02 093dc be1e1a mov si, 0x1a1e 093df c704ffff mov word ptr [si], 0xffff 093e3 c74402f6ff mov word ptr [si + 2], 0xfff6 093e8 c74404803e mov word ptr [si + 4], 0x3e80 093ed c744060000 mov word ptr [si + 6], 0 093f2 c74408100e mov word ptr [si + 8], 0xe10 093f7 c7440a0000 mov word ptr [si + 0xa], 0 093fc c7440c0000 mov word ptr [si + 0xc], 0 09401 c7440e0000 mov word ptr [si + 0xe], 0 09406 c744100000 mov word ptr [si + 0x10], 0 0940b e840fc call 0x904e 0940e e88723 call 0xb798 09411 bfb87e mov di, 0x7eb8 09414 be1e1a mov si, 0x1a1e 09417 c704ffff mov word ptr [si], 0xffff 0941b c74402f6ff mov word ptr [si + 2], 0xfff6 09420 c74404803e mov word ptr [si + 4], 0x3e80 09425 c744060000 mov word ptr [si + 6], 0 0942a c74408100e mov word ptr [si + 8], 0xe10 0942f c7440a0000 mov word ptr [si + 0xa], 0 09434 c7440c0000 mov word ptr [si + 0xc], 0 09439 c7440e0000 mov word ptr [si + 0xe], 0 0943e c744100000 mov word ptr [si + 0x10], 0 09443 e808fc call 0x904e 09446 e84f23 call 0xb798 09449 bf0881 mov di, 0x8108 0944c be1e1a mov si, 0x1a1e 0944f c704ffff mov word ptr [si], 0xffff 09453 c74402f6ff mov word ptr [si + 2], 0xfff6 09458 c74404f055 mov word ptr [si + 4], 0x55f0 0945d c744060000 mov word ptr [si + 6], 0 09462 c744080000 mov word ptr [si + 8], 0 09467 c7440a0000 mov word ptr [si + 0xa], 0 0946c c7440c0000 mov word ptr [si + 0xc], 0 09471 c7440e0000 mov word ptr [si + 0xe], 0 09476 c744100000 mov word ptr [si + 0x10], 0 0947b e8d0fb call 0x904e 0947e e81723 call 0xb798 09481 bf2a80 mov di, 0x802a 09484 be1e1a mov si, 0x1a1e 09487 c704ffff mov word ptr [si], 0xffff 0948b c74402f4ff mov word ptr [si + 2], 0xfff4 09490 c74404b036 mov word ptr [si + 4], 0x36b0 09495 c744060000 mov word ptr [si + 6], 0 0949a c744080000 mov word ptr [si + 8], 0 0949f c7440a0000 mov word ptr [si + 0xa], 0 094a4 c7440c0000 mov word ptr [si + 0xc], 0 094a9 c7440e0000 mov word ptr [si + 0xe], 0 094ae c744100000 mov word ptr [si + 0x10], 0 094b3 e898fb call 0x904e 094b6 e8df22 call 0xb798 094b9 bf7480 mov di, 0x8074 094bc be1e1a mov si, 0x1a1e 094bf c704ffff mov word ptr [si], 0xffff 094c3 c74402f4ff mov word ptr [si + 2], 0xfff4 094c8 c74404803e mov word ptr [si + 4], 0x3e80 094cd c744060000 mov word ptr [si + 6], 0 094d2 c74408803e mov word ptr [si + 8], 0x3e80 094d7 c7440a0000 mov word ptr [si + 0xa], 0 094dc c7440c0000 mov word ptr [si + 0xc], 0 094e1 c7440e0000 mov word ptr [si + 0xe], 0 094e6 c744100000 mov word ptr [si + 0x10], 0 094eb e860fb call 0x904e 094ee e8a722 call 0xb798 094f1 bfae87 mov di, 0x87ae 094f4 be1e1a mov si, 0x1a1e 094f7 c7040000 mov word ptr [si], 0 094fb c744020000 mov word ptr [si + 2], 0 09500 c744040000 mov word ptr [si + 4], 0 09505 c744060000 mov word ptr [si + 6], 0 0950a c744080000 mov word ptr [si + 8], 0 0950f c7440a0000 mov word ptr [si + 0xa], 0 09514 c7440c0000 mov word ptr [si + 0xc], 0 09519 c7440e0000 mov word ptr [si + 0xe], 0 0951e c744100000 mov word ptr [si + 0x10], 0 09523 e828fb call 0x904e 09526 e86f22 call 0xb798 09529 bfae87 mov di, 0x87ae 0952c be1e1a mov si, 0x1a1e 0952f c7040000 mov word ptr [si], 0 09533 c744020000 mov word ptr [si + 2], 0 09538 c744040000 mov word ptr [si + 4], 0 0953d c744060000 mov word ptr [si + 6], 0 09542 c744080000 mov word ptr [si + 8], 0 09547 c7440a0000 mov word ptr [si + 0xa], 0 0954c c7440c0000 mov word ptr [si + 0xc], 0 09551 c7440e0000 mov word ptr [si + 0xe], 0 09556 c744100000 mov word ptr [si + 0x10], 0 0955b e8f0fa call 0x904e 0955e e83722 call 0xb798 09561 bfae87 mov di, 0x87ae 09564 be1e1a mov si, 0x1a1e 09567 c7040000 mov word ptr [si], 0 0956b c74402e0ff mov word ptr [si + 2], 0xffe0 09570 c744040000 mov word ptr [si + 4], 0 09575 c74406e0ff mov word ptr [si + 6], 0xffe0 0957a c744080000 mov word ptr [si + 8], 0 0957f c7440a0000 mov word ptr [si + 0xa], 0 09584 c7440c0000 mov word ptr [si + 0xc], 0 09589 c7440e0000 mov word ptr [si + 0xe], 0 0958e c744100000 mov word ptr [si + 0x10], 0 09593 e8b8fa call 0x904e 09596 e8ff21 call 0xb798 09599 bfae87 mov di, 0x87ae 0959c be1e1a mov si, 0x1a1e 0959f c7040000 mov word ptr [si], 0 095a3 c744020000 mov word ptr [si + 2], 0 095a8 c744040000 mov word ptr [si + 4], 0 095ad c74406e0ff mov word ptr [si + 6], 0xffe0 095b2 c744080000 mov word ptr [si + 8], 0 095b7 c7440a0000 mov word ptr [si + 0xa], 0 095bc c7440c0000 mov word ptr [si + 0xc], 0 095c1 c7440e0000 mov word ptr [si + 0xe], 0 095c6 c744100000 mov word ptr [si + 0x10], 0 095cb e880fa call 0x904e 095ce e8c721 call 0xb798 095d1 bfae87 mov di, 0x87ae 095d4 be1e1a mov si, 0x1a1e 095d7 c7040000 mov word ptr [si], 0 095db c74402e0ff mov word ptr [si + 2], 0xffe0 095e0 c744040000 mov word ptr [si + 4], 0 095e5 c744060000 mov word ptr [si + 6], 0 095ea c744080000 mov word ptr [si + 8], 0 095ef c7440a0000 mov word ptr [si + 0xa], 0 095f4 c7440c0000 mov word ptr [si + 0xc], 0 095f9 c7440e0000 mov word ptr [si + 0xe], 0 095fe c744100000 mov word ptr [si + 0x10], 0 09603 e848fa call 0x904e 09606 e88f21 call 0xb798 09609 c3 ret Read theatre sun, gravity and atmosphere parameters [0x1d27, 0x1dba) 01d27 be1e1a mov si, 0x1a1e 01d2a 46 inc si 01d2b e850d3 call 0xfffff07e 01d2e e892c6 call 0xffffe3c3 01d31 a38002 mov word ptr [0x280], ax 01d34 e847d3 call 0xfffff07e 01d37 e889c6 call 0xffffe3c3 01d3a a38653 mov word ptr [0x5386], ax 01d3d 050500 add ax, 5 01d40 a39053 mov word ptr [0x5390], ax 01d43 e838d3 call 0xfffff07e 01d46 e87ac6 call 0xffffe3c3 01d49 240f and al, 0xf 01d4b a27d53 mov byte ptr [0x537d], al 01d4e e82dd3 call 0xfffff07e 01d51 e86fc6 call 0xffffe3c3 01d54 3df1ff cmp ax, 0xfff1 01d57 7c03 jl 0x1d5c 01d59 b8f1ff mov ax, 0xfff1 01d5c 3d9cff cmp ax, 0xff9c 01d5f 7f03 jg 0x1d64 01d61 b89cff mov ax, 0xff9c 01d64 a3dc1d mov word ptr [0x1ddc], ax 01d67 e814d3 call 0xfffff07e 01d6a e856c6 call 0xffffe3c3 01d6d 0bc0 or ax, ax 01d6f 7818 js 0x1d89 01d71 3de803 cmp ax, 0x3e8 01d74 7c13 jl 0x1d89 01d76 3d1027 cmp ax, 0x2710 01d79 770e ja 0x1d89 01d7b a31c1e mov word ptr [0x1e1c], ax 01d7e d1e0 shl ax, 1 01d80 99 cdq 01d81 bb0300 mov bx, 3 01d84 f7f3 div bx 01d86 a3221e mov word ptr [0x1e22], ax 01d89 e8f2d2 call 0xfffff07e 01d8c e834c6 call 0xffffe3c3 01d8f 8bd8 mov bx, ax 01d91 83e301 and bx, 1 01d94 881ead1b mov byte ptr [0x1bad], bl 01d98 e8e3d2 call 0xfffff07e 01d9b e825c6 call 0xffffe3c3 01d9e 7219 jb 0x1db9 01da0 0bc0 or ax, ax 01da2 7815 js 0x1db9 01da4 3d0001 cmp ax, 0x100 01da7 7210 jb 0x1db9 01da9 a31e1e mov word ptr [0x1e1e], ax 01dac ba1e00 mov dx, 0x1e 01daf f7e2 mul dx 01db1 bb3200 mov bx, 0x32 01db4 f7f3 div bx 01db6 a37c02 mov word ptr [0x27c], ax 01db9 c3 ret Generate one sky star record [0xc20, 0xc5e) 00c20 bb0040 mov bx, 0x4000 00c23 e82bde call 0xffffea51 00c26 8bd0 mov dx, ax 00c28 e835de call 0xffffea60 00c2b 81ea0020 sub dx, 0x2000 00c2f 268904 mov word ptr es:[si], ax 00c32 26895402 mov word ptr es:[si + 2], dx 00c36 bb0040 mov bx, 0x4000 00c39 e815de call 0xffffea51 00c3c 8bd0 mov dx, ax 00c3e e81fde call 0xffffea60 00c41 81ea0020 sub dx, 0x2000 00c45 26894404 mov word ptr es:[si + 4], ax 00c49 26895406 mov word ptr es:[si + 6], dx 00c4d 33c0 xor ax, ax 00c4f 26894408 mov word ptr es:[si + 8], ax 00c53 26c7440a0008 mov word ptr es:[si + 0xa], 0x800 00c59 2689440c mov word ptr es:[si + 0xc], ax 00c5d c3 ret Initialise star bank [0x266a, 0x2690) 0266a b8ea0e mov ax, 0xeea 0266d 8ec0 mov es, ax 0266f 268b0e0000 mov cx, word ptr es:[0] 02674 befa08 mov si, 0x8fa 02677 83c60e add si, 0xe 0267a 56 push si 0267b 51 push cx 0267c b8ea0e mov ax, 0xeea 0267f 8ec0 mov es, ax 02681 e89ce5 call 0xc20 02684 40 inc ax 02685 2689440c mov word ptr es:[si + 0xc], ax 02689 59 pop cx 0268a 5e pop si 0268b 83c60e add si, 0xe 0268e e2ea loop 0x267a Position and render sky sun [0x2c72, 0x2cc7) 02c72 f706de010020 test word ptr [0x1de], 0x2000 02c78 754d jne 0x2cc7 02c7a be061d mov si, 0x1d06 02c7d 33c0 xor ax, ax 02c7f 8904 mov word ptr [si], ax 02c81 a18002 mov ax, word ptr [0x280] 02c84 e8f9a8 call 0xffffd580 02c87 f7d8 neg ax 02c89 8bc0 mov ax, ax 02c8b bae803 mov dx, 0x3e8 02c8e f7ea imul dx 02c90 81fa0080 cmp dx, 0x8000 02c94 7502 jne 0x2c98 02c96 b4ff mov ah, 0xff 02c98 d1e0 shl ax, 1 02c9a d1d2 rcl dx, 1 02c9c 8916081d mov word ptr [0x1d08], dx 02ca0 a18002 mov ax, word ptr [0x280] 02ca3 e8eba8 call 0xffffd591 02ca6 8bc0 mov ax, ax 02ca8 bae803 mov dx, 0x3e8 02cab f7ea imul dx 02cad 81fa0080 cmp dx, 0x8000 02cb1 7502 jne 0x2cb5 02cb3 b4ff mov ah, 0xff 02cb5 d1e0 shl ax, 1 02cb7 d1d2 rcl dx, 1 02cb9 89160a1d mov word ptr [0x1d0a], dx 02cbd be8444 mov si, 0x4484 02cc0 8b163e1c mov dx, word ptr [0x1c3e] 02cc4 e84e44 call 0x7115 Radar heading, damage and distinct wreck geometry [0x8e7e, 0x8f3a) 08e7e 9c pushf 08e7f 2ea14300 mov ax, word ptr cs:[0x43] 08e83 d1e0 shl ax, 1 08e85 d1e0 shl ax, 1 08e87 89440c mov word ptr [si + 0xc], ax 08e8a 9d popf 08e8b eb51 jmp 0x8ede 08e8d 90 nop 08e8e 83ffff cmp di, -1 08e91 741f je 0x8eb2 08e93 807d1300 cmp byte ptr [di + 0x13], 0 08e97 751d jne 0x8eb6 08e99 807d481e cmp byte ptr [di + 0x48], 0x1e 08e9d 7413 je 0x8eb2 08e9f 807d4815 cmp byte ptr [di + 0x48], 0x15 08ea3 740d je 0x8eb2 08ea5 837d4814 cmp word ptr [di + 0x48], 0x14 08ea9 750b jne 0x8eb6 08eab f745180200 test word ptr [di + 0x18], 2 08eb0 7504 jne 0x8eb6 08eb2 ff062e02 inc word ptr [0x22e] 08eb6 c3 ret 08eb7 83ffff cmp di, -1 08eba 7420 je 0x8edc 08ebc b301 mov bl, 1 08ebe f6451840 test byte ptr [di + 0x18], 0x40 08ec2 7402 je 0x8ec6 08ec4 b306 mov bl, 6 08ec6 f6451880 test byte ptr [di + 0x18], 0x80 08eca 7402 je 0x8ece 08ecc b319 mov bl, 0x19 08ece 8a441b mov al, byte ptr [si + 0x1b] 08ed1 2ac3 sub al, bl 08ed3 7407 je 0x8edc 08ed5 7805 js 0x8edc 08ed7 88441b mov byte ptr [si + 0x1b], al 08eda f8 clc 08edb c3 ret 08edc f9 stc 08edd c3 ret 08ede 7204 jb 0x8ee4 08ee0 ff4434 inc word ptr [si + 0x34] 08ee3 c3 ret 08ee4 e8d0ff call 0x8eb7 08ee7 7201 jb 0x8eea 08ee9 c3 ret 08eea 57 push di 08eeb e8a0ff call 0x8e8e 08eee c6441b00 mov byte ptr [si + 0x1b], 0 08ef2 c744081c0c mov word ptr [si + 8], 0xc1c 08ef7 c7440a0000 mov word ptr [si + 0xa], 0 08efc e8615b call 0xea60 08eff 89440c mov word ptr [si + 0xc], ax 08f02 b86a40 mov ax, 0x406a 08f05 894428 mov word ptr [si + 0x28], ax 08f08 b83241 mov ax, 0x4132 08f0b b83241 mov ax, 0x4132 08f0e 89442a mov word ptr [si + 0x2a], ax 08f11 89442c mov word ptr [si + 0x2c], ax 08f14 c744181100 mov word ptr [si + 0x18], 0x11 08f19 c744482100 mov word ptr [si + 0x48], 0x21 08f1e 56 push si 08f1f bb0c00 mov bx, 0xc 08f22 c606cd0100 mov byte ptr [0x1cd], 0 08f27 e8da12 call 0xa204 08f2a 5e pop si 08f2b 56 push si 08f2c bb0500 mov bx, 5 08f2f c606cd0100 mov byte ptr [0x1cd], 0 08f34 e8d014 call 0xa407 08f37 5e pop si 08f38 5f pop di 08f39 c3 ret Compose outcome image and BIOS text [0xdc8e, 0xdd26) 0dc8e be7ef5 mov si, 0xf57e 0dc91 b80000 mov ax, 0 0dc94 e8d10a call 0xe768 0dc97 891e87f5 mov word ptr [0xf587], bx 0dc9b 730b jae 0xdca8 0dc9d be8bf5 mov si, 0xf58b 0dca0 e85708 call 0xe4fa 0dca3 e81908 call 0xe4bf 0dca6 f9 stc 0dca7 c3 ret 0dca8 8b0e2df5 mov cx, word ptr [0xf52d] 0dcac 0bc9 or cx, cx 0dcae 740b je 0xdcbb 0dcb0 51 push cx 0dcb1 e8beff call 0xdc72 0dcb4 59 pop cx 0dcb5 7204 jb 0xdcbb 0dcb7 7702 ja 0xdcbb 0dcb9 e2f5 loop 0xdcb0 0dcbb e89dff call 0xdc5b 0dcbe a331f5 mov word ptr [0xf531], ax 0dcc1 e897ff call 0xdc5b 0dcc4 a32bf5 mov word ptr [0xf52b], ax 0dcc7 e891ff call 0xdc5b 0dcca bb4001 mov bx, 0x140 0dccd f7e3 mul bx 0dccf 01062bf5 add word ptr [0xf52b], ax 0dcd3 8b1e87f5 mov bx, word ptr [0xf587] 0dcd7 b94000 mov cx, 0x40 0dcda be3ef5 mov si, 0xf53e 0dcdd e8f009 call 0xe6d0 0dce0 e84300 call 0xdd26 0dce3 e875ff call 0xdc5b 0dce6 a32ff5 mov word ptr [0xf52f], ax 0dce9 8b0e31f5 mov cx, word ptr [0xf531] 0dced 0bc9 or cx, cx 0dcef 742d je 0xdd1e 0dcf1 51 push cx 0dcf2 e866ff call 0xdc5b 0dcf5 50 push ax 0dcf6 e862ff call 0xdc5b 0dcf9 5a pop dx 0dcfa 8af2 mov dh, dl 0dcfc 8ad0 mov dl, al 0dcfe 8b1e87f5 mov bx, word ptr [0xf587] 0dd02 b93200 mov cx, 0x32 0dd05 be1e1a mov si, 0x1a1e 0dd08 e8c509 call 0xe6d0 0dd0b 8cd8 mov ax, ds 0dd0d 8ec0 mov es, ax 0dd0f 32c0 xor al, al 0dd11 8b1e2ff5 mov bx, word ptr [0xf52f] 0dd15 8bee mov bp, si 0dd17 b413 mov ah, 0x13 0dd19 cd10 int 0x10 0dd1b 59 pop cx 0dd1c e2d3 loop 0xdcf1 0dd1e 8b1e87f5 mov bx, word ptr [0xf587] 0dd22 e85f09 call 0xe684 0dd25 c3 ret AdLib register output and note protocol [0xe034, 0xe179) 0e034 803e3b1e00 cmp byte ptr [0x1e3b], 0 0e039 7501 jne 0xe03c 0e03b c3 ret 0e03c 52 push dx 0e03d 50 push ax 0e03e ba8803 mov dx, 0x388 0e041 8ac3 mov al, bl 0e043 ee out dx, al 0e044 e8aaff call 0xdff1 0e047 42 inc dx 0e048 58 pop ax 0e049 ee out dx, al 0e04a e893ff call 0xdfe0 0e04d 5a pop dx 0e04e c3 ret 0e04f e8e2ff call 0xe034 0e052 fec3 inc bl 0e054 e2f9 loop 0xe04f 0e056 c3 ret 0e057 b91300 mov cx, 0x13 0e05a b03f mov al, 0x3f 0e05c b340 mov bl, 0x40 0e05e e8eeff call 0xe04f 0e061 b90d00 mov cx, 0xd 0e064 b014 mov al, 0x14 0e066 b353 mov bl, 0x53 0e068 e8e4ff call 0xe04f 0e06b b90800 mov cx, 8 0e06e b00d mov al, 0xd 0e070 b3b0 mov bl, 0xb0 0e072 e8daff call 0xe04f 0e075 b000 mov al, 0 0e077 b301 mov bl, 1 0e079 e8b8ff call 0xe034 0e07c b020 mov al, 0x20 0e07e b301 mov bl, 1 0e080 e8b1ff call 0xe034 0e083 b000 mov al, 0 0e085 b308 mov bl, 8 0e087 e8aaff call 0xe034 0e08a b92000 mov cx, 0x20 0e08d b001 mov al, 1 0e08f b320 mov bl, 0x20 0e091 e8bbff call 0xe04f 0e094 b92000 mov cx, 0x20 0e097 b0f3 mov al, 0xf3 0e099 b360 mov bl, 0x60 0e09b e8b1ff call 0xe04f 0e09e b92000 mov cx, 0x20 0e0a1 b003 mov al, 3 0e0a3 b380 mov bl, 0x80 0e0a5 e8a7ff call 0xe04f 0e0a8 b90800 mov cx, 8 0e0ab b000 mov al, 0 0e0ad b3a0 mov bl, 0xa0 0e0af e89dff call 0xe04f 0e0b2 b020 mov al, 0x20 0e0b4 b3bd mov bl, 0xbd 0e0b6 e87bff call 0xe034 0e0b9 b90800 mov cx, 8 0e0bc b000 mov al, 0 0e0be b3c0 mov bl, 0xc0 0e0c0 e88cff call 0xe04f 0e0c3 b91600 mov cx, 0x16 0e0c6 b000 mov al, 0 0e0c8 b3e0 mov bl, 0xe0 0e0ca e882ff call 0xe04f 0e0cd c3 ret 0e0ce 53 push bx 0e0cf 50 push ax 0e0d0 80c3a0 add bl, 0xa0 0e0d3 e85eff call 0xe034 0e0d6 8ac4 mov al, ah 0e0d8 d0e0 shl al, 1 0e0da d0e0 shl al, 1 0e0dc 0c01 or al, 1 0e0de 0c20 or al, 0x20 0e0e0 80c310 add bl, 0x10 0e0e3 e84eff call 0xe034 0e0e6 58 pop ax 0e0e7 5b pop bx 0e0e8 c3 ret 0e0e9 53 push bx 0e0ea 50 push ax 0e0eb 8ac4 mov al, ah 0e0ed d0e0 shl al, 1 0e0ef d0e0 shl al, 1 0e0f1 0c01 or al, 1 0e0f3 24df and al, 0xdf 0e0f5 80c3b0 add bl, 0xb0 0e0f8 e839ff call 0xe034 0e0fb 58 pop ax 0e0fc 5b pop bx 0e0fd c3 ret 0e0fe b001 mov al, 1 0e100 b3b6 mov bl, 0xb6 0e102 e82fff call 0xe034 0e105 b000 mov al, 0 0e107 b350 mov bl, 0x50 0e109 e828ff call 0xe034 0e10c b000 mov al, 0 0e10e b353 mov bl, 0x53 0e110 e821ff call 0xe034 0e113 c3 ret 0e114 bebdf5 mov si, 0xf5bd 0e117 eb07 jmp 0xe120 0e119 90 nop 0e11a bedaf5 mov si, 0xf5da 0e11d eb01 jmp 0xe120 0e11f 90 nop 0e120 8a1c mov bl, byte ptr [si] 0e122 80fbff cmp bl, 0xff 0e125 7409 je 0xe130 0e127 46 inc si 0e128 8a04 mov al, byte ptr [si] 0e12a e807ff call 0xe034 0e12d 46 inc si 0e12e ebf0 jmp 0xe120 0e130 c3 ret 0e131 be14f6 mov si, 0xf614 0e134 ebea jmp 0xe120 0e136 bec2f6 mov si, 0xf6c2 0e139 ebe5 jmp 0xe120 0e13b bedff6 mov si, 0xf6df 0e13e ebe0 jmp 0xe120 0e140 befcf6 mov si, 0xf6fc 0e143 ebdb jmp 0xe120 0e145 bef7f5 mov si, 0xf5f7 0e148 ebd6 jmp 0xe120 0e14a be31f6 mov si, 0xf631 0e14d ebd1 jmp 0xe120 0e14f 803eb2f500 cmp byte ptr [0xf5b2], 0 0e154 750e jne 0xe164 0e156 b020 mov al, 0x20 0e158 b3bd mov bl, 0xbd 0e15a e8d7fe call 0xe034 0e15d b028 mov al, 0x28 0e15f b3bd mov bl, 0xbd 0e161 e8d0fe call 0xe034 0e164 c3 ret 0e165 be88f6 mov si, 0xf688 0e168 ebb6 jmp 0xe120 0e16a be6bf6 mov si, 0xf66b 0e16d ebb1 jmp 0xe120 0e16f be4ef6 mov si, 0xf64e 0e172 ebac jmp 0xe120 0e174 bea5f6 mov si, 0xf6a5 0e177 eba7 jmp 0xe120 Original quarter-wave sine and cosine [0xd528, 0xd596) 0d528 c60678f300 mov byte ptr [0xf378], 0 0d52d a9ff7f test ax, 0x7fff 0d530 7503 jne 0xd535 0d532 33c0 xor ax, ax 0d534 c3 ret 0d535 c60678f300 mov byte ptr [0xf378], 0 0d53a 0bc0 or ax, ax 0d53c 7906 jns 0xd544 0d53e fe0678f3 inc byte ptr [0xf378] 0d542 f7d8 neg ax 0d544 a90040 test ax, 0x4000 0d547 7407 je 0xd550 0d549 8bd8 mov bx, ax 0d54b b80080 mov ax, 0x8000 0d54e 2bc3 sub ax, bx 0d550 b106 mov cl, 6 0d552 8bd8 mov bx, ax 0d554 d3e8 shr ax, cl 0d556 d1e0 shl ax, 1 0d558 8bf0 mov si, ax 0d55a 06 push es 0d55b b80810 mov ax, 0x1008 0d55e 8ec0 mov es, ax 0d560 268b840200 mov ax, word ptr es:[si + 2] 0d565 262b840000 sub ax, word ptr es:[si] 0d56a 83e33f and bx, 0x3f 0d56d f7e3 mul bx 0d56f bb4000 mov bx, 0x40 0d572 f7f3 div bx 0d574 2603840000 add ax, word ptr es:[si] 0d579 07 pop es 0d57a c3 ret 0d57b 050040 add ax, 0x4000 0d57e eba8 jmp 0xd528 0d580 53 push bx 0d581 e8a4ff call 0xd528 0d584 d1e8 shr ax, 1 0d586 803e78f300 cmp byte ptr [0xf378], 0 0d58b 7402 je 0xd58f 0d58d f7d8 neg ax 0d58f 5b pop bx 0d590 c3 ret 0d591 050040 add ax, 0x4000 0d594 ebea jmp 0xd580 Random colour generator and bounded result [0xea51, 0xea89) 0ea51 52 push dx 0ea52 e80b00 call 0xea60 0ea55 85db test bx, bx 0ea57 7405 je 0xea5e 0ea59 33d2 xor dx, dx 0ea5b f7f3 div bx 0ea5d 92 xchg dx, ax 0ea5e 5a pop dx 0ea5f c3 ret 0ea60 53 push bx 0ea61 51 push cx 0ea62 52 push dx 0ea63 8b1e26f7 mov bx, word ptr [0xf726] 0ea67 8bcb mov cx, bx 0ea69 a128f7 mov ax, word ptr [0xf728] 0ea6c f72622f7 mul word ptr [0xf722] 0ea70 93 xchg bx, ax 0ea71 f72622f7 mul word ptr [0xf722] 0ea75 03da add bx, dx 0ea77 91 xchg cx, ax 0ea78 f72624f7 mul word ptr [0xf724] 0ea7c 03c3 add ax, bx 0ea7e 890e22f7 mov word ptr [0xf722], cx 0ea82 a324f7 mov word ptr [0xf724], ax 0ea85 5a pop dx 0ea86 59 pop cx 0ea87 5b pop bx 0ea88 c3 ret Select generator orb colours [0xbce7, 0xbd21) 0bce7 bf93ef mov di, 0xef93 0bcea e88ced call 0xaa79 0bced 8b05 mov ax, word ptr [di] 0bcef a2b731 mov byte ptr [0x31b7], al 0bcf2 c606b83100 mov byte ptr [0x31b8], 0 0bcf7 f744180008 test word ptr [si + 0x18], 0x800 0bcfc 740e je 0xbd0c 0bcfe 2ef70643000002 test word ptr cs:[0x43], 0x200 0bd05 7405 je 0xbd0c 0bd07 c606b8310f mov byte ptr [0x31b8], 0xf 0bd0c f744180002 test word ptr [si + 0x18], 0x200 0bd11 740e je 0xbd21 0bd13 2ef70643000003 test word ptr cs:[0x43], 0x300 0bd1a 7505 jne 0xbd21 0bd1c 8036b73108 xor byte ptr [0x31b7], 8 Select quality-table row from object flags [0xaa79, 0xaa93) 0aa79 8b05 mov ax, word ptr [di] 0aa7b 83c702 add di, 2 0aa7e 03c0 add ax, ax 0aa80 8b5c18 mov bx, word ptr [si + 0x18] 0aa83 b104 mov cl, 4 0aa85 d3c3 rol bx, cl 0aa87 80e307 and bl, 7 0aa8a f6e3 mul bl 0aa8c 03f8 add di, ax 0aa8e 893e32ec mov word ptr [0xec32], di 0aa92 c3 ret Ground crew collision, shot pose and nearby-player gesture [0x8cfd, 0x8dbc) 08cfd 732c jae 0x8d2b 08cff f744180010 test word ptr [si + 0x18], 0x1000 08d04 7524 jne 0x8d2a 08d06 57 push di 08d07 8b4548 mov ax, word ptr [di + 0x48] 08d0a 03c0 add ax, ax 08d0c bf442d mov di, 0x2d44 08d0f 03f8 add di, ax 08d11 8b05 mov ax, word ptr [di] 08d13 5f pop di 08d14 a90800 test ax, 8 08d17 7511 jne 0x8d2a 08d19 e89b01 call 0x8eb7 08d1c 730c jae 0x8d2a 08d1e 814c180010 or word ptr [si + 0x18], 0x1000 08d23 836418f7 and word ptr [si + 0x18], 0xfff7 08d27 e86401 call 0x8e8e 08d2a c3 ret 08d2b c706136d0100 mov word ptr [0x6d13], 1 08d31 c706156d0600 mov word ptr [0x6d15], 6 08d37 f744180008 test word ptr [si + 0x18], 0x800 08d3c 740c je 0x8d4a 08d3e c706136d0000 mov word ptr [0x6d13], 0 08d44 c706156d0000 mov word ptr [0x6d15], 0 08d4a f744180010 test word ptr [si + 0x18], 0x1000 08d4f 7411 je 0x8d62 08d51 b89970 mov ax, 0x7099 08d54 894428 mov word ptr [si + 0x28], ax 08d57 89442a mov word ptr [si + 0x2a], ax 08d5a 89442c mov word ptr [si + 0x2c], ax 08d5d c7440e0040 mov word ptr [si + 0xe], 0x4000 08d62 c74434007d mov word ptr [si + 0x34], 0x7d00 08d67 56 push si 08d68 e88ce2 call 0x6ff7 08d6b 5e pop si 08d6c 724d jb 0x8dbb 08d6e 0aed or ch, ch 08d70 7549 jne 0x8dbb 08d72 80e1ff and cl, 0xff 08d75 7544 jne 0x8dbb 08d77 803efc0a00 cmp byte ptr [0xafc], 0 08d7c 743d je 0x8dbb 08d7e b8a96e mov ax, 0x6ea9 08d81 394428 cmp word ptr [si + 0x28], ax 08d84 7535 jne 0x8dbb 08d86 a17e0e mov ax, word ptr [0xe7e] 08d89 a3c971 mov word ptr [0x71c9], ax 08d8c a1820e mov ax, word ptr [0xe82] 08d8f a3cb71 mov word ptr [0x71cb], ax 08d92 a1860e mov ax, word ptr [0xe86] 08d95 a3cd71 mov word ptr [0x71cd], ax 08d98 56 push si 08d99 bec971 mov si, 0x71c9 08d9c e88ceb call 0x792b 08d9f 5e pop si 08da0 3dd007 cmp ax, 0x7d0 08da3 7716 ja 0x8dbb 08da5 b8716f mov ax, 0x6f71 08da8 894428 mov word ptr [si + 0x28], ax 08dab 89442a mov word ptr [si + 0x2a], ax 08dae 89442c mov word ptr [si + 0x2c], ax 08db1 f744180008 test word ptr [si + 0x18], 0x800 08db6 7403 je 0x8dbb 08db8 e80430 call 0xbdbf 08dbb c3 ret Select damaged aircraft geometry [0x96db, 0x96fc) 096db f744180001 test word ptr [si + 0x18], 0x100 096e0 7409 je 0x96eb 096e2 b8a147 mov ax, 0x47a1 096e5 894428 mov word ptr [si + 0x28], ax 096e8 89442a mov word ptr [si + 0x2a], ax 096eb c606ce4401 mov byte ptr [0x44ce], 1 096f0 f744180010 test word ptr [si + 0x18], 0x1000 096f5 7405 je 0x96fc 096f7 c606ce4406 mov byte ptr [0x44ce], 6 Select explosion flash stages [0xae0b, 0xae28) 0ae0b 8b5434 mov dx, word ptr [si + 0x34] 0ae0e 83fa03 cmp dx, 3 0ae11 7f14 jg 0xae27 0ae13 b8643d mov ax, 0x3d64 0ae16 83fa02 cmp dx, 2 0ae19 7f03 jg 0xae1e 0ae1b b83c3d mov ax, 0x3d3c 0ae1e 894428 mov word ptr [si + 0x28], ax 0ae21 89442a mov word ptr [si + 0x2a], ax 0ae24 89442c mov word ptr [si + 0x2c], ax 0ae27 c3 ret Select experimental geometry for internal/player aircraft [0x8fb0, 0x8fd2) 08fb0 c606ce4401 mov byte ptr [0x44ce], 1 08fb5 f744180010 test word ptr [si + 0x18], 0x1000 08fba 7405 je 0x8fc1 08fbc c606ce4406 mov byte ptr [0x44ce], 6 08fc1 f744180020 test word ptr [si + 0x18], 0x2000 08fc6 7409 je 0x8fd1 08fc8 b83868 mov ax, 0x6838 08fcb 894428 mov word ptr [si + 0x28], ax 08fce 89442a mov word ptr [si + 0x2a], ax 08fd1 c3 ret Select experimental geometry for parked aircraft [0x97ac, 0x97bd) 097ac f744180020 test word ptr [si + 0x18], 0x2000 097b1 7409 je 0x97bc 097b3 b83868 mov ax, 0x6838 097b6 894428 mov word ptr [si + 0x28], ax 097b9 89442a mov word ptr [si + 0x2a], ax 097bc c3 ret Select object detail/drawing distance [0x7270, 0x73a8) 07270 8b4418 mov ax, word ptr [si + 0x18] 07273 0bc0 or ax, ax 07275 7505 jne 0x727c 07277 0906fe1e or word ptr [0x1efe], ax 0727b c3 ret 0727c 89165b20 mov word ptr [0x205b], dx 07280 e8d7fe call 0x715a 07283 7276 jb 0x72fb 07285 807c1200 cmp byte ptr [si + 0x12], 0 07289 7406 je 0x7291 0728b eb7d jmp 0x730a 0728d 90 nop 0728e eb6c jmp 0x72fc 07290 90 nop 07291 8b5416 mov dx, word ptr [si + 0x16] 07294 8b4414 mov ax, word ptr [si + 0x14] 07297 3b541e cmp dx, word ptr [si + 0x1e] 0729a 7503 jne 0x729f 0729c 3b441c cmp ax, word ptr [si + 0x1c] 0729f 77ed ja 0x728e 072a1 c6065d2000 mov byte ptr [0x205d], 0 072a6 a17e0e mov ax, word ptr [0xe7e] 072a9 8b16800e mov dx, word ptr [0xe80] 072ad d0da rcr dl, 1 072af d1d8 rcr ax, 1 072b1 a3061d mov word ptr [0x1d06], ax 072b4 a1820e mov ax, word ptr [0xe82] 072b7 8b16840e mov dx, word ptr [0xe84] 072bb d0da rcr dl, 1 072bd d1d8 rcr ax, 1 072bf a3081d mov word ptr [0x1d08], ax 072c2 a1860e mov ax, word ptr [0xe86] 072c5 8b16880e mov dx, word ptr [0xe88] 072c9 d0da rcr dl, 1 072cb d1d8 rcr ax, 1 072cd a30a1d mov word ptr [0x1d0a], ax 072d0 8b4428 mov ax, word ptr [si + 0x28] 072d3 a35f20 mov word ptr [0x205f], ax 072d6 8a4412 mov al, byte ptr [si + 0x12] 072d9 2a441a sub al, byte ptr [si + 0x1a] 072dc 7906 jns 0x72e4 072de e8d4fd call 0x70b5 072e1 eb04 jmp 0x72e7 072e3 90 nop 072e4 e8fffd call 0x70e6 072e7 8b165b20 mov dx, word ptr [0x205b] 072eb 8b365f20 mov si, word ptr [0x205f] 072ef bb0220 mov bx, 0x2002 072f2 e84feb call 0x5e44 072f5 c6065d2000 mov byte ptr [0x205d], 0 072fa c3 ret 072fb c3 ret 072fc c6065d2004 mov byte ptr [0x205d], 4 07301 8b442a mov ax, word ptr [si + 0x2a] 07304 a35f20 mov word ptr [0x205f], ax 07307 eb57 jmp 0x7360 07309 90 nop 0730a c6065d2004 mov byte ptr [0x205d], 4 0730f 8b442a mov ax, word ptr [si + 0x2a] 07312 a35f20 mov word ptr [0x205f], ax 07315 807c1201 cmp byte ptr [si + 0x12], 1 07319 7513 jne 0x732e 0731b 8b5416 mov dx, word ptr [si + 0x16] 0731e 8b4414 mov ax, word ptr [si + 0x14] 07321 3b5422 cmp dx, word ptr [si + 0x22] 07324 7503 jne 0x7329 07326 3b4420 cmp ax, word ptr [si + 0x20] 07329 7713 ja 0x733e 0732b eb33 jmp 0x7360 0732d 90 nop 0732e 8b5416 mov dx, word ptr [si + 0x16] 07331 8b4414 mov ax, word ptr [si + 0x14] 07334 3b5426 cmp dx, word ptr [si + 0x26] 07337 7503 jne 0x733c 07339 3b4424 cmp ax, word ptr [si + 0x24] 0733c 77bd ja 0x72fb 0733e 833efa1e00 cmp word ptr [0x1efa], 0 07343 7410 je 0x7355 07345 f744180001 test word ptr [si + 0x18], 0x100 0734a 7509 jne 0x7355 0734c a1fa1e mov ax, word ptr [0x1efa] 0734f 39060f0b cmp word ptr [0xb0f], ax 07353 7fa6 jg 0x72fb 07355 c6065d2008 mov byte ptr [0x205d], 8 0735a 8b442c mov ax, word ptr [si + 0x2c] 0735d a35f20 mov word ptr [0x205f], ax 07360 a17e0e mov ax, word ptr [0xe7e] 07363 8b16800e mov dx, word ptr [0xe80] 07367 8a0e5d20 mov cl, byte ptr [0x205d] 0736b 32ed xor ch, ch 0736d 41 inc cx 0736e d1da rcr dx, 1 07370 d1d8 rcr ax, 1 07372 e2fa loop 0x736e 07374 a3061d mov word ptr [0x1d06], ax 07377 a1820e mov ax, word ptr [0xe82] 0737a 8b16840e mov dx, word ptr [0xe84] 0737e 32ed xor ch, ch 07380 8a0e5d20 mov cl, byte ptr [0x205d] 07384 41 inc cx 07385 d1da rcr dx, 1 07387 d1d8 rcr ax, 1 07389 e2fa loop 0x7385 0738b a3081d mov word ptr [0x1d08], ax 0738e a1860e mov ax, word ptr [0xe86] 07391 8b16880e mov dx, word ptr [0xe88] 07395 32ed xor ch, ch 07397 8a0e5d20 mov cl, byte ptr [0x205d] 0739b 41 inc cx 0739c d1da rcr dx, 1 0739e d1d8 rcr ax, 1 073a0 e2fa loop 0x739c 073a2 a30a1d mov word ptr [0x1d0a], ax 073a5 e92eff jmp 0x72d6 Select viewing octant and dispatch model commands [0x5e44, 0x5fc2) 05e44 52 push dx 05e45 53 push bx 05e46 56 push si 05e47 be061d mov si, 0x1d06 05e4a bb1420 mov bx, 0x2014 05e4d c70658200000 mov word ptr [0x2058], 0 05e53 8b04 mov ax, word ptr [si] 05e55 8b17 mov dx, word ptr [bx] 05e57 f7ea imul dx 05e59 81fa0080 cmp dx, 0x8000 05e5d 7502 jne 0x5e61 05e5f b4ff mov ah, 0xff 05e61 d1e0 shl ax, 1 05e63 d1d2 rcl dx, 1 05e65 8bca mov cx, dx 05e67 8b4402 mov ax, word ptr [si + 2] 05e6a 8b5706 mov dx, word ptr [bx + 6] 05e6d f7ea imul dx 05e6f 81fa0080 cmp dx, 0x8000 05e73 7502 jne 0x5e77 05e75 b4ff mov ah, 0xff 05e77 d1e0 shl ax, 1 05e79 d1d2 rcl dx, 1 05e7b 03ca add cx, dx 05e7d 8b4404 mov ax, word ptr [si + 4] 05e80 8b570c mov dx, word ptr [bx + 0xc] 05e83 f7ea imul dx 05e85 81fa0080 cmp dx, 0x8000 05e89 7502 jne 0x5e8d 05e8b b4ff mov ah, 0xff 05e8d d1e0 shl ax, 1 05e8f d1d2 rcl dx, 1 05e91 03ca add cx, dx 05e93 d1e1 shl cx, 1 05e95 d1165820 rcl word ptr [0x2058] 05e99 8b04 mov ax, word ptr [si] 05e9b 8b5702 mov dx, word ptr [bx + 2] 05e9e f7ea imul dx 05ea0 81fa0080 cmp dx, 0x8000 05ea4 7502 jne 0x5ea8 05ea6 b4ff mov ah, 0xff 05ea8 d1e0 shl ax, 1 05eaa d1d2 rcl dx, 1 05eac 8bca mov cx, dx 05eae 8b4402 mov ax, word ptr [si + 2] 05eb1 8b5708 mov dx, word ptr [bx + 8] 05eb4 f7ea imul dx 05eb6 81fa0080 cmp dx, 0x8000 05eba 7502 jne 0x5ebe 05ebc b4ff mov ah, 0xff 05ebe d1e0 shl ax, 1 05ec0 d1d2 rcl dx, 1 05ec2 03ca add cx, dx 05ec4 8b4404 mov ax, word ptr [si + 4] 05ec7 8b570e mov dx, word ptr [bx + 0xe] 05eca f7ea imul dx 05ecc 81fa0080 cmp dx, 0x8000 05ed0 7502 jne 0x5ed4 05ed2 b4ff mov ah, 0xff 05ed4 d1e0 shl ax, 1 05ed6 d1d2 rcl dx, 1 05ed8 03ca add cx, dx 05eda d1e1 shl cx, 1 05edc d1165820 rcl word ptr [0x2058] 05ee0 8b04 mov ax, word ptr [si] 05ee2 8b5704 mov dx, word ptr [bx + 4] 05ee5 f7ea imul dx 05ee7 81fa0080 cmp dx, 0x8000 05eeb 7502 jne 0x5eef 05eed b4ff mov ah, 0xff 05eef d1e0 shl ax, 1 05ef1 d1d2 rcl dx, 1 05ef3 8bca mov cx, dx 05ef5 8b4402 mov ax, word ptr [si + 2] 05ef8 8b570a mov dx, word ptr [bx + 0xa] 05efb f7ea imul dx 05efd 81fa0080 cmp dx, 0x8000 05f01 7502 jne 0x5f05 05f03 b4ff mov ah, 0xff 05f05 d1e0 shl ax, 1 05f07 d1d2 rcl dx, 1 05f09 03ca add cx, dx 05f0b 8b4404 mov ax, word ptr [si + 4] 05f0e 8b5710 mov dx, word ptr [bx + 0x10] 05f11 f7ea imul dx 05f13 81fa0080 cmp dx, 0x8000 05f17 7502 jne 0x5f1b 05f19 b4ff mov ah, 0xff 05f1b d1e0 shl ax, 1 05f1d d1d2 rcl dx, 1 05f1f 03ca add cx, dx 05f21 d1e1 shl cx, 1 05f23 d1165820 rcl word ptr [0x2058] 05f27 5e pop si 05f28 8936ac20 mov word ptr [0x20ac], si 05f2c 8b4406 mov ax, word ptr [si + 6] 05f2f 8bc8 mov cx, ax 05f31 8b165820 mov dx, word ptr [0x2058] 05f35 f6e2 mul dl 05f37 03c0 add ax, ax 05f39 03c0 add ax, ax 05f3b 050800 add ax, 8 05f3e 03f0 add si, ax 05f40 5b pop bx 05f41 5a pop dx 05f42 0bc9 or cx, cx 05f44 745b je 0x5fa1 05f46 51 push cx 05f47 56 push si 05f48 c606c71f00 mov byte ptr [0x1fc7], 0 05f4d 8b4402 mov ax, word ptr [si + 2] 05f50 8bce mov cx, si 05f52 8b34 mov si, word ptr [si] 05f54 0bf6 or si, si 05f56 7909 jns 0x5f61 05f58 2e800e7b1405 or byte ptr cs:[0x147b], 5 05f5e eb1e jmp 0x5f7e 05f60 90 nop 05f61 83fe09 cmp si, 9 05f64 7809 js 0x5f6f 05f66 2e800e7b1406 or byte ptr cs:[0x147b], 6 05f6c eb10 jmp 0x5f7e 05f6e 90 nop 05f6f f7c60100 test si, 1 05f73 75f1 jne 0x5f66 05f75 83e60e and si, 0xe 05f78 81c68923 add si, 0x2389 05f7c ff24 jmp word ptr [si] 05f7e 803e5d2000 cmp byte ptr [0x205d], 0 05f83 7415 je 0x5f9a 05f85 833e401c00 cmp word ptr [0x1c40], 0 05f8a 7507 jne 0x5f93 05f8c 803ec71f00 cmp byte ptr [0x1fc7], 0 05f91 750f jne 0x5fa2 05f93 803ec71f02 cmp byte ptr [0x1fc7], 2 05f98 7408 je 0x5fa2 05f9a 5e pop si 05f9b 59 pop cx 05f9c 83c604 add si, 4 05f9f e2a5 loop 0x5f46 05fa1 c3 ret 05fa2 5e pop si 05fa3 59 pop cx 05fa4 f9 stc 05fa5 c3 ret 05fa6 8bf0 mov si, ax 05fa8 e862fe call 0x5e0d 05fab ebd1 jmp 0x5f7e 05fad 8bf0 mov si, ax 05faf e8d7fc call 0x5c89 05fb2 ebca jmp 0x5f7e 05fb4 8bf0 mov si, ax 05fb6 e88cfd call 0x5d45 05fb9 ebc3 jmp 0x5f7e 05fbb 8bf0 mov si, ax 05fbd e8c3fb call 0x5b83 05fc0 ebbc jmp 0x5f7e Transform polygon vertices [0x5b83, 0x5c89) 05b83 52 push dx 05b84 56 push si 05b85 8b0c mov cx, word ptr [si] 05b87 890e6529 mov word ptr [0x2965], cx 05b8b 53 push bx 05b8c 8b5c02 mov bx, word ptr [si + 2] 05b8f 8ac3 mov al, bl 05b91 0aff or bh, bh 05b93 7402 je 0x5b97 05b95 8a07 mov al, byte ptr [bx] 05b97 a28b1b mov byte ptr [0x1b8b], al 05b9a 5b pop bx 05b9b 83c604 add si, 4 05b9e c706032c0000 mov word ptr [0x2c03], 0 05ba4 c7060d2cff7f mov word ptr [0x2c0d], 0x7fff 05baa c7060f2c0180 mov word ptr [0x2c0f], 0x8001 05bb0 0bc9 or cx, cx 05bb2 7503 jne 0x5bb7 05bb4 5e pop si 05bb5 5a pop dx 05bb6 c3 ret 05bb7 51 push cx 05bb8 53 push bx 05bb9 56 push si 05bba 52 push dx 05bbb 53 push bx 05bbc 8cd8 mov ax, ds 05bbe 8ec0 mov es, ax 05bc0 803e5d2000 cmp byte ptr [0x205d], 0 05bc5 7413 je 0x5bda 05bc7 8a0e5d20 mov cl, byte ptr [0x205d] 05bcb ad lodsw ax, word ptr [si] 05bcc d3f8 sar ax, cl 05bce 8bd0 mov dx, ax 05bd0 ad lodsw ax, word ptr [si] 05bd1 d3f8 sar ax, cl 05bd3 8be8 mov bp, ax 05bd5 ad lodsw ax, word ptr [si] 05bd6 d3f8 sar ax, cl 05bd8 eb07 jmp 0x5be1 05bda ad lodsw ax, word ptr [si] 05bdb 8bd0 mov dx, ax 05bdd ad lodsw ax, word ptr [si] 05bde 8be8 mov bp, ax 05be0 ad lodsw ax, word ptr [si] 05be1 8b36ac20 mov si, word ptr [0x20ac] 05be5 bf232a mov di, 0x2a23 05be8 033e032c add di, word ptr [0x2c03] 05bec b90300 mov cx, 3 05bef f3a5 rep movsw word ptr es:[di], word ptr [si] 05bf1 8bf8 mov di, ax 05bf3 8bf3 mov si, bx 05bf5 bb232a mov bx, 0x2a23 05bf8 031e032c add bx, word ptr [0x2c03] 05bfc 8bca mov cx, dx 05bfe ad lodsw ax, word ptr [si] 05bff f7e9 imul cx 05c01 d1c2 rol dx, 1 05c03 0117 add word ptr [bx], dx 05c05 ad lodsw ax, word ptr [si] 05c06 f7ed imul bp 05c08 d1c2 rol dx, 1 05c0a 0117 add word ptr [bx], dx 05c0c ad lodsw ax, word ptr [si] 05c0d f7ef imul di 05c0f d1c2 rol dx, 1 05c11 0117 add word ptr [bx], dx 05c13 8b07 mov ax, word ptr [bx] 05c15 3b060f2c cmp ax, word ptr [0x2c0f] 05c19 7e03 jle 0x5c1e 05c1b a30f2c mov word ptr [0x2c0f], ax 05c1e 3b060d2c cmp ax, word ptr [0x2c0d] 05c22 7d09 jge 0x5c2d 05c24 a30d2c mov word ptr [0x2c0d], ax 05c27 a1032c mov ax, word ptr [0x2c03] 05c2a a3112c mov word ptr [0x2c11], ax 05c2d 83c302 add bx, 2 05c30 ad lodsw ax, word ptr [si] 05c31 f7e9 imul cx 05c33 d1c2 rol dx, 1 05c35 0117 add word ptr [bx], dx 05c37 ad lodsw ax, word ptr [si] 05c38 f7ed imul bp 05c3a d1c2 rol dx, 1 05c3c 0117 add word ptr [bx], dx 05c3e ad lodsw ax, word ptr [si] 05c3f f7ef imul di 05c41 d1c2 rol dx, 1 05c43 0117 add word ptr [bx], dx 05c45 83c302 add bx, 2 05c48 ad lodsw ax, word ptr [si] 05c49 f7e9 imul cx 05c4b d1c2 rol dx, 1 05c4d 0117 add word ptr [bx], dx 05c4f ad lodsw ax, word ptr [si] 05c50 f7ed imul bp 05c52 d1c2 rol dx, 1 05c54 0117 add word ptr [bx], dx 05c56 ad lodsw ax, word ptr [si] 05c57 f7ef imul di 05c59 d1c2 rol dx, 1 05c5b 0117 add word ptr [bx], dx 05c5d 5b pop bx 05c5e 5a pop dx 05c5f 52 push dx 05c60 8bda mov bx, dx 05c62 be232a mov si, 0x2a23 05c65 0336032c add si, word ptr [0x2c03] 05c69 8306032c06 add word ptr [0x2c03], 6 05c6e 5a pop dx 05c6f 5e pop si 05c70 5b pop bx 05c71 83c606 add si, 6 05c74 59 pop cx 05c75 e20f loop 0x5c86 05c77 53 push bx 05c78 52 push dx 05c79 8bda mov bx, dx 05c7b be232a mov si, 0x2a23 05c7e e844fe call 0x5ac5 05c81 5a pop dx 05c82 5b pop bx 05c83 5e pop si 05c84 5a pop dx 05c85 c3 ret 05c86 e92eff jmp 0x5bb7 Transform circles and scale diameters [0x5d45, 0x5e0d) 05d45 52 push dx 05d46 56 push si 05d47 8b0c mov cx, word ptr [si] 05d49 83c602 add si, 2 05d4c 0bc9 or cx, cx 05d4e 7503 jne 0x5d53 05d50 5e pop si 05d51 5a pop dx 05d52 c3 ret 05d53 51 push cx 05d54 53 push bx 05d55 56 push si 05d56 52 push dx 05d57 53 push bx 05d58 8b4406 mov ax, word ptr [si + 6] 05d5b 8a0e5d20 mov cl, byte ptr [0x205d] 05d5f d3e8 shr ax, cl 05d61 a38620 mov word ptr [0x2086], ax 05d64 53 push bx 05d65 8b5c08 mov bx, word ptr [si + 8] 05d68 8ac3 mov al, bl 05d6a 0aff or bh, bh 05d6c 7402 je 0x5d70 05d6e 8a07 mov al, byte ptr [bx] 05d70 5b pop bx 05d71 a28b1b mov byte ptr [0x1b8b], al 05d74 8cd8 mov ax, ds 05d76 8ec0 mov es, ax 05d78 803e5d2000 cmp byte ptr [0x205d], 0 05d7d 7413 je 0x5d92 05d7f 8a0e5d20 mov cl, byte ptr [0x205d] 05d83 ad lodsw ax, word ptr [si] 05d84 d3f8 sar ax, cl 05d86 8bd0 mov dx, ax 05d88 ad lodsw ax, word ptr [si] 05d89 d3f8 sar ax, cl 05d8b 8be8 mov bp, ax 05d8d ad lodsw ax, word ptr [si] 05d8e d3f8 sar ax, cl 05d90 eb07 jmp 0x5d99 05d92 ad lodsw ax, word ptr [si] 05d93 8bd0 mov dx, ax 05d95 ad lodsw ax, word ptr [si] 05d96 8be8 mov bp, ax 05d98 ad lodsw ax, word ptr [si] 05d99 8b36ac20 mov si, word ptr [0x20ac] 05d9d bf9020 mov di, 0x2090 05da0 b90300 mov cx, 3 05da3 f3a5 rep movsw word ptr es:[di], word ptr [si] 05da5 8bf8 mov di, ax 05da7 8bf3 mov si, bx 05da9 bb9020 mov bx, 0x2090 05dac 8bca mov cx, dx 05dae ad lodsw ax, word ptr [si] 05daf f7e9 imul cx 05db1 d1c2 rol dx, 1 05db3 0117 add word ptr [bx], dx 05db5 ad lodsw ax, word ptr [si] 05db6 f7ed imul bp 05db8 d1c2 rol dx, 1 05dba 0117 add word ptr [bx], dx 05dbc ad lodsw ax, word ptr [si] 05dbd f7ef imul di 05dbf d1c2 rol dx, 1 05dc1 0117 add word ptr [bx], dx 05dc3 83c302 add bx, 2 05dc6 ad lodsw ax, word ptr [si] 05dc7 f7e9 imul cx 05dc9 d1c2 rol dx, 1 05dcb 0117 add word ptr [bx], dx 05dcd ad lodsw ax, word ptr [si] 05dce f7ed imul bp 05dd0 d1c2 rol dx, 1 05dd2 0117 add word ptr [bx], dx 05dd4 ad lodsw ax, word ptr [si] 05dd5 f7ef imul di 05dd7 d1c2 rol dx, 1 05dd9 0117 add word ptr [bx], dx 05ddb 83c302 add bx, 2 05dde ad lodsw ax, word ptr [si] 05ddf f7e9 imul cx 05de1 d1c2 rol dx, 1 05de3 0117 add word ptr [bx], dx 05de5 ad lodsw ax, word ptr [si] 05de6 f7ed imul bp 05de8 d1c2 rol dx, 1 05dea 0117 add word ptr [bx], dx 05dec ad lodsw ax, word ptr [si] 05ded f7ef imul di 05def d1c2 rol dx, 1 05df1 0117 add word ptr [bx], dx 05df3 5b pop bx 05df4 5a pop dx 05df5 52 push dx 05df6 8bda mov bx, dx 05df8 be9020 mov si, 0x2090 05dfb e858fd call 0x5b56 05dfe 5a pop dx 05dff 5e pop si 05e00 5b pop bx 05e01 83c60a add si, 0xa 05e04 59 pop cx 05e05 e203 loop 0x5e0a 05e07 5e pop si 05e08 5a pop dx 05e09 c3 ret 05e0a e946ff jmp 0x5d53 Project disc centre and diameter [0x4fa8, 0x4fee) 04fa8 8b3c mov di, word ptr [si] 04faa 0bff or di, di 04fac 783e js 0x4fec 04fae 8b4f0c mov cx, word ptr [bx + 0xc] 04fb1 3bcf cmp cx, di 04fb3 7937 jns 0x4fec 04fb5 8b4402 mov ax, word ptr [si + 2] 04fb8 f7d8 neg ax 04fba f7e9 imul cx 04fbc f7ff idiv di 04fbe 034710 add ax, word ptr [bx + 0x10] 04fc1 a38220 mov word ptr [0x2082], ax 04fc4 a18620 mov ax, word ptr [0x2086] 04fc7 f7e9 imul cx 04fc9 f7ff idiv di 04fcb a38620 mov word ptr [0x2086], ax 04fce 8b4f0e mov cx, word ptr [bx + 0xe] 04fd1 3bcf cmp cx, di 04fd3 7917 jns 0x4fec 04fd5 8b4404 mov ax, word ptr [si + 4] 04fd8 f7d8 neg ax 04fda f7e9 imul cx 04fdc f7ff idiv di 04fde 034712 add ax, word ptr [bx + 0x12] 04fe1 a38420 mov word ptr [0x2084], ax 04fe4 56 push si 04fe5 8bf3 mov si, bx 04fe7 e85b1b call 0x6b45 04fea 5e pop si 04feb c3 ret 04fec f9 stc 04fed c3 ret Rasterize disc using half-diameter extents [0x6b45, 0x6d30) 06b45 8b1e8420 mov bx, word ptr [0x2084] 06b49 a18620 mov ax, word ptr [0x2086] 06b4c 3d0004 cmp ax, 0x400 06b4f 7c03 jl 0x6b54 06b51 b8ff03 mov ax, 0x3ff 06b54 50 push ax 06b55 ba55b1 mov dx, 0xb155 06b58 f7e2 mul dx 06b5a 89168020 mov word ptr [0x2080], dx 06b5e 58 pop ax 06b5f d1fa sar dx, 1 06b61 2bda sub bx, dx 06b63 3b5c06 cmp bx, word ptr [si + 6] 06b66 7f0f jg 0x6b77 06b68 8b1e8420 mov bx, word ptr [0x2084] 06b6c 03da add bx, dx 06b6e 3b5c02 cmp bx, word ptr [si + 2] 06b71 7c04 jl 0x6b77 06b73 0bc0 or ax, ax 06b75 7904 jns 0x6b7b 06b77 c3 ret 06b78 e9ff00 jmp 0x6c7a 06b7b 3d1100 cmp ax, 0x11 06b7e 7903 jns 0x6b83 06b80 e90501 jmp 0x6c88 06b83 bace03 mov dx, 0x3ce 06b86 8a268b1b mov ah, byte ptr [0x1b8b] 06b8a 32c0 xor al, al 06b8c ef out dx, ax 06b8d b8010f mov ax, 0xf01 06b90 ef out dx, ax 06b91 b400 mov ah, 0 06b93 b003 mov al, 3 06b95 ef out dx, ax 06b96 b80503 mov ax, 0x305 06b99 ef out dx, ax 06b9a a18420 mov ax, word ptr [0x2084] 06b9d ba5000 mov dx, 0x50 06ba0 f7ea imul dx 06ba2 8bd8 mov bx, ax 06ba4 0bd2 or dx, dx 06ba6 7907 jns 0x6baf 06ba8 f7da neg dx 06baa f7d8 neg ax 06bac 83da00 sbb dx, 0 06baf 0bd2 or dx, dx 06bb1 75c5 jne 0x6b78 06bb3 0906fe1e or word ptr [0x1efe], ax 06bb7 b800a0 mov ax, 0xa000 06bba 8ec0 mov es, ax 06bbc 891e4e21 mov word ptr [0x214e], bx 06bc0 891e5021 mov word ptr [0x2150], bx 06bc4 8b1e8620 mov bx, word ptr [0x2086] 06bc8 ba780b mov dx, 0xb78 06bcb 33c0 xor ax, ax 06bcd e86b7c call 0xe83b 06bd0 a34821 mov word ptr [0x2148], ax 06bd3 89164a21 mov word ptr [0x214a], dx 06bd7 b90400 mov cx, 4 06bda d1e0 shl ax, 1 06bdc d1d2 rcl dx, 1 06bde e2fa loop 0x6bda 06be0 89164c21 mov word ptr [0x214c], dx 06be4 a18620 mov ax, word ptr [0x2086] 06be7 8bd8 mov bx, ax 06be9 d1e8 shr ax, 1 06beb 43 inc bx 06bec d1eb shr bx, 1 06bee 031e8220 add bx, word ptr [0x2082] 06bf2 f7d8 neg ax 06bf4 03068220 add ax, word ptr [0x2082] 06bf8 a3831b mov word ptr [0x1b83], ax 06bfb 43 inc bx 06bfc 891e871b mov word ptr [0x1b87], bx 06c00 8b3e4e21 mov di, word ptr [0x214e] 06c04 e89dfa call 0x66a4 06c07 33c0 xor ax, ax 06c09 50 push ax 06c0a 50 push ax 06c0b 8b0e8020 mov cx, word ptr [0x2080] 06c0f 41 inc cx 06c10 d1e9 shr cx, 1 06c12 7464 je 0x6c78 06c14 58 pop ax 06c15 5a pop dx 06c16 03064821 add ax, word ptr [0x2148] 06c1a 13164a21 adc dx, word ptr [0x214a] 06c1e 52 push dx 06c1f 50 push ax 06c20 8b3e4e21 mov di, word ptr [0x214e] 06c24 83c750 add di, 0x50 06c27 3b7c16 cmp di, word ptr [si + 0x16] 06c2a 7c03 jl 0x6c2f 06c2c 83ef50 sub di, 0x50 06c2f 893e4e21 mov word ptr [0x214e], di 06c33 8bc2 mov ax, dx 06c35 56 push si 06c36 e85d69 call 0xd596 06c39 5e pop si 06c3a 51 push cx 06c3b b105 mov cl, 5 06c3d d3e0 shl ax, cl 06c3f 8b1e4c21 mov bx, word ptr [0x214c] 06c43 33d2 xor dx, dx 06c45 f7f3 div bx 06c47 50 push ax 06c48 40 inc ax 06c49 d1e8 shr ax, 1 06c4b 03068220 add ax, word ptr [0x2082] 06c4f 40 inc ax 06c50 a3871b mov word ptr [0x1b87], ax 06c53 58 pop ax 06c54 d1e8 shr ax, 1 06c56 f7d8 neg ax 06c58 03068220 add ax, word ptr [0x2082] 06c5c a3831b mov word ptr [0x1b83], ax 06c5f e842fa call 0x66a4 06c62 8b3e5021 mov di, word ptr [0x2150] 06c66 83ef50 sub di, 0x50 06c69 7903 jns 0x6c6e 06c6b 83c750 add di, 0x50 06c6e 893e5021 mov word ptr [0x2150], di 06c72 e82ffa call 0x66a4 06c75 59 pop cx 06c76 e29c loop 0x6c14 06c78 58 pop ax 06c79 58 pop ax 06c7a bace03 mov dx, 0x3ce 06c7d b80500 mov ax, 5 06c80 ef out dx, ax 06c81 33c0 xor ax, ax 06c83 ef out dx, ax 06c84 40 inc ax 06c85 ef out dx, ax 06c86 f8 clc 06c87 c3 ret 06c88 a18420 mov ax, word ptr [0x2084] 06c8b 8b1e8220 mov bx, word ptr [0x2082] 06c8f 3b1c cmp bx, word ptr [si] 06c91 78f4 js 0x6c87 06c93 3b5c04 cmp bx, word ptr [si + 4] 06c96 79ef jns 0x6c87 06c98 3b4402 cmp ax, word ptr [si + 2] 06c9b 78ea js 0x6c87 06c9d 3b4406 cmp ax, word ptr [si + 6] 06ca0 79e5 jns 0x6c87 06ca2 52 push dx 06ca3 ba5000 mov dx, 0x50 06ca6 f7e2 mul dx 06ca8 b103 mov cl, 3 06caa 5a pop dx 06cab 8aeb mov ch, bl 06cad d3eb shr bx, cl 06caf 031e901b add bx, word ptr [0x1b90] 06cb3 03d8 add bx, ax 06cb5 8acd mov cl, ch 06cb7 80e107 and cl, 7 06cba 80f107 xor cl, 7 06cbd b800a0 mov ax, 0xa000 06cc0 8ec0 mov es, ax 06cc2 b401 mov ah, 1 06cc4 bace03 mov dx, 0x3ce 06cc7 8a268b1b mov ah, byte ptr [0x1b8b] 06ccb 32c0 xor al, al 06ccd ef out dx, ax 06cce b8010f mov ax, 0xf01 06cd1 ef out dx, ax 06cd2 b400 mov ah, 0 06cd4 b003 mov al, 3 06cd6 ef out dx, ax 06cd7 b80503 mov ax, 0x305 06cda ef out dx, ax 06cdb 4b dec bx 06cdc 8bfb mov di, bx 06cde 32ed xor ch, ch 06ce0 f7d9 neg cx 06ce2 83c107 add cx, 7 06ce5 890e5221 mov word ptr [0x2152], cx 06ce9 8b1e8620 mov bx, word ptr [0x2086] 06ced d1e3 shl bx, 1 06cef 81c36323 add bx, 0x2363 06cf3 8b37 mov si, word ptr [bx] 06cf5 8b0c mov cx, word ptr [si] 06cf7 8bc1 mov ax, cx 06cf9 83c602 add si, 2 06cfc 8b1c mov bx, word ptr [si] 06cfe 8b4402 mov ax, word ptr [si + 2] 06d01 83c604 add si, 4 06d04 33d2 xor dx, dx 06d06 51 push cx 06d07 8b0e5221 mov cx, word ptr [0x2152] 06d0b 0bc9 or cx, cx 06d0d 7406 je 0x6d15 06d0f d1e8 shr ax, 1 06d11 d1da rcr dx, 1 06d13 e2fa loop 0x6d0f 06d15 59 pop cx 06d16 268621 xchg byte ptr es:[bx + di], ah 06d19 26864101 xchg byte ptr es:[bx + di + 1], al 06d1d 26867102 xchg byte ptr es:[bx + di + 2], dh 06d21 e2d9 loop 0x6cfc 06d23 bace03 mov dx, 0x3ce 06d26 b80500 mov ax, 5 06d29 ef out dx, ax 06d2a 33c0 xor ax, ax 06d2c ef out dx, ax 06d2d 40 inc ax 06d2e ef out dx, ax 06d2f c3 ret MOAG.EXE SHA-256 6d8c922d59a873073796b367a2a40993fcaa5e763ed2ca907a945981f0c5bc32 Read and display the three high-score tables [0xe9bd, 0xef6a) 0e9bd 1425 adc al, 0x25 0e9bf 7cf2 jl 0xe9b3 0e9c1 5e pop si 0e9c2 5d pop bp 0e9c3 cb retf 0e9c4 55 push bp 0e9c5 8bec mov bp, sp 0e9c7 56 push si 0e9c8 8b7606 mov si, word ptr [bp + 6] 0e9cb 8bc6 mov ax, si 0e9cd 050c00 add ax, 0xc 0e9d0 50 push ax 0e9d1 b81700 mov ax, 0x17 0e9d4 50 push ax 0e9d5 9adb013d0d lcall 0xd3d, 0x1db 0e9da 59 pop cx 0e9db 59 pop cx 0e9dc b88000 mov ax, 0x80 0e9df 50 push ax 0e9e0 8bc6 mov ax, si 0e9e2 ba0600 mov dx, 6 0e9e5 f7ea imul dx 0e9e7 8bd8 mov bx, ax 0e9e9 ffb7f024 push word ptr [bx + 0x24f0] 0e9ed 9ad9033d0d lcall 0xd3d, 0x3d9 0e9f2 59 pop cx 0e9f3 59 pop cx 0e9f4 5e pop si 0e9f5 5d pop bp 0e9f6 cb retf 0e9f7 55 push bp 0e9f8 8bec mov bp, sp 0e9fa 83ec06 sub sp, 6 0e9fd 56 push si 0e9fe 57 push di 0e9ff bf0600 mov di, 6 0ea02 b80100 mov ax, 1 0ea05 50 push ax 0ea06 b80300 mov ax, 3 0ea09 50 push ax 0ea0a b80600 mov ax, 6 0ea0d 50 push ax 0ea0e b88026 mov ax, 0x2680 0ea11 50 push ax 0ea12 b81000 mov ax, 0x10 0ea15 50 push ax 0ea16 b84b00 mov ax, 0x4b 0ea19 50 push ax 0ea1a 8bc7 mov ax, di 0ea1c 47 inc di 0ea1d 50 push ax 0ea1e b80300 mov ax, 3 0ea21 50 push ax 0ea22 9ae803c10c lcall 0xcc1, 0x3e8 0ea27 83c410 add sp, 0x10 0ea2a b86b25 mov ax, 0x256b 0ea2d 50 push ax 0ea2e ff36ee24 push word ptr [0x24ee] 0ea32 9a4d420000 lcall 0, 0x424d 0ea37 59 pop cx 0ea38 59 pop cx 0ea39 8946fa mov word ptr [bp - 6], ax 0ea3c 0bc0 or ax, ax 0ea3e 7510 jne 0xea50 0ea40 ff36ee24 push word ptr [0x24ee] 0ea44 b88c26 mov ax, 0x268c 0ea47 50 push ax 0ea48 9afe0fc405 lcall 0x5c4, 0xffe 0ea4d e96601 jmp 0xebb6 0ea50 ff76fa push word ptr [bp - 6] 0ea53 b80a00 mov ax, 0xa 0ea56 50 push ax 0ea57 b8b400 mov ax, 0xb4 0ea5a 50 push ax 0ea5b b8f0a3 mov ax, 0xa3f0 0ea5e 50 push ax 0ea5f 9a59430000 lcall 0, 0x4359 0ea64 83c408 add sp, 8 0ea67 3d0a00 cmp ax, 0xa 0ea6a 7425 je 0xea91 0ea6c ff36ee24 push word ptr [0x24ee] 0ea70 b8af26 mov ax, 0x26af 0ea73 50 push ax 0ea74 9afe0fc405 lcall 0x5c4, 0xffe 0ea79 59 pop cx 0ea7a 59 pop cx 0ea7b ff76fa push word ptr [bp - 6] 0ea7e 9a8d3e0000 lcall 0, 0x3e8d 0ea83 59 pop cx 0ea84 ff36ee24 push word ptr [0x24ee] 0ea88 9a5a150000 lcall 0, 0x155a 0ea8d 59 pop cx 0ea8e e92701 jmp 0xebb8 0ea91 ff76fa push word ptr [bp - 6] 0ea94 9a8d3e0000 lcall 0, 0x3e8d 0ea99 59 pop cx 0ea9a b80300 mov ax, 3 0ea9d 50 push ax 0ea9e b80e00 mov ax, 0xe 0eaa1 50 push ax 0eaa2 9a05023d0d lcall 0xd3d, 0x205 0eaa7 59 pop cx 0eaa8 59 pop cx 0eaa9 b8d926 mov ax, 0x26d9 0eaac 50 push ax 0eaad 8bc7 mov ax, di 0eaaf 47 inc di 0eab0 50 push ax 0eab1 b80500 mov ax, 5 0eab4 50 push ax 0eab5 9a7b043d0d lcall 0xd3d, 0x47b 0eaba 83c406 add sp, 6 0eabd 47 inc di 0eabe b80300 mov ax, 3 0eac1 50 push ax 0eac2 b80f00 mov ax, 0xf 0eac5 50 push ax 0eac6 9a05023d0d lcall 0xd3d, 0x205 0eacb 59 pop cx 0eacc 59 pop cx 0eacd bef0a3 mov si, 0xa3f0 0ead0 c746fe0000 mov word ptr [bp - 2], 0 0ead5 e9bb00 jmp 0xeb93 0ead8 803c00 cmp byte ptr [si], 0 0eadb 7503 jne 0xeae0 0eadd e9bc00 jmp 0xeb9c 0eae0 57 push di 0eae1 b80500 mov ax, 5 0eae4 50 push ax 0eae5 9adb013d0d lcall 0xd3d, 0x1db 0eaea 59 pop cx 0eaeb 59 pop cx 0eaec 56 push si 0eaed 9ab1033d0d lcall 0xd3d, 0x3b1 0eaf2 59 pop cx 0eaf3 83bcb20000 cmp word ptr [si + 0xb2], 0 0eaf8 742a je 0xeb24 0eafa b80300 mov ax, 3 0eafd 50 push ax 0eafe b80e00 mov ax, 0xe 0eb01 50 push ax 0eb02 9a05023d0d lcall 0xd3d, 0x205 0eb07 59 pop cx 0eb08 59 pop cx 0eb09 b82a00 mov ax, 0x2a 0eb0c 50 push ax 0eb0d 9a73033d0d lcall 0xd3d, 0x373 0eb12 59 pop cx 0eb13 b80300 mov ax, 3 0eb16 50 push ax 0eb17 b80f00 mov ax, 0xf 0eb1a 50 push ax 0eb1b 9a05023d0d lcall 0xd3d, 0x205 0eb20 59 pop cx 0eb21 59 pop cx 0eb22 eb0a jmp 0xeb2e 0eb24 b82000 mov ax, 0x20 0eb27 50 push ax 0eb28 9a73033d0d lcall 0xd3d, 0x373 0eb2d 59 pop cx 0eb2e 56 push si 0eb2f 9a6f540000 lcall 0, 0x546f 0eb34 59 pop cx 0eb35 8946fc mov word ptr [bp - 4], ax 0eb38 eb0d jmp 0xeb47 0eb3a b82000 mov ax, 0x20 0eb3d 50 push ax 0eb3e 9a73033d0d lcall 0xd3d, 0x373 0eb43 59 pop cx 0eb44 ff46fc inc word ptr [bp - 4] 0eb47 837efc14 cmp word ptr [bp - 4], 0x14 0eb4b 7ced jl 0xeb3a 0eb4d 8bc6 mov ax, si 0eb4f 052c00 add ax, 0x2c 0eb52 50 push ax 0eb53 90 nop 0eb54 0e push cs 0eb55 e8780d call 0xf8d0 0eb58 59 pop cx 0eb59 50 push ax 0eb5a 8bc6 mov ax, si 0eb5c 052c00 add ax, 0x2c 0eb5f 50 push ax 0eb60 90 nop 0eb61 0e push cs 0eb62 e8320d call 0xf897 0eb65 59 pop cx 0eb66 50 push ax 0eb67 ff7474 push word ptr [si + 0x74] 0eb6a 8bc6 mov ax, si 0eb6c 051600 add ax, 0x16 0eb6f 50 push ax 0eb70 ffb4b000 push word ptr [si + 0xb0] 0eb74 ffb4ae00 push word ptr [si + 0xae] 0eb78 b81c27 mov ax, 0x271c 0eb7b 50 push ax 0eb7c 8bc7 mov ax, di 0eb7e 47 inc di 0eb7f 50 push ax 0eb80 b81a00 mov ax, 0x1a 0eb83 50 push ax 0eb84 9a7b043d0d lcall 0xd3d, 0x47b 0eb89 83c412 add sp, 0x12 0eb8c 81c6b400 add si, 0xb4 0eb90 ff46fe inc word ptr [bp - 2] 0eb93 837efe0a cmp word ptr [bp - 2], 0xa 0eb97 7d03 jge 0xeb9c 0eb99 e93cff jmp 0xead8 0eb9c b80300 mov ax, 3 0eb9f 50 push ax 0eba0 b80100 mov ax, 1 0eba3 50 push ax 0eba4 9a05023d0d lcall 0xd3d, 0x205 0eba9 59 pop cx 0ebaa 59 pop cx 0ebab 47 inc di 0ebac 57 push di 0ebad b80600 mov ax, 6 0ebb0 50 push ax 0ebb1 9a47081416 lcall 0x1614, 0x847 0ebb6 59 pop cx 0ebb7 59 pop cx 0ebb8 5f pop di 0ebb9 5e pop si 0ebba 8be5 mov sp, bp 0ebbc 5d pop bp 0ebbd cb retf 0ebbe 55 push bp 0ebbf 8bec mov bp, sp 0ebc1 83ec06 sub sp, 6 0ebc4 56 push si 0ebc5 57 push di 0ebc6 bf0600 mov di, 6 0ebc9 b80100 mov ax, 1 0ebcc 50 push ax 0ebcd b80300 mov ax, 3 0ebd0 50 push ax 0ebd1 b80600 mov ax, 6 0ebd4 50 push ax 0ebd5 b83927 mov ax, 0x2739 0ebd8 50 push ax 0ebd9 b81000 mov ax, 0x10 0ebdc 50 push ax 0ebdd b84b00 mov ax, 0x4b 0ebe0 50 push ax 0ebe1 8bc7 mov ax, di 0ebe3 47 inc di 0ebe4 50 push ax 0ebe5 b80300 mov ax, 3 0ebe8 50 push ax 0ebe9 9ae803c10c lcall 0xcc1, 0x3e8 0ebee 83c410 add sp, 0x10 0ebf1 b86b25 mov ax, 0x256b 0ebf4 50 push ax 0ebf5 ff36ee24 push word ptr [0x24ee] 0ebf9 9a4d420000 lcall 0, 0x424d 0ebfe 59 pop cx 0ebff 59 pop cx 0ec00 8946fa mov word ptr [bp - 6], ax 0ec03 0bc0 or ax, ax 0ec05 7510 jne 0xec17 0ec07 ff36ee24 push word ptr [0x24ee] 0ec0b b88c26 mov ax, 0x268c 0ec0e 50 push ax 0ec0f 9afe0fc405 lcall 0x5c4, 0xffe 0ec14 e97b01 jmp 0xed92 0ec17 33c0 xor ax, ax 0ec19 50 push ax 0ec1a 33c0 xor ax, ax 0ec1c ba0807 mov dx, 0x708 0ec1f 50 push ax 0ec20 52 push dx 0ec21 ff76fa push word ptr [bp - 6] 0ec24 9a01440000 lcall 0, 0x4401 0ec29 83c408 add sp, 8 0ec2c ff76fa push word ptr [bp - 6] 0ec2f b80a00 mov ax, 0xa 0ec32 50 push ax 0ec33 b8a200 mov ax, 0xa2 0ec36 50 push ax 0ec37 b89c9d mov ax, 0x9d9c 0ec3a 50 push ax 0ec3b 9a59430000 lcall 0, 0x4359 0ec40 83c408 add sp, 8 0ec43 3d0a00 cmp ax, 0xa 0ec46 7425 je 0xec6d 0ec48 ff36ee24 push word ptr [0x24ee] 0ec4c b84527 mov ax, 0x2745 0ec4f 50 push ax 0ec50 9afe0fc405 lcall 0x5c4, 0xffe 0ec55 59 pop cx 0ec56 59 pop cx 0ec57 ff76fa push word ptr [bp - 6] 0ec5a 9a8d3e0000 lcall 0, 0x3e8d 0ec5f 59 pop cx 0ec60 ff36ee24 push word ptr [0x24ee] 0ec64 9a5a150000 lcall 0, 0x155a 0ec69 59 pop cx 0ec6a e92701 jmp 0xed94 0ec6d ff76fa push word ptr [bp - 6] 0ec70 9a8d3e0000 lcall 0, 0x3e8d 0ec75 59 pop cx 0ec76 b80300 mov ax, 3 0ec79 50 push ax 0ec7a b80e00 mov ax, 0xe 0ec7d 50 push ax 0ec7e 9a05023d0d lcall 0xd3d, 0x205 0ec83 59 pop cx 0ec84 59 pop cx 0ec85 b87027 mov ax, 0x2770 0ec88 50 push ax 0ec89 8bc7 mov ax, di 0ec8b 47 inc di 0ec8c 50 push ax 0ec8d b80500 mov ax, 5 0ec90 50 push ax 0ec91 9a7b043d0d lcall 0xd3d, 0x47b 0ec96 83c406 add sp, 6 0ec99 47 inc di 0ec9a b80300 mov ax, 3 0ec9d 50 push ax 0ec9e b80f00 mov ax, 0xf 0eca1 50 push ax 0eca2 9a05023d0d lcall 0xd3d, 0x205 0eca7 59 pop cx 0eca8 59 pop cx 0eca9 be9c9d mov si, 0x9d9c 0ecac c746fe0000 mov word ptr [bp - 2], 0 0ecb1 e9bb00 jmp 0xed6f 0ecb4 803c00 cmp byte ptr [si], 0 0ecb7 7503 jne 0xecbc 0ecb9 e9bc00 jmp 0xed78 0ecbc 57 push di 0ecbd b80500 mov ax, 5 0ecc0 50 push ax 0ecc1 9adb013d0d lcall 0xd3d, 0x1db 0ecc6 59 pop cx 0ecc7 59 pop cx 0ecc8 56 push si 0ecc9 9ab1033d0d lcall 0xd3d, 0x3b1 0ecce 59 pop cx 0eccf 83bca00000 cmp word ptr [si + 0xa0], 0 0ecd4 742a je 0xed00 0ecd6 b80300 mov ax, 3 0ecd9 50 push ax 0ecda b80e00 mov ax, 0xe 0ecdd 50 push ax 0ecde 9a05023d0d lcall 0xd3d, 0x205 0ece3 59 pop cx 0ece4 59 pop cx 0ece5 b82a00 mov ax, 0x2a 0ece8 50 push ax 0ece9 9a73033d0d lcall 0xd3d, 0x373 0ecee 59 pop cx 0ecef b80300 mov ax, 3 0ecf2 50 push ax 0ecf3 b80f00 mov ax, 0xf 0ecf6 50 push ax 0ecf7 9a05023d0d lcall 0xd3d, 0x205 0ecfc 59 pop cx 0ecfd 59 pop cx 0ecfe eb0a jmp 0xed0a 0ed00 b82000 mov ax, 0x20 0ed03 50 push ax 0ed04 9a73033d0d lcall 0xd3d, 0x373 0ed09 59 pop cx 0ed0a 56 push si 0ed0b 9a6f540000 lcall 0, 0x546f 0ed10 59 pop cx 0ed11 8946fc mov word ptr [bp - 4], ax 0ed14 eb0d jmp 0xed23 0ed16 b82000 mov ax, 0x20 0ed19 50 push ax 0ed1a 9a73033d0d lcall 0xd3d, 0x373 0ed1f 59 pop cx 0ed20 ff46fc inc word ptr [bp - 4] 0ed23 837efc14 cmp word ptr [bp - 4], 0x14 0ed27 7ced jl 0xed16 0ed29 8bc6 mov ax, si 0ed2b 051a00 add ax, 0x1a 0ed2e 50 push ax 0ed2f 90 nop 0ed30 0e push cs 0ed31 e89c0b call 0xf8d0 0ed34 59 pop cx 0ed35 50 push ax 0ed36 8bc6 mov ax, si 0ed38 051a00 add ax, 0x1a 0ed3b 50 push ax 0ed3c 90 nop 0ed3d 0e push cs 0ed3e e8560b call 0xf897 0ed41 59 pop cx 0ed42 50 push ax 0ed43 ff7462 push word ptr [si + 0x62] 0ed46 ff7418 push word ptr [si + 0x18] 0ed49 ff7416 push word ptr [si + 0x16] 0ed4c ffb49e00 push word ptr [si + 0x9e] 0ed50 ffb49c00 push word ptr [si + 0x9c] 0ed54 b8b327 mov ax, 0x27b3 0ed57 50 push ax 0ed58 8bc7 mov ax, di 0ed5a 47 inc di 0ed5b 50 push ax 0ed5c b81a00 mov ax, 0x1a 0ed5f 50 push ax 0ed60 9a7b043d0d lcall 0xd3d, 0x47b 0ed65 83c414 add sp, 0x14 0ed68 81c6a200 add si, 0xa2 0ed6c ff46fe inc word ptr [bp - 2] 0ed6f 837efe0a cmp word ptr [bp - 2], 0xa 0ed73 7d03 jge 0xed78 0ed75 e93cff jmp 0xecb4 0ed78 b80300 mov ax, 3 0ed7b 50 push ax 0ed7c b80100 mov ax, 1 0ed7f 50 push ax 0ed80 9a05023d0d lcall 0xd3d, 0x205 0ed85 59 pop cx 0ed86 59 pop cx 0ed87 47 inc di 0ed88 57 push di 0ed89 b80600 mov ax, 6 0ed8c 50 push ax 0ed8d 9a47081416 lcall 0x1614, 0x847 0ed92 59 pop cx 0ed93 59 pop cx 0ed94 5f pop di 0ed95 5e pop si 0ed96 8be5 mov sp, bp 0ed98 5d pop bp 0ed99 cb retf 0ed9a 55 push bp 0ed9b 8bec mov bp, sp 0ed9d 83ec06 sub sp, 6 0eda0 56 push si 0eda1 57 push di 0eda2 bf0600 mov di, 6 0eda5 b80100 mov ax, 1 0eda8 50 push ax 0eda9 b80300 mov ax, 3 0edac 50 push ax 0edad b80600 mov ax, 6 0edb0 50 push ax 0edb1 b8d427 mov ax, 0x27d4 0edb4 50 push ax 0edb5 b81000 mov ax, 0x10 0edb8 50 push ax 0edb9 b84b00 mov ax, 0x4b 0edbc 50 push ax 0edbd 8bc7 mov ax, di 0edbf 47 inc di 0edc0 50 push ax 0edc1 b80300 mov ax, 3 0edc4 50 push ax 0edc5 9ae803c10c lcall 0xcc1, 0x3e8 0edca 83c410 add sp, 0x10 0edcd b86b25 mov ax, 0x256b 0edd0 50 push ax 0edd1 ff36ee24 push word ptr [0x24ee] 0edd5 9a4d420000 lcall 0, 0x424d 0edda 59 pop cx 0eddb 59 pop cx 0eddc 8946fa mov word ptr [bp - 6], ax 0eddf 0bc0 or ax, ax 0ede1 7510 jne 0xedf3 0ede3 ff36ee24 push word ptr [0x24ee] 0ede7 b88c26 mov ax, 0x268c 0edea 50 push ax 0edeb 9afe0fc405 lcall 0x5c4, 0xffe 0edf0 e97301 jmp 0xef66 0edf3 33c0 xor ax, ax 0edf5 50 push ax 0edf6 33c0 xor ax, ax 0edf8 ba5c0d mov dx, 0xd5c 0edfb 50 push ax 0edfc 52 push dx 0edfd ff76fa push word ptr [bp - 6] 0ee00 9a01440000 lcall 0, 0x4401 0ee05 83c408 add sp, 8 0ee08 ff76fa push word ptr [bp - 6] 0ee0b b80a00 mov ax, 0xa 0ee0e 50 push ax 0ee0f b8a200 mov ax, 0xa2 0ee12 50 push ax 0ee13 b84897 mov ax, 0x9748 0ee16 50 push ax 0ee17 9a59430000 lcall 0, 0x4359 0ee1c 83c408 add sp, 8 0ee1f 3d0a00 cmp ax, 0xa 0ee22 7425 je 0xee49 0ee24 ff36ee24 push word ptr [0x24ee] 0ee28 b8e427 mov ax, 0x27e4 0ee2b 50 push ax 0ee2c 9afe0fc405 lcall 0x5c4, 0xffe 0ee31 59 pop cx 0ee32 59 pop cx 0ee33 ff76fa push word ptr [bp - 6] 0ee36 9a8d3e0000 lcall 0, 0x3e8d 0ee3b 59 pop cx 0ee3c ff36ee24 push word ptr [0x24ee] 0ee40 9a5a150000 lcall 0, 0x155a 0ee45 59 pop cx 0ee46 e91f01 jmp 0xef68 0ee49 ff76fa push word ptr [bp - 6] 0ee4c 9a8d3e0000 lcall 0, 0x3e8d 0ee51 59 pop cx 0ee52 b80300 mov ax, 3 0ee55 50 push ax 0ee56 b80e00 mov ax, 0xe 0ee59 50 push ax 0ee5a 9a05023d0d lcall 0xd3d, 0x205 0ee5f 59 pop cx 0ee60 59 pop cx 0ee61 b80f28 mov ax, 0x280f 0ee64 50 push ax 0ee65 8bc7 mov ax, di 0ee67 47 inc di 0ee68 50 push ax 0ee69 b80500 mov ax, 5 0ee6c 50 push ax 0ee6d 9a7b043d0d lcall 0xd3d, 0x47b 0ee72 83c406 add sp, 6 0ee75 47 inc di 0ee76 b80300 mov ax, 3 0ee79 50 push ax 0ee7a b80f00 mov ax, 0xf 0ee7d 50 push ax 0ee7e 9a05023d0d lcall 0xd3d, 0x205 0ee83 59 pop cx 0ee84 59 pop cx 0ee85 be4897 mov si, 0x9748 0ee88 c746fe0000 mov word ptr [bp - 2], 0 0ee8d e9b300 jmp 0xef43 0ee90 803c00 cmp byte ptr [si], 0 0ee93 7503 jne 0xee98 0ee95 e9b400 jmp 0xef4c 0ee98 57 push di 0ee99 b80500 mov ax, 5 0ee9c 50 push ax 0ee9d 9adb013d0d lcall 0xd3d, 0x1db 0eea2 59 pop cx 0eea3 59 pop cx 0eea4 56 push si 0eea5 9ab1033d0d lcall 0xd3d, 0x3b1 0eeaa 59 pop cx 0eeab 83bca00000 cmp word ptr [si + 0xa0], 0 0eeb0 742a je 0xeedc 0eeb2 b80300 mov ax, 3 0eeb5 50 push ax 0eeb6 b80e00 mov ax, 0xe 0eeb9 50 push ax 0eeba 9a05023d0d lcall 0xd3d, 0x205 0eebf 59 pop cx 0eec0 59 pop cx 0eec1 b82a00 mov ax, 0x2a 0eec4 50 push ax 0eec5 9a73033d0d lcall 0xd3d, 0x373 0eeca 59 pop cx 0eecb b80300 mov ax, 3 0eece 50 push ax 0eecf b80f00 mov ax, 0xf 0eed2 50 push ax 0eed3 9a05023d0d lcall 0xd3d, 0x205 0eed8 59 pop cx 0eed9 59 pop cx 0eeda eb0a jmp 0xeee6 0eedc b82000 mov ax, 0x20 0eedf 50 push ax 0eee0 9a73033d0d lcall 0xd3d, 0x373 0eee5 59 pop cx 0eee6 56 push si 0eee7 9a6f540000 lcall 0, 0x546f 0eeec 59 pop cx 0eeed 8946fc mov word ptr [bp - 4], ax 0eef0 eb0d jmp 0xeeff 0eef2 b82000 mov ax, 0x20 0eef5 50 push ax 0eef6 9a73033d0d lcall 0xd3d, 0x373 0eefb 59 pop cx 0eefc ff46fc inc word ptr [bp - 4] 0eeff 837efc14 cmp word ptr [bp - 4], 0x14 0ef03 7ced jl 0xeef2 0ef05 8b4416 mov ax, word ptr [si + 0x16] 0ef08 99 cdq 0ef09 52 push dx 0ef0a 50 push ax 0ef0b ffb49e00 push word ptr [si + 0x9e] 0ef0f ffb49c00 push word ptr [si + 0x9c] 0ef13 9aa2060000 lcall 0, 0x6a2 0ef18 52 push dx 0ef19 50 push ax 0ef1a ff7418 push word ptr [si + 0x18] 0ef1d ff7416 push word ptr [si + 0x16] 0ef20 ffb49e00 push word ptr [si + 0x9e] 0ef24 ffb49c00 push word ptr [si + 0x9c] 0ef28 b85628 mov ax, 0x2856 0ef2b 50 push ax 0ef2c 8bc7 mov ax, di 0ef2e 47 inc di 0ef2f 50 push ax 0ef30 b81a00 mov ax, 0x1a 0ef33 50 push ax 0ef34 9a7b043d0d lcall 0xd3d, 0x47b 0ef39 83c412 add sp, 0x12 0ef3c 81c6a200 add si, 0xa2 0ef40 ff46fe inc word ptr [bp - 2] 0ef43 837efe0a cmp word ptr [bp - 2], 0xa 0ef47 7d03 jge 0xef4c 0ef49 e944ff jmp 0xee90 0ef4c b80300 mov ax, 3 0ef4f 50 push ax 0ef50 b80100 mov ax, 1 0ef53 50 push ax 0ef54 9a05023d0d lcall 0xd3d, 0x205 0ef59 59 pop cx 0ef5a 59 pop cx 0ef5b 47 inc di 0ef5c 57 push di 0ef5d b80600 mov ax, 6 0ef60 50 push ax 0ef61 9a47081416 lcall 0x1614, 0x847 0ef66 59 pop cx 0ef67 59 pop cx 0ef68 5f pop di 0ef69 5e pop si Sum primary and other kills from statistics blocks [0xf897, 0xf8fc) 0f897 55 push bp 0f898 8bec mov bp, sp 0f89a 56 push si 0f89b 57 push di 0f89c 8b7606 mov si, word ptr [bp + 6] 0f89f 8b4406 mov ax, word ptr [si + 6] 0f8a2 034448 add ax, word ptr [si + 0x48] 0f8a5 8bf8 mov di, ax 0f8a7 33c9 xor cx, cx 0f8a9 eb18 jmp 0xf8c3 0f8ab 8bd9 mov bx, cx 0f8ad d1e3 shl bx, 1 0f8af 8b4038 mov ax, word ptr [bx + si + 0x38] 0f8b2 8bd9 mov bx, cx 0f8b4 d1e3 shl bx, 1 0f8b6 034018 add ax, word ptr [bx + si + 0x18] 0f8b9 8bd9 mov bx, cx 0f8bb d1e3 shl bx, 1 0f8bd 034072 add ax, word ptr [bx + si + 0x72] 0f8c0 03f8 add di, ax 0f8c2 41 inc cx 0f8c3 83f908 cmp cx, 8 0f8c6 7ce3 jl 0xf8ab 0f8c8 8bc7 mov ax, di 0f8ca eb00 jmp 0xf8cc 0f8cc 5f pop di 0f8cd 5e pop si 0f8ce 5d pop bp 0f8cf cb retf 0f8d0 55 push bp 0f8d1 8bec mov bp, sp 0f8d3 56 push si 0f8d4 57 push di 0f8d5 8b7e06 mov di, word ptr [bp + 6] 0f8d8 33f6 xor si, si 0f8da 33c9 xor cx, cx 0f8dc eb11 jmp 0xf8ef 0f8de 8bd9 mov bx, cx 0f8e0 d1e3 shl bx, 1 0f8e2 8b4128 mov ax, word ptr [bx + di + 0x28] 0f8e5 8bd9 mov bx, cx 0f8e7 d1e3 shl bx, 1 0f8e9 034108 add ax, word ptr [bx + di + 8] 0f8ec 03f0 add si, ax 0f8ee 41 inc cx 0f8ef 83f908 cmp cx, 8 0f8f2 7cea jl 0xf8de 0f8f4 8bc6 mov ax, si 0f8f6 eb00 jmp 0xf8f8 0f8f8 5f pop di 0f8f9 5e pop si 0f8fa 5d pop bp 0f8fb cb retf RIMG.EXE SHA-256 e80a440a07ce350481678c96221967d0a685db41c3785edb37813f6fb3fea2b0 Cockpit repeat/literal decoding loop [0x292, 0x2de) 00292 bec700 mov si, 0xc7 00295 83c604 add si, 4 00298 fc cld 00299 8bc7 mov ax, di 0029b 2b06c940 sub ax, word ptr [0x40c9] 0029f 3b06c740 cmp ax, word ptr [0x40c7] 002a3 7339 jae 0x2de 002a5 8b0c mov cx, word ptr [si] 002a7 81e1ff3f and cx, 0x3fff 002ab 83c602 add si, 2 002ae a1c740 mov ax, word ptr [0x40c7] 002b1 2bc7 sub ax, di 002b3 0306c940 add ax, word ptr [0x40c9] 002b7 3bc8 cmp cx, ax 002b9 7202 jb 0x2bd 002bb 8bc8 mov cx, ax 002bd 8a04 mov al, byte ptr [si] 002bf 46 inc si 002c0 f3aa rep stosb byte ptr es:[di], al 002c2 8b0c mov cx, word ptr [si] 002c4 81e1ff3f and cx, 0x3fff 002c8 83c602 add si, 2 002cb a1c740 mov ax, word ptr [0x40c7] 002ce 2bc7 sub ax, di 002d0 0306c940 add ax, word ptr [0x40c9] 002d4 3bc8 cmp cx, ax 002d6 7202 jb 0x2da 002d8 8bc8 mov cx, ax 002da f3a4 rep movsb byte ptr es:[di], byte ptr [si] 002dc ebbb jmp 0x299 JVCC.EXE SHA-256 798c146e9e178ec519659d492563098666ef0d36c5d7938ef1289bc518a88e40 Write VGA dimensions and calculate trailing padding [0x491, 0x59b) 00491 55 push bp 00492 8bec mov bp, sp 00494 83ec04 sub sp, 4 00497 56 push si 00498 57 push di 00499 8b5e04 mov bx, word ptr [bp + 4] 0049c 8b7f06 mov di, word ptr [bx + 6] 0049f 83bf8d0001 cmp word ptr [bx + 0x8d], 1 004a4 740c je 0x4b2 004a6 b8aa00 mov ax, 0xaa 004a9 50 push ax 004aa 8b5f02 mov bx, word ptr [bx + 2] 004ad ff17 call word ptr [bx] 004af 83c402 add sp, 2 004b2 8b5e04 mov bx, word ptr [bp + 4] 004b5 8b4724 mov ax, word ptr [bx + 0x24] 004b8 48 dec ax 004b9 8946fc mov word ptr [bp - 4], ax 004bc 8b4728 mov ax, word ptr [bx + 0x28] 004bf 48 dec ax 004c0 8946fe mov word ptr [bp - 2], ax 004c3 ff05 inc word ptr [di] 004c5 7d0f jge 0x4d6 004c7 8b5d0a mov bx, word ptr [di + 0xa] 004ca ff450a inc word ptr [di + 0xa] 004cd 8a46fc mov al, byte ptr [bp - 4] 004d0 8807 mov byte ptr [bx], al 004d2 b400 mov ah, 0 004d4 eb0b jmp 0x4e1 004d6 57 push di 004d7 8a46fc mov al, byte ptr [bp - 4] 004da 50 push ax 004db e8fd9d call 0xffffa2db 004de 83c404 add sp, 4 004e1 ff05 inc word ptr [di] 004e3 7d0f jge 0x4f4 004e5 8b5d0a mov bx, word ptr [di + 0xa] 004e8 ff450a inc word ptr [di + 0xa] 004eb 8a46fd mov al, byte ptr [bp - 3] 004ee 8807 mov byte ptr [bx], al 004f0 b400 mov ah, 0 004f2 eb0b jmp 0x4ff 004f4 57 push di 004f5 8a46fd mov al, byte ptr [bp - 3] 004f8 50 push ax 004f9 e8df9d call 0xffffa2db 004fc 83c404 add sp, 4 004ff ff05 inc word ptr [di] 00501 7d0f jge 0x512 00503 8b5d0a mov bx, word ptr [di + 0xa] 00506 ff450a inc word ptr [di + 0xa] 00509 8a46fe mov al, byte ptr [bp - 2] 0050c 8807 mov byte ptr [bx], al 0050e b400 mov ah, 0 00510 eb0b jmp 0x51d 00512 57 push di 00513 8a46fe mov al, byte ptr [bp - 2] 00516 50 push ax 00517 e8c19d call 0xffffa2db 0051a 83c404 add sp, 4 0051d ff05 inc word ptr [di] 0051f 7d0f jge 0x530 00521 8b5d0a mov bx, word ptr [di + 0xa] 00524 ff450a inc word ptr [di + 0xa] 00527 8a46ff mov al, byte ptr [bp - 1] 0052a 8807 mov byte ptr [bx], al 0052c b400 mov ah, 0 0052e eb0b jmp 0x53b 00530 57 push di 00531 8a46ff mov al, byte ptr [bp - 1] 00534 50 push ax 00535 e8a39d call 0xffffa2db 00538 83c404 add sp, 4 0053b 33c0 xor ax, ax 0053d ba0800 mov dx, 8 00540 50 push ax 00541 52 push dx 00542 8b5e04 mov bx, word ptr [bp + 4] 00545 8b4726 mov ax, word ptr [bx + 0x26] 00548 8b5724 mov dx, word ptr [bx + 0x24] 0054b 83c2ff add dx, -1 0054e 15ffff adc ax, 0xffff 00551 50 push ax 00552 52 push dx 00553 e8887d call 0x82de 00556 b103 mov cl, 3 00558 e8317e call 0x838c 0055b 050800 add ax, 8 0055e 83d200 adc dx, 0 00561 8b5e04 mov bx, word ptr [bp + 4] 00564 50 push ax 00565 52 push dx 00566 8b572a mov dx, word ptr [bx + 0x2a] 00569 8b4728 mov ax, word ptr [bx + 0x28] 0056c 59 pop cx 0056d 5b pop bx 0056e e85780 call 0xffff85c8 00571 89163c13 mov word ptr [0x133c], dx 00575 a33a13 mov word ptr [0x133a], ax 00578 8b5e04 mov bx, word ptr [bp + 4] 0057b 8b4f2a mov cx, word ptr [bx + 0x2a] 0057e 8b5f28 mov bx, word ptr [bx + 0x28] 00581 8b7604 mov si, word ptr [bp + 4] 00584 8b5426 mov dx, word ptr [si + 0x26] 00587 8b4424 mov ax, word ptr [si + 0x24] 0058a e83b80 call 0xffff85c8 0058d 29063a13 sub word ptr [0x133a], ax 00591 19163c13 sbb word ptr [0x133c], dx 00595 5f pop di 00596 5e pop si 00597 8be5 mov sp, bp 00599 5d pop bp 0059a c3 ret Write consecutive image rows [0x59b, 0x63a) 0059b 55 push bp 0059c 8bec mov bp, sp 0059e 83ec10 sub sp, 0x10 005a1 56 push si 005a2 57 push di 005a3 8b7604 mov si, word ptr [bp + 4] 005a6 8b7c06 mov di, word ptr [si + 6] 005a9 8b4426 mov ax, word ptr [si + 0x26] 005ac 8b5424 mov dx, word ptr [si + 0x24] 005af 8946f6 mov word ptr [bp - 0xa], ax 005b2 8956f4 mov word ptr [bp - 0xc], dx 005b5 c746f20000 mov word ptr [bp - 0xe], 0 005ba c746f00000 mov word ptr [bp - 0x10], 0 005bf 8b46f2 mov ax, word ptr [bp - 0xe] 005c2 3b4606 cmp ax, word ptr [bp + 6] 005c5 7d6d jge 0x634 005c7 8b5e08 mov bx, word ptr [bp + 8] 005ca 8b1f mov bx, word ptr [bx] 005cc 035ef0 add bx, word ptr [bp - 0x10] 005cf 8b4702 mov ax, word ptr [bx + 2] 005d2 8b17 mov dx, word ptr [bx] 005d4 8946fe mov word ptr [bp - 2], ax 005d7 8956fc mov word ptr [bp - 4], dx 005da 8b46f6 mov ax, word ptr [bp - 0xa] 005dd 8b56f4 mov dx, word ptr [bp - 0xc] 005e0 8946fa mov word ptr [bp - 6], ax 005e3 8956f8 mov word ptr [bp - 8], dx 005e6 eb2f jmp 0x617 005e8 ff05 inc word ptr [di] 005ea 7d12 jge 0x5fe 005ec 8b5d0a mov bx, word ptr [di + 0xa] 005ef ff450a inc word ptr [di + 0xa] 005f2 c476fc les si, ptr [bp - 4] 005f5 268a04 mov al, byte ptr es:[si] 005f8 8807 mov byte ptr [bx], al 005fa b400 mov ah, 0 005fc eb0e jmp 0x60c 005fe 57 push di 005ff c45efc les bx, ptr [bp - 4] 00602 268a07 mov al, byte ptr es:[bx] 00605 50 push ax 00606 e8d29c call 0xffffa2db 00609 83c404 add sp, 4 0060c ff46fc inc word ptr [bp - 4] 0060f 836ef801 sub word ptr [bp - 8], 1 00613 835efa00 sbb word ptr [bp - 6], 0 00617 837efa00 cmp word ptr [bp - 6], 0 0061b 7fcb jg 0x5e8 0061d 7506 jne 0x625 0061f 837ef800 cmp word ptr [bp - 8], 0 00623 77c3 ja 0x5e8 00625 8346f004 add word ptr [bp - 0x10], 4 00629 ff46f2 inc word ptr [bp - 0xe] 0062c 8b46f2 mov ax, word ptr [bp - 0xe] 0062f 3b4606 cmp ax, word ptr [bp + 6] 00632 7c93 jl 0x5c7 00634 5f pop di 00635 5e pop si 00636 8be5 mov sp, bp 00638 5d pop bp 00639 c3 ret Append padding, two zero bytes and six-bit palette [0x6f5, 0x7e2) 006f5 55 push bp 006f6 8bec mov bp, sp 006f8 83ec02 sub sp, 2 006fb 56 push si 006fc 57 push di 006fd 8b5e04 mov bx, word ptr [bp + 4] 00700 8b7f06 mov di, word ptr [bx + 6] 00703 c746fe0000 mov word ptr [bp - 2], 0 00708 eb1f jmp 0x729 0070a ff05 inc word ptr [di] 0070c 7d0e jge 0x71c 0070e 8b5d0a mov bx, word ptr [di + 0xa] 00711 ff450a inc word ptr [di + 0xa] 00714 b000 mov al, 0 00716 8807 mov byte ptr [bx], al 00718 b400 mov ah, 0 0071a eb0a jmp 0x726 0071c 57 push di 0071d b000 mov al, 0 0071f 50 push ax 00720 e8b89b call 0xffffa2db 00723 83c404 add sp, 4 00726 ff46fe inc word ptr [bp - 2] 00729 8b46fe mov ax, word ptr [bp - 2] 0072c 99 cdq 0072d 3b163c13 cmp dx, word ptr [0x133c] 00731 72d7 jb 0x70a 00733 7506 jne 0x73b 00735 3b063a13 cmp ax, word ptr [0x133a] 00739 72cf jb 0x70a 0073b ff05 inc word ptr [di] 0073d 7d0e jge 0x74d 0073f 8b5d0a mov bx, word ptr [di + 0xa] 00742 ff450a inc word ptr [di + 0xa] 00745 b000 mov al, 0 00747 8807 mov byte ptr [bx], al 00749 b400 mov ah, 0 0074b eb0a jmp 0x757 0074d 57 push di 0074e b000 mov al, 0 00750 50 push ax 00751 e8879b call 0xffffa2db 00754 83c404 add sp, 4 00757 ff05 inc word ptr [di] 00759 7d0e jge 0x769 0075b 8b5d0a mov bx, word ptr [di + 0xa] 0075e ff450a inc word ptr [di + 0xa] 00761 b000 mov al, 0 00763 8807 mov byte ptr [bx], al 00765 b400 mov ah, 0 00767 eb0a jmp 0x773 00769 57 push di 0076a b000 mov al, 0 0076c 50 push ax 0076d e86b9b call 0xffffa2db 00770 83c404 add sp, 4 00773 c746fe0000 mov word ptr [bp - 2], 0 00778 ff05 inc word ptr [di] 0077a 7d19 jge 0x795 0077c 8b5efe mov bx, word ptr [bp - 2] 0077f 8a873e13 mov al, byte ptr [bx + 0x133e] 00783 b400 mov ah, 0 00785 d1f8 sar ax, 1 00787 d1f8 sar ax, 1 00789 8b5d0a mov bx, word ptr [di + 0xa] 0078c ff450a inc word ptr [di + 0xa] 0078f 8807 mov byte ptr [bx], al 00791 b400 mov ah, 0 00793 eb15 jmp 0x7aa 00795 57 push di 00796 8b5efe mov bx, word ptr [bp - 2] 00799 8a873e13 mov al, byte ptr [bx + 0x133e] 0079d b400 mov ah, 0 0079f d1f8 sar ax, 1 007a1 d1f8 sar ax, 1 007a3 50 push ax 007a4 e8349b call 0xffffa2db 007a7 83c404 add sp, 4 007aa ff46fe inc word ptr [bp - 2] 007ad 817efe0003 cmp word ptr [bp - 2], 0x300 007b2 7cc4 jl 0x778 007b4 8b5e04 mov bx, word ptr [bp + 4] 007b7 ff7706 push word ptr [bx + 6] 007ba e8bb92 call 0xffff9a78 007bd 83c402 add sp, 2 007c0 8b5e04 mov bx, word ptr [bp + 4] 007c3 8b5f06 mov bx, word ptr [bx + 6] 007c6 f747021000 test word ptr [bx + 2], 0x10 007cb 740f je 0x7dc 007cd b83f01 mov ax, 0x13f 007d0 50 push ax 007d1 8b5e04 mov bx, word ptr [bp + 4] 007d4 8b5f02 mov bx, word ptr [bx + 2] 007d7 ff17 call word ptr [bx] 007d9 83c402 add sp, 2 007dc 5f pop di 007dd 5e pop si 007de 8be5 mov sp, bp 007e0 5d pop bp 007e1 c3 ret