Function at 0x401080
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor
Read file on windows
Resolve function by parsing pe exports
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1268
call fcn.0041bcf0
mov eax, dword [0x426004]
xor eax, esp
mov dword [esp + 0x1264], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
push str.________________________________________________________________________________n
push 1
mov dword [esp + 0x18], eax
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.v1.2
push str.Z80onTAP
push str.__s__s__c__2020_Tom_Dalby_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
push str.________________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
cmp dword [ebp + 8], 2
jl 0x4076a1
mov dword [esp + 0xbe0], 0x13
mov dword [esp + 0xbe4], 0x206e7572
mov dword [esp + 0xbe8], 0x20202020
mov dword [esp + 0xbec], 0x1032020
mov dword [esp + 0xbf0], 0x103000a
mov dword [esp + 0xbf4], 0xff010543
mov dword [esp + 0xbf8], 0x620a00
mov dword [esp + 0xbfc], 0x3222b0fd
mov dword [esp + 0xc00], 0x35373534
mov dword [esp + 0xc04], 0xb0e73a22
mov dword [esp + 0xc08], 0x3a223422
mov dword [esp + 0xc0c], 0x22b0c0f9
mov dword [esp + 0xc10], 0x36383332
mov dword [esp + 0xc14], 0xf13a2232
mov dword [esp + 0xc18], 0x223d2461
mov dword [esp + 0xc1c], 0x736f6847
mov dword [esp + 0xc20], 0x73756274
mov dword [esp + 0xc24], 0xeb3a222e
mov dword [esp + 0xc28], 0x22b03d69
mov dword [esp + 0xc2c], 0xb0cc2230
mov dword [esp + 0xc30], 0x3a223522
mov dword [esp + 0xc34], 0x2b2461ef
mov dword [esp + 0xc38], 0x3aaf69c1
mov dword [esp + 0xc3c], 0x22b0c0f9
mov dword [esp + 0xc40], 0x37313233
mov dword [esp + 0xc44], 0xf33a2239
mov dword [esp + 0xc48], 0x61ef3a69
mov dword [esp + 0xc4c], 0x4d222b24
mov dword [esp + 0xc50], 0xf93aaf22
mov dword [esp + 0xc54], 0x3222b0c0
mov dword [esp + 0xc58], 0x35313933
mov dword [esp + 0xc5c], 0xf270d22
mov dword [esp + 0xc60], 0xf3ea0099
mov dword [esp + 0xc64], 0x235c3d2a
mov dword [esp + 0xc68], 0x362b1336
mov dword [esp + 0xc6c], 0x1b362b03
mov dword [esp + 0xc70], 0x2b76362b
mov dword [esp + 0xc74], 0x362b0036
mov dword [esp + 0xc78], 0xcbfdf951
mov dword [esp + 0xc7c], 0x3ea601
mov dword [esp + 0xc80], 0xcd5c8d32
mov dword [esp + 0xc84], 0x523e0daf
mov dword [esp + 0xc88], 0xaf5cbb32
mov dword [esp + 0xc8c], 0x3e5cbc32
mov dword [esp + 0xc90], 0x7ffd0110
mov dword [esp + 0xc94], 0xc9fb79ed
mov dword [esp + 0xc98], 0x303921f3
mov dword [esp + 0xc9c], 0x15b0011
mov dword [esp + 0xca0], 0xb0ed0036
mov dword [esp + 0xca4], 0xd95db131
mov dword [esp + 0xca8], 0xaffffd01
mov dword [esp + 0xcac], 0x3c79ede1
mov dword [esp + 0xcb0], 0x69edbf06
mov dword [esp + 0xcb4], 0x79edff06
mov dword [esp + 0xcb8], 0xedbf063c
mov dword [esp + 0xcbc], 0x610fe61
mov dword [esp + 0xcc0], 0x3ee920ff
mov dword [esp + 0xcc4], 0xc179ed00
mov dword [esp + 0xcc8], 0xddd9e1d1
mov dword [esp + 0xccc], 0x8e1fde1
mov dword [esp + 0xcd0], 0x3e08f1
mov dword [esp + 0xcd4], 0x5eed47ed
mov dword [esp + 0xcd8], 0xc35b3631
mov dword [esp + 0xcdc], 0x5b02
mov dword [esp + 0xce0], 0
mov dword [esp + 0xce4], 0xff00
mov dword [esp + 0xce8], 0
mov dword [esp + 0xcec], 0xbf
mov dword [esp + 0xcf0], 0
mov dword [esp + 0xcf4], 0
mov dword [esp + 0xcf8], 0x910d0000
mov dword [esp + 0xab8], 0x13
mov dword [esp + 0xabc], 0x206e7572
mov dword [esp + 0xac0], 0x20202020
mov dword [esp + 0xac4], 0x10b2020
mov dword [esp + 0xac8], 0x10b000a
mov dword [esp + 0xacc], 0xff010d43
mov dword [esp + 0xad0], 0x6a0a00
mov dword [esp + 0xad4], 0x3222b0fd
mov dword [esp + 0xad8], 0x35373534
mov dword [esp + 0xadc], 0xb0e73a22
mov dword [esp + 0xae0], 0x3a223422
mov dword [esp + 0xae4], 0x22b0c0f9
mov dword [esp + 0xae8], 0x37383332
mov dword [esp + 0xaec], 0xf13a2230
mov dword [esp + 0xaf0], 0x223d2461
mov dword [esp + 0xaf4], 0x736f6847
mov dword [esp + 0xaf8], 0x73756274
mov dword [esp + 0xafc], 0xeb3a222e
mov dword [esp + 0xb00], 0x22b03d69
mov dword [esp + 0xb04], 0xb0cc2230
mov dword [esp + 0xb08], 0x3a223522
mov dword [esp + 0xb0c], 0x2b2461ef
mov dword [esp + 0xb10], 0x3aaf69c1
mov dword [esp + 0xb14], 0x22b0c0f9
mov dword [esp + 0xb18], 0x37313233
mov dword [esp + 0xb1c], 0xf33a2239
mov dword [esp + 0xb20], 0x61ef3a69
mov dword [esp + 0xb24], 0x4d222b24
mov dword [esp + 0xb28], 0xf23aaf22
mov dword [esp + 0xb2c], 0x303022b0
mov dword [esp + 0xb30], 0xf93a2231
mov dword [esp + 0xb34], 0x3222b0c0
mov dword [esp + 0xb38], 0x33323933
mov dword [esp + 0xb3c], 0xf270d22
mov dword [esp + 0xb40], 0xf3ea0099
mov dword [esp + 0xb44], 0x235c3d2a
mov dword [esp + 0xb48], 0x362b1336
mov dword [esp + 0xb4c], 0x1b362b03
mov dword [esp + 0xb50], 0x2b76362b
mov dword [esp + 0xb54], 0x362b0036
mov dword [esp + 0xb58], 0xcbfdf951
mov dword [esp + 0xb5c], 0x3ea601
mov dword [esp + 0xb60], 0xcd5c8d32
mov dword [esp + 0xb64], 0x523e0daf
mov dword [esp + 0xb68], 0xaf5cbb32
mov dword [esp + 0xb6c], 0x3e5cbc32
mov dword [esp + 0xb70], 0x7ffd0110
mov dword [esp + 0xb74], 0xc9fb79ed
mov dword [esp + 0xb78], 0x303921f3
mov dword [esp + 0xb7c], 0x15b0011
mov dword [esp + 0xb80], 0xb0ed0036
mov dword [esp + 0xb84], 0xd95db931
mov dword [esp + 0xb88], 0xaffffd01
mov dword [esp + 0xb8c], 0x3c79ede1
mov dword [esp + 0xb90], 0x69edbf06
mov dword [esp + 0xb94], 0x79edff06
mov dword [esp + 0xb98], 0xedbf063c
mov dword [esp + 0xb9c], 0x610fe61
mov dword [esp + 0xba0], 0x3ee920ff
mov dword [esp + 0xba4], 0xc179ed00
mov dword [esp + 0xba8], 0xddd9e1d1
mov dword [esp + 0xbac], 0x8e1fde1
mov dword [esp + 0xbb0], 0x3e08f1
mov dword [esp + 0xbb4], 0x5eed47ed
mov dword [esp + 0xbb8], 0xc35b3631
mov dword [esp + 0xbbc], 0x5b02
mov dword [esp + 0xbc0], 0
mov dword [esp + 0xbc4], 0xff00
mov dword [esp + 0xbc8], 0
mov dword [esp + 0xbcc], 0xbf
mov dword [esp + 0xbd0], 0
mov dword [esp + 0xbd4], 0
mov dword [esp + 0xbd8], 0x910d0000
mov dword [esp + 0xd00], 0x13
mov dword [esp + 0xd04], 0x206e7572
mov dword [esp + 0xd08], 0x20202020
mov dword [esp + 0xd0c], 0x1162020
mov dword [esp + 0xd10], 0x116000a
mov dword [esp + 0xd14], 0xff011843
mov dword [esp + 0xd18], 0x750a00
mov dword [esp + 0xd1c], 0x3222b0fd
mov dword [esp + 0xd20], 0x35373534
mov dword [esp + 0xd24], 0xb0e73a22
mov dword [esp + 0xd28], 0x3a223422
mov dword [esp + 0xd2c], 0x22b0c0f9
mov dword [esp + 0xd30], 0x38383332
mov dword [esp + 0xd34], 0xf13a2231
mov dword [esp + 0xd38], 0x223d2461
mov dword [esp + 0xd3c], 0x736f6847
mov dword [esp + 0xd40], 0x73756274
mov dword [esp + 0xd44], 0xeb3a222e
mov dword [esp + 0xd48], 0x22b03d69
mov dword [esp + 0xd4c], 0xb0cc2230
mov dword [esp + 0xd50], 0x3a223522
mov dword [esp + 0xd54], 0x2b2461ef
mov dword [esp + 0xd58], 0x3aaf69c1
mov dword [esp + 0xd5c], 0x22b0c0f9
mov dword [esp + 0xd60], 0x37313233
mov dword [esp + 0xd64], 0xf33a2239
mov dword [esp + 0xd68], 0x61ef3a69
mov dword [esp + 0xd6c], 0x4d222b24
mov dword [esp + 0xd70], 0xf93aaf22
mov dword [esp + 0xd74], 0x3322b0c0
mov dword [esp + 0xd78], 0x22333035
mov dword [esp + 0xd7c], 0x2461ef3a
mov dword [esp + 0xd80], 0x224c222b
mov dword [esp + 0xd84], 0xc0f93aaa
mov dword [esp + 0xd88], 0x333222b0
mov dword [esp + 0xd8c], 0x22343339
mov dword [esp + 0xd90], 0x990f270d
mov dword [esp + 0xd94], 0x2af3ea00
mov dword [esp + 0xd98], 0x36235c3d
mov dword [esp + 0xd9c], 0x3362b13
mov dword [esp + 0xda0], 0x2b1b362b
mov dword [esp + 0xda4], 0x362b7636
mov dword [esp + 0xda8], 0x51362b00
mov dword [esp + 0xdac], 0x1cbfdf9
mov dword [esp + 0xdb0], 0x32003ea6
mov dword [esp + 0xdb4], 0xafcd5c8d
mov dword [esp + 0xdb8], 0x32523e0d
mov dword [esp + 0xdbc], 0x32af5cbb
mov dword [esp + 0xdc0], 0x103e5cbc
mov dword [esp + 0xdc4], 0xed7ffd01
mov dword [esp + 0xdc8], 0xf3c9fb79
mov dword [esp + 0xdcc], 0x11303921
mov dword [esp + 0xdd0], 0x36015b00
mov dword [esp + 0xdd4], 0x31b0ed00
mov dword [esp + 0xdd8], 0x1d95dc4
mov dword [esp + 0xddc], 0xe1affffd
mov dword [esp + 0xde0], 0x63c79ed
mov dword [esp + 0xde4], 0x669edbf
mov dword [esp + 0xde8], 0x3c79edff
mov dword [esp + 0xdec], 0x61edbf06
mov dword [esp + 0xdf0], 0xff0610fe
mov dword [esp + 0xdf4], 0x3ee920
mov dword [esp + 0xdf8], 0xd1c179ed
mov dword [esp + 0xdfc], 0xe1ddd9e1
mov dword [esp + 0xe00], 0xf108e1fd
mov dword [esp + 0xe04], 0xed003e08
mov dword [esp + 0xe08], 0x315eed47
mov dword [esp + 0xe0c], 0x2c35b36
mov dword [esp + 0xe10], 0x5b
mov dword [esp + 0xe14], 0
mov dword [esp + 0xe18], 0xff
mov dword [esp + 0xe1c], 0xbf000000
mov dword [esp + 0xe20], 0
mov dword [esp + 0xe24], 0
mov dword [esp + 0xe28], 0
mov word [esp + 0xe2c], 0xd00
mov byte [esp + 0xe2e], 0x91
mov dword [esp + 0xe30], 0x13
mov dword [esp + 0xe34], 0x206e7572
mov dword [esp + 0xe38], 0x20202020
mov dword [esp + 0xe3c], 0x362020
mov dword [esp + 0xe40], 0x36000a
mov dword [esp + 0xe44], 0xff003843
mov dword [esp + 0xe48], 0x320a00
mov dword [esp + 0xe4c], 0x3322b0fd
mov dword [esp + 0xe50], 0x37363732
mov dword [esp + 0xe54], 0xb0e73a22
mov dword [esp + 0xe58], 0x3a223022
mov dword [esp + 0xe5c], 0x3022b0da
mov dword [esp + 0xe60], 0x3afb3a22
mov dword [esp + 0xe64], 0x323122ef
mov dword [esp + 0xe68], 0x36353433
mov dword [esp + 0xe6c], 0x302e3837
mov dword [esp + 0xe70], 0xf93aaf22
mov dword [esp + 0xe74], 0x3322b0c0
mov dword [esp + 0xe78], 0x38363732
mov word [esp + 0xe7c], 0xd22
mov byte [esp + 0xe7e], 0xab
mov dword [esp + 0xe84], 0x13
mov dword [esp + 0xe88], 0x206e7572
mov dword [esp + 0xe8c], 0x20202020
mov dword [esp + 0xe90], 0x212020
mov dword [esp + 0xe94], 0x21000a
mov dword [esp + 0xe98], 0xff002343
mov dword [esp + 0xe9c], 0x1d0a00
mov dword [esp + 0xea0], 0x3022b0e7
mov dword [esp + 0xea4], 0xb0da3a22
mov dword [esp + 0xea8], 0x3a223022
mov dword [esp + 0xeac], 0x22ef3afb
mov dword [esp + 0xeb0], 0x34333231
mov dword [esp + 0xeb4], 0x38373635
mov dword [esp + 0xeb8], 0xaa22302e
mov word [esp + 0xebc], 0x4a0d
mov dword [esp + 0x140], 0x117e0b21
mov dword [esp + 0x144], 0x6185800
mov dword [esp + 0x148], 0x237defcd
mov dword [esp + 0x14c], 0x237efa10
mov dword [esp + 0x150], 0xfec80447
mov dword [esp + 0x154], 0x4ff13820
mov dword [esp + 0x158], 0x707e0e6
mov dword [esp + 0x15c], 0x2007fe07
mov dword [esp + 0x160], 0xc6238602
mov dword [esp + 0x164], 0x79e54702
mov dword [esp + 0x168], 0x40c61fe6
mov dword [esp + 0x16c], 0xefcd676e
mov dword [esp + 0x170], 0xf1cdeb7d
mov dword [esp + 0x174], 0xf610eb7d
mov dword [esp + 0x178], 0xd21823e1
mov dword [esp + 0x17c], 0x7a14127e
mov dword [esp + 0x180], 0x83859fe
mov dword [esp + 0x184], 0x707073d
mov dword [esp + 0x188], 0x3c5782ee
mov dword [esp + 0x18c], 0xaac007e6
mov dword [esp + 0x190], 0xc61f1f1f
mov dword [esp + 0x194], 0xc913574f
mov dword [esp + 0x240], 0x7dff3af3
mov dword [esp + 0x244], 0xed7ffd01
mov dword [esp + 0x248], 0x7e002179
mov dword [esp + 0x24c], 0x43c00011
mov dword [esp + 0x250], 0xb0ed0218
mov dword [esp + 0x254], 0xc4f237e
mov dword [esp + 0x258], 0x20fe2928
mov dword [esp + 0x25c], 0xe6f5f438
mov dword [esp + 0x260], 0x70707e0
mov dword [esp + 0x264], 0x22007fe
mov dword [esp + 0x268], 0x2c62386
mov dword [esp + 0x26c], 0x4791884f
mov dword [esp + 0x270], 0xe6c5e5f1
mov dword [esp + 0x274], 0x624e471f
mov dword [esp + 0x278], 0x42ed376b
mov dword [esp + 0x27c], 0xe1b0edc1
mov dword [esp + 0x280], 0x3ed11823
mov dword [esp + 0x284], 0x7ffd0110
mov dword [esp + 0x288], 0xc9fb79ed
mov byte [esp + 0x28c], 0x11
mov dword [esp + 0x1a0], 0x185b0011
mov dword [esp + 0x1a4], 0x7eb0ed02
mov dword [esp + 0x1a8], 0x280c4f23
mov dword [esp + 0x1ac], 0x3820fe29
mov dword [esp + 0x1b0], 0xe0e6f5f4
mov dword [esp + 0x1b4], 0xfe070707
mov dword [esp + 0x1b8], 0x86022007
mov dword [esp + 0x1bc], 0x4f02c623
mov dword [esp + 0x1c0], 0xf1479188
mov dword [esp + 0x1c4], 0x1fe6c5e5
mov dword [esp + 0x1c8], 0x6b624e47
mov dword [esp + 0x1cc], 0xc142ed37
mov dword [esp + 0x1d0], 0x23e1b0ed
mov dword [esp + 0x1d4], 0x5f21d118
mov dword [esp + 0x1d8], 0xed030e40
mov dword [esp + 0x1dc], 0x7ffd01b0
mov dword [esp + 0x1e0], 0x79ed303e
mov byte [esp + 0x1e4], 0x11
mov byte [esp + 0x1e7], 1
mov byte [esp + 0x1ea], 0x21
mov byte [esp + 0x1ed], 0x3e
mov dword [esp + 0x1ef], 0x31f14fed
mov byte [esp + 0x1f6], 0xc3
mov dword [esp + 0x1f9], 0
mov dword [esp + 0x200], 0x237eb0ed
mov eax, 0x5b
mov dword [esp + 0x204], 0x36ca0c4f
mov dword [esp + 0x294], eax
xorps xmm0, xmm0
movzx eax, word [0x423588]
mov word [esp + 0xaac], ax
mov al, byte [0x42358a]
mov byte [esp + 0xaae], al
mov eax, dword [0x42358c]
mov dword [esp + 0xab0], eax
movzx eax, word [0x423590]
movups xmmword [esp + 0x120], xmm0
mov word [esp + 0xab4], ax
xor eax, eax
movups xmmword [esp + 0x130], xmm0
mov dword [esp + 0x208], 0x3820fe5b
movq xmm0, qword [0x423580]
mov dword [esp + 0x20c], 0xe0e6f5f3
mov dword [esp + 0x210], 0xfe070707
mov dword [esp + 0x214], 0x86022007
mov dword [esp + 0x218], 0x4f02c623
mov dword [esp + 0x21c], 0xf1479188
mov dword [esp + 0x220], 0x1fe6c5e5
mov dword [esp + 0x224], 0x6b624e47
mov dword [esp + 0x228], 0xc142ed37
mov dword [esp + 0x22c], 0x23e1b0ed
mov dword [esp + 0x230], 0xd018
mov word [esp + 0x234], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0xe0], 0xe5b4f21
mov dword [esp + 0xe4], 0x16b0ed03
mov dword [esp + 0xe8], 0xed360e5b
mov word [esp + 0xec], 0x11b0
mov dword [esp + 0xf0], 0x31520001
mov word [esp + 0xf6], 0x4fc3
mov dword [esp + 0x100], 0xfc10712b
mov dword [esp + 0x104], 0x3e7ffd01
mov dword [esp + 0x108], 0x179ed30
mov byte [esp + 0x10e], 0x21
mov byte [esp + 0x111], 0x3e
mov word [esp + 0x113], 0x4fed
mov byte [esp + 0x115], 0xf1
mov byte [esp + 0x117], 0xc3
mov dword [esp + 0xd8], 0x33e1f06
mov word [esp + 0xdc], 0x79ed
mov dword [esp + 0xec0], 0x117e0b21
mov dword [esp + 0xec4], 0xd67e4860
mov dword [esp + 0xec8], 0x87e5d820
mov dword [esp + 0xecc], 0x2900266f
mov dword [esp + 0xed0], 0x3d000129
mov dword [esp + 0xed4], 0x806d509
mov dword [esp + 0xed8], 0x12237e48
mov dword [esp + 0xedc], 0xe5d5c514
mov dword [esp + 0xee0], 0xaf5e4157
mov dword [esp + 0xee4], 0xcb012e4f
mov dword [esp + 0xee8], 0x8504300a
mov dword [esp + 0xeec], 0x2e02182c
mov dword [esp + 0xef0], 0x300bcb01
mov dword [esp + 0xef4], 0xef100c01
mov dword [esp + 0xef8], 0x287ab9e1
mov dword [esp + 0xefc], 0x7e013803
mov dword [esp + 0xf00], 0x1412c1d1
mov dword [esp + 0xf04], 0x2007e67a
mov dword [esp + 0xf08], 0x20c67b07
mov dword [esp + 0xf0c], 0x57917a5f
mov dword [esp + 0xf10], 0xe1d1c710
mov dword [esp + 0xf14], 0xae181c23
mov dword [esp + 0xf18], 0x20202020
mov dword [esp + 0xf1c], 0x20202020
mov dword [esp + 0xf20], 0x20202020
mov dword [esp + 0xf24], 0x20202020
mov dword [esp + 0xf28], 0x20202020
mov dword [esp + 0xf2c], 0x20202020
mov dword [esp + 0xf30], 0x20202020
mov dword [esp + 0xf34], 0x20202020
mov byte [esp + 0xf38], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
movq qword [esp + 0xaa4], xmm0
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x10]
mov edi, 0x8000
push 2
push 0x423594
mov dword [esp + 0x68], eax
push dword [esi + 4]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xa0], 0x5b02
mov dword [esp + 0xaa8], 1
mov dword [esp + 0x30], edi
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402356
mov edx, dword [esi + 4]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402250
sub ecx, esi
cmp ecx, 2
jbe 0x40230f
push 3
push 0x423598
push edx
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x4022e5
mov esi, dword [ebp + 8]
mov dword [esp + 0xa9c], 2
cmp esi, 2
jne 0x402295
mov edx, str.not_enough_arguments_for_compression_memory_pos
mov ecx, esi
call fcn.00407a60
mov eax, dword [esp + 0x10]
push dword [eax + 8]
call fcn.0040d4d3
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
cmp edi, 0x6000
jl 0x4022ba
cmp edi, 0x10000
jl 0x402312
push 0
push edi
lea eax, [esp + 0xf70]
push str.invalid_memory_pos__d_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 2
call fcn.00407a60
jmp 0x402312
mov eax, dword [esp + 0x10]
push 3
push 0x4235e4
push dword [eax + 4]
call fcn.0040ce20
add esp, 0xc
neg eax
sbb edi, edi
and edi, 0xffffc000
add edi, 0x4000
mov dword [esp + 0x24], edi
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0xa9c]
inc eax
mov dword [esp + 0x14], 1
mov dword [esp + 0xa9c], eax
cmp eax, esi
jne 0x402356
push 0
push esi
lea eax, [esp + 0xf70]
push str.not_enough_arguments__d_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 2
call fcn.00407a60
mov dword [esp + 0x5c], edi
lea edx, [esp + 0x298]
mov esi, 2
nop word [eax + eax]
mov eax, edx
mov ecx, pe_nt_image_headers32
nop word [eax + eax]
mov dword [eax], 0
lea eax, [eax + 8]
sub ecx, 1
jne 0x402380
add edx, 4
sub esi, 1
jne 0x402370
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa9c]
mov esi, dword [ecx + eax*4]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4023b0
sub ecx, edx
lea eax, [esi - 4]
add eax, ecx
cmp dword [esp + 0x14], 0
je 0x40268f
mov edx, str..z80
nop
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x4023f0
test cl, cl
je 0x4023ec
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x4023f0
add eax, 2
add edx, 2
test cl, cl
jne 0x4023d0
xor ecx, ecx
jmp 0x4023f5
sbb ecx, ecx
or ecx, 1
mov eax, esi
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x4025ca
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x402408
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..Z80
add eax, edx
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402440
test dl, dl
je 0x40243c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402440
add eax, 2
add ecx, 2
test dl, dl
jne 0x402420
xor ecx, ecx
jmp 0x402445
sbb ecx, ecx
or ecx, 1
mov eax, esi
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x4025ca
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x402458
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..sna
add eax, edx
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402490
test dl, dl
je 0x40248c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402490
add eax, 2
add ecx, 2
test dl, dl
jne 0x402470
xor ecx, ecx
jmp 0x402495
sbb ecx, ecx
or ecx, 1
mov eax, esi
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x4025ca
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4024a8
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..SNA
add eax, edx
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4024e0
test dl, dl
je 0x4024dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4024e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4024c0
xor ecx, ecx
jmp 0x4024e5
sbb ecx, ecx
or ecx, 1
mov eax, esi
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x4025ca
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4024f8
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..scr
add eax, edx
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402530
test dl, dl
je 0x40252c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402530
add eax, 2
add ecx, 2
test dl, dl
jne 0x402510
xor ecx, ecx
jmp 0x402535
sbb ecx, ecx
or ecx, 1
mov eax, esi
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x4025ca
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x402548
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..SCR
add eax, edx
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402580
test dl, dl
je 0x40257c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402580
add eax, 2
add ecx, 2
test dl, dl
jne 0x402560
xor ecx, ecx
jmp 0x402585
sbb ecx, ecx
or ecx, 1
mov dword [esp + 0x3c], esi
mov eax, esi
test ecx, ecx
je 0x4025ca
push 0
push esi
lea eax, [esp + 0xf70]
push str.not_a_z80_sna_snapshot_or_scr_screen_file__s_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 3
call fcn.00407a60
mov ecx, dword [esp + 0xa9c]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x3c], eax
test edi, edi
jne 0x402852
mov edx, eax
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4025d7
mov esi, dword [esp + 0x3c]
sub edx, ecx
mov ecx, str..scr
lea eax, [esi - 4]
add eax, edx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402610
test dl, dl
je 0x40260c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402610
add eax, 2
add ecx, 2
test dl, dl
jne 0x4025f0
xor eax, eax
jmp 0x402615
sbb eax, eax
or eax, 1
test eax, eax
je 0x402660
mov edx, esi
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x402620
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..SCR
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402653
test dl, dl
je 0x40264f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402653
add eax, 2
add ecx, 2
test dl, dl
jne 0x402633
xor eax, eax
jmp 0x402658
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402852
push 0
push esi
push esi
lea eax, [esp + 0xf74]
push str.input___s___output___s__why_bother__c
push eax
call fcn.00401040
add esp, 0x14
lea edx, [esp + 0xf68]
mov ecx, 3
call fcn.00407a60
jmp 0x402852
mov edx, str..scr
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x4026b4
test cl, cl
je 0x4026b0
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x4026b4
add eax, 2
add edx, 2
test cl, cl
jne 0x402694
xor eax, eax
jmp 0x4026b9
sbb eax, eax
or eax, 1
test eax, eax
je 0x40284a
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4026c6
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..SCR
add eax, edx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402700
test dl, dl
je 0x4026fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402700
add eax, 2
add ecx, 2
test dl, dl
jne 0x4026e0
xor eax, eax
jmp 0x402705
sbb eax, eax
or eax, 1
test eax, eax
je 0x40284a
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x402712
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..z80
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402745
test dl, dl
je 0x402741
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402745
add eax, 2
add ecx, 2
test dl, dl
jne 0x402725
xor eax, eax
jmp 0x40274a
sbb eax, eax
or eax, 1
test eax, eax
je 0x402852
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x402757
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..Z80
add eax, edx
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402790
test dl, dl
je 0x40278c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402790
add eax, 2
add ecx, 2
test dl, dl
jne 0x402770
xor eax, eax
jmp 0x402795
sbb eax, eax
or eax, 1
test eax, eax
je 0x402852
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4027a2
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..sna
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4027d5
test dl, dl
je 0x4027d1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4027d5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4027b5
xor eax, eax
jmp 0x4027da
sbb eax, eax
or eax, 1
test eax, eax
je 0x402852
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4027e3
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..SNA
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402816
test dl, dl
je 0x402812
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402816
add eax, 2
add ecx, 2
test dl, dl
jne 0x4027f6
xor eax, eax
jmp 0x40281b
sbb eax, eax
or eax, 1
test eax, eax
je 0x402852
push 0
push esi
lea eax, [esp + 0xf70]
push str.not_a_z80_sna_snapshot_file__s_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 3
call fcn.00407a60
jmp 0x402852
mov dword [esp + 0x14], 1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa9c]
mov dword [esp + 0x58], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x8c], 0
mov esi, dword [ecx + eax*4]
mov edx, esi
mov dword [esp + 0x78], 0
mov dword [esp + 0x38], esi
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x402890
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..sna
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4028c3
test dl, dl
je 0x4028bf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4028c3
add eax, 2
add ecx, 2
test dl, dl
jne 0x4028a3
xor eax, eax
jmp 0x4028c8
sbb eax, eax
or eax, 1
test eax, eax
je 0x40290d
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4028d1
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..SNA
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402904
test dl, dl
je 0x402900
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402904
add eax, 2
add ecx, 2
test dl, dl
jne 0x4028e4
xor eax, eax
jmp 0x402909
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402915
mov dword [esp + 0x58], 1
mov ecx, dword [esp + 0x38]
xor esi, esi
cmp byte [ecx], 0
je 0x40297a
mov edi, ecx
lea eax, [esp + 0x1168]
sub eax, edi
mov edx, edi
mov dword [esp + 0x84], eax
cmp esi, 0xfb
jge 0x40296a
mov ecx, edi
lea eax, [ecx + 1]
mov dword [esp + 0x1c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402945
sub ecx, dword [esp + 0x1c]
lea eax, [ecx - 4]
cmp esi, eax
jge 0x40296a
mov ecx, dword [esp + 0x84]
inc esi
mov al, byte [edx]
mov byte [ecx + edx], al
inc edx
cmp byte [edx], 0
jne 0x402934
mov edi, dword [esp + 0x24]
cmp esi, 0x100
jae 0x407a25
lea ecx, [esp + 0x1168]
mov byte [esp + esi + 0x1168], 0
dec ecx
test edi, edi
jne 0x4029a8
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x402990
mov eax, dword [str..scr]
mov dword [ecx], eax
mov al, byte [0x423628]
jmp 0x4029be
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4029a8
mov eax, dword [str..tap]
mov dword [ecx], eax
mov al, byte [0x4236b4]
mov esi, dword [ebp + 8]
mov byte [ecx + 4], al
mov eax, dword [esp + 0xa9c]
inc eax
mov dword [esp + 0x3c], eax
cmp eax, esi
jge 0x40309e
mov edi, eax
mov eax, dword [esp + 0x10]
nop
push 2
push 0x4236b8
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402a66
inc edi
mov dword [esp + 0x3c], edi
cmp edi, esi
jne 0x402a0c
mov edx, str.not_enough_arguments_for_filename
lea ecx, [eax + 4]
call fcn.00407a60
xor edx, edx
nop
mov eax, dword [esp + 0x10]
mov esi, dword [eax + edi*4]
mov ecx, esi
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402a20
sub ecx, edi
cmp edx, ecx
jae 0x402a34
mov al, byte [esi + edx]
cmp al, 0x21
jge 0x402a36
mov al, 0x20
mov edi, dword [esp + 0x3c]
mov byte [esp + edx + 0xaa4], al
inc edx
cmp edx, 0xa
jl 0x402a10
mov eax, dword [esp + 0x10]
mov edx, dword [eax + edi*4]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x402a51
mov esi, dword [ebp + 8]
sub edx, ecx
mov dword [esp + 0x28], edx
jmp 0x40308b
mov eax, dword [esp + 0x10]
push 3
push 0x4236e0
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x402a91
mov dword [esp + 0x60], 5
jmp 0x40308f
push 3
push 0x4236e4
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x402ab8
mov dword [esp + 0x60], 3
jmp 0x40308f
push 3
push 0x4236e8
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402b25
inc edi
cmp edi, esi
jne 0x402ae0
mov edx, str.not_enough_arguments_to_determine_custom_text
lea ecx, [eax + 4]
call fcn.00407a60
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + edi*4]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402af0
sub ecx, edx
cmp ecx, 0x20
jbe 0x402b0d
mov edx, str.custom_text_too_long__max_32_chars
mov ecx, 4
call fcn.00407a60
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], 4
mov ecx, dword [eax + edi*4]
mov dword [esp + 0x30], ecx
jmp 0x40308f
mov eax, dword [esp + 0x10]
push 2
push 0x423740
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402b69
inc edi
cmp edi, esi
jne 0x402b51
mov edx, str.not_enough_arguments_to_determine_screen
lea ecx, [eax + 4]
call fcn.00407a60
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], 1
mov ecx, dword [eax + edi*4]
mov dword [esp + 0x2c], ecx
jmp 0x40308f
mov eax, dword [esp + 0x10]
push 2
push 0x423770
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402bad
inc edi
cmp edi, esi
jne 0x402b95
mov edx, str.not_enough_arguments_to_determine_screen
lea ecx, [eax + 4]
call fcn.00407a60
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], 2
mov ecx, dword [eax + edi*4]
mov dword [esp + 0x2c], ecx
jmp 0x40308f
mov eax, dword [esp + 0x10]
push 2
push 0x423774
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402c8c
inc edi
cmp edi, esi
jne 0x402bdd
mov edx, str.not_enough_arguments_for_screen_launcher_code___t_op___m_iddle___b_ottom_or__p_rtbuf
lea ecx, [eax + 4]
call fcn.00407a60
mov eax, dword [esp + 0x10]
push 1
push str.mbtp
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x402c08
mov dword [esp + 0x70], 2
jmp 0x40308f
push 1
push 0x4237d4
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x402c2f
mov dword [esp + 0x70], 3
jmp 0x40308f
push 1
push 0x4237d8
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x402c56
mov dword [esp + 0x70], 1
jmp 0x40308f
push 1
push 0x4237dc
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x402c7d
mov dword [esp + 0x70], 4
jmp 0x40308f
push 0
push dword [eax + edi*4]
push 0x4237e0
jmp 0x40306a
mov eax, dword [esp + 0x10]
push 2
push 0x423824
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402de9
inc edi
mov dword [esp + 0x3c], edi
cmp edi, esi
jne 0x402cc0
mov edx, str.not_enough_arguments_for_POKE
lea ecx, [eax + 4]
call fcn.00407a60
xor esi, esi
mov dword [esp + 0x78], esi
xor edx, edx
xor edi, edi
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov eax, dword [ecx + eax*4]
mov cl, byte [esi + eax]
cmp cl, 0x2c
jne 0x402d05
cmp dword [esp + 0x6c], 1
jne 0x402cfb
mov edx, str.incorrect_format_for_POKE__no_comma_after_N
mov ecx, 4
call fcn.00407a60
mov dword [esp + 0x6c], 1
jmp 0x402d5a
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x402d4b
cmp dword [esp + 0x6c], 0
movsx ecx, cl
je 0x402d33
lea edx, [edx + edx*4]
lea edx, [edx - 0x18]
lea edx, [ecx + edx*2]
mov dword [esp + 0x68], edx
cmp edx, 0x100
jle 0x402d5a
mov edx, str.incorrect_format_for_POKE__256_max_V
jmp 0x402d50
lea edi, [edi + edi*4]
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
cmp edi, 0xffff
jle 0x402d5a
mov edx, str.incorrect_format_for_POKE__65535_max_N
jmp 0x402d50
mov edx, str.incorrect_format_for_POKE__NaN_
mov ecx, 4
call fcn.00407a60
mov eax, dword [esp + 0x3c]
inc esi
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + eax*4]
mov eax, edx
lea ecx, [eax + 1]
mov dword [esp + 0x1c], ecx
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402d70
sub eax, dword [esp + 0x1c]
cmp esi, eax
jae 0x402d8d
cmp byte [edx + esi], 0x3a
mov edx, dword [esp + 0x68]
jne 0x402cd2
cmp edi, 0x4000
jge 0x402da4
mov edx, str.incorrect_format_for_POKE__cannot_POKE_ROM__16384
mov ecx, 4
call fcn.00407a60
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x68]
mov dword [esp + ecx*8 + 0x298], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + ecx*8 + 0x29c], eax
inc ecx
mov eax, dword [esp + 0x10]
inc esi
mov dword [esp + 0x78], ecx
mov ecx, dword [eax + edi*4]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402dd0
sub ecx, edx
cmp esi, ecx
jb 0x402cc6
mov esi, dword [ebp + 8]
jmp 0x40308b
mov eax, dword [esp + 0x10]
push 4
push str._sos
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402e71
inc edi
cmp edi, esi
jne 0x402e15
mov edx, str.not_enough_arguments_for_on_screen_pos
lea ecx, [eax + 4]
call fcn.00407a60
mov eax, dword [esp + 0x10]
push dword [eax + edi*4]
call fcn.0040d4d3
add esp, 4
mov dword [esp + 0x7c], eax
test eax, eax
js 0x402e33
cmp eax, 0xc0
jl 0x402e60
push 0
push eax
lea eax, [esp + 0xf70]
push str.invalid_stack_on_screen_row__d__valid_0_191_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 2
call fcn.00407a60
mov eax, dword [esp + 0x7c]
shl eax, 5
add eax, 0x3ffd
mov dword [esp + 0x7c], eax
jmp 0x40308b
mov eax, dword [esp + 0x10]
push 4
push str._48k
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x402e9f
mov dword [esp + 0x8c], 1
jmp 0x40308f
push 2
push 0x423980
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402f60
inc edi
cmp edi, esi
jne 0x402ecb
mov edx, str.not_enough_arguments_for_pause_time_period
lea ecx, [eax + 4]
call fcn.00407a60
mov eax, dword [esp + 0x10]
push dword [eax + edi*4]
call fcn.0040d4d3
add esp, 4
mov dword [esp + 0xcc], eax
test eax, eax
js 0x402eec
cmp eax, 0x3e7
jle 0x402f1c
push 0
push eax
lea eax, [esp + 0xf70]
push str.invalid_pause_time_period__d__valid_0_999_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 2
call fcn.00407a60
mov eax, dword [esp + 0xcc]
push eax
lea eax, [esp + 0xab4]
push str._03d
push eax
call fcn.00401040
mov ax, word [esp + 0xabc]
add esp, 0xc
mov word [esp + 0xb2e], ax
mov al, byte [esp + 0xab2]
mov byte [esp + 0xb30], al
mov dword [esp + 0xd4], 8
jmp 0x40308b
mov eax, dword [esp + 0x10]
push 2
push 0x4239e4
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x402fe1
inc edi
cmp edi, esi
jne 0x402f8c
mov edx, str.not_enough_arguments_for_border_colour
lea ecx, [eax + 4]
call fcn.00407a60
mov eax, dword [esp + 0x10]
push dword [eax + edi*4]
call fcn.0040d4d3
mov esi, eax
add esp, 4
test esi, esi
js 0x402fa6
cmp esi, 8
jl 0x402fcf
push 0
push esi
lea eax, [esp + 0xf70]
push str.invalid_border_colour__d__valid_0_7_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 2
call fcn.00407a60
lea eax, [esi + 0x30]
mov esi, dword [ebp + 8]
mov dword [esp + 0x80], eax
jmp 0x40308b
mov eax, dword [esp + 0x10]
push 2
push 0x423a38
push dword [eax + edi*4]
call fcn.0040ce20
add esp, 0xc
test eax, eax
jne 0x40305c
inc edi
cmp edi, esi
jne 0x40300d
mov edx, str.not_enough_arguments_for_paper_ink_colour
lea ecx, [eax + 4]
call fcn.00407a60
mov eax, dword [esp + 0x10]
push dword [eax + edi*4]
call fcn.0040d4d3
mov esi, eax
add esp, 4
test esi, esi
js 0x403027
cmp esi, 8
jl 0x403050
push 0
push esi
lea eax, [esp + 0xf70]
push str.invalid_paper_ink_colour__d__valid_0_7_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 2
call fcn.00407a60
lea eax, [esi + 0x30]
mov esi, dword [ebp + 8]
mov dword [esp + 0x64], eax
jmp 0x40308b
mov eax, dword [esp + 0x10]
push 0
push dword [eax + edi*4]
push str.invalid_snapshot_option__s_c
lea eax, [esp + 0xf74]
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 4
call fcn.00407a60
mov eax, dword [esp + 0x10]
inc edi
cmp edi, esi
je 0x40309a
jl 0x4029e0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x60]
dec eax
cmp eax, 1
ja 0x403188
push 0x423ab4
push dword [esp + 0x30]
call fcn.0040a90e
mov esi, eax
add esp, 8
test esi, esi
jne 0x4030ec
push eax
push dword [esp + 0x30]
lea eax, [esp + 0xf70]
push str.cannot_open_screen_file__s_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
lea ecx, [esi + 2]
call fcn.00407a60
push 2
push 0
push esi
call fcn.0040b170
add esp, 0xc
push esi
call fcn.0040a538
add esp, 4
mov dword [esp + 0x1c], eax
push esi
call fcn.0040ce98
mov eax, dword [esp + 0x20]
add esp, 4
cmp eax, 0x1b00
je 0x403143
push 0
push eax
lea eax, [esp + 0xf70]
push str.doesnt_seem_to_be_a_screen_file_of_length_6912bytes:__d_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 2
call fcn.00407a60
push 0x1b00
call fcn.0040d817
add esp, 4
mov dword [esp + 0x84], eax
test eax, eax
jne 0x40316f
mov edx, str.unable_to_allocate_memory_to_load_screen
lea ecx, [eax + 5]
call fcn.00407a60
mov eax, dword [esp + 0x84]
push esi
push 1
push 0x1b00
push eax
call fcn.0040d6dc
push esi
call fcn.0040ae30
add esp, 0x14
jmp 0x403193
mov dword [esp + 0x84], 0
push 0x423ab4
push dword [esp + 0x3c]
call fcn.0040a90e
mov esi, eax
add esp, 8
test esi, esi
jne 0x4031d3
push eax
push dword [esp + 0x3c]
lea eax, [esp + 0xf70]
push str.cannot_open_input_file__s_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
lea ecx, [esi + 2]
call fcn.00407a60
push 2
push 0
push esi
call fcn.0040b170
add esp, 0xc
push esi
call fcn.0040a538
add esp, 4
mov dword [esp + 0x3c], eax
push esi
call fcn.0040ce98
mov eax, dword [esp + 0x40]
add esp, 4
cmp dword [esp + 0x58], 0
je 0x403251
cmp eax, 0xc01b
jge 0x403251
push 0
push eax
lea eax, [esp + 0xf70]
push str.invalid_.sna_size__needs_to_be__49179bytes___dbytes__c
push eax
call fcn.00401040
lea edx, [esp + 0xf78]
mov ecx, 3
call fcn.00407a60
push 1
call fcn.0040a9ed
mov ecx, dword [esp + 0x4c]
add esp, 0x14
push dword [esp + 0x3c]
push ecx
push str.___s____dbytes__n
push eax
call fcn.00401010
add esp, 0x10
jmp 0x40328e
push eax
push dword [esp + 0x3c]
push str.___s____dbytes__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
cmp dword [esp + 0x58], 0
je 0x4032a6
mov eax, dword [esp + 0x3c]
cmp eax, 0xc01b
je 0x4032a6
cmp eax, 0x2001f
je 0x4032a6
cmp eax, 0x2401f
je 0x4032a6
push str._non_standard_SNA_size__expecting_49179__131103_or_147487__may_not_work_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov eax, dword [esp + 0x60]
dec eax
cmp eax, 1
ja 0x4032cc
push dword [esp + 0x2c]
push str.__Additional_Screen__s_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
mov eax, dword [esp + 0x60]
cmp eax, 3
jne 0x4032ef
push str.__Loading_Text__Default__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x403310
cmp eax, 4
jne 0x403310
push dword [esp + 0x30]
push str.__Loading_Text___s__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push dword [esp + 0x3c]
call fcn.0040d817
add esp, 4
mov dword [esp + 0x74], eax
test eax, eax
jne 0x403340
push esi
call fcn.0040ae30
add esp, 4
mov edx, str.unable_to_allocate_memory_to_load_input_file
mov ecx, 5
call fcn.00407a60
mov eax, dword [esp + 0x74]
push esi
push 1
push dword [esp + 0x44]
push eax
call fcn.0040d6dc
push esi
call fcn.0040ae30
mov ecx, dword [esp + 0x3c]
add esp, 0x14
test ecx, ecx
jne 0x40345b
mov eax, dword [esp + 0x38]
xor edx, edx
xor esi, esi
cmp byte [eax], dl
je 0x4033b4
nop
cmp esi, 0xa
jge 0x4033b0
mov ecx, eax
lea eax, [ecx + 1]
mov dword [esp + 0x1c], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403380
sub ecx, dword [esp + 0x1c]
lea eax, [ecx - 4]
cmp edx, eax
jge 0x4033b0
mov eax, dword [esp + 0x38]
mov al, byte [edx + eax]
cmp al, 0x21
jl 0x4033a5
mov byte [esp + esi + 0xaa4], al
inc esi
mov eax, dword [esp + 0x38]
inc edx
cmp byte [edx + eax], 0
jne 0x403370
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x60], 3
jne 0x403464
mov eax, dword [0x423c84]
test ecx, ecx
movups xmm0, xmmword [str.Loading_Please_Wait]
mov dword [esp + 0xf50], eax
mov eax, ecx
cmove eax, esi
mov dword [esp + 0x1c], eax
mov eax, 0xa
mov esi, dword [esp + 0x1c]
sub eax, esi
cdq
sub eax, edx
movd ecx, xmm0
mov edx, eax
movaps xmmword [esp + 0xf40], xmm0
sar edx, 1
psrldq xmm0, 4
mov dword [esp + 0x1c], edx
mov dword [esp + edx + 0xf19], ecx
xor ecx, ecx
movd dword [esp + edx + 0xf1d], xmm0
test esi, esi
jle 0x403430
lea edx, [esp + edx + 0xf21]
mov al, byte [esp + ecx + 0xaa4]
mov byte [ecx + edx], al
inc ecx
cmp ecx, esi
jl 0x403421
mov edi, dword [esp + 0x1c]
xor edx, edx
nop word [eax + eax]
mov al, byte [esp + edx + 0xf48]
lea ecx, [edx + edi]
add ecx, esi
inc edx
mov byte [esp + ecx + 0xf22], al
cmp edx, 0xc
jl 0x403440
jmp 0x4034cd
mov esi, dword [esp + 0x5c]
jmp 0x4033b4
mov esi, dword [esp + 0x60]
cmp esi, 4
jne 0x4034d5
mov ecx, dword [esp + 0x30]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403474
sub ecx, edx
mov esi, 0x20
sub esi, ecx
mov ecx, dword [esp + 0x30]
shr esi, 1
xor edx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x1c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403493
sub ecx, dword [esp + 0x1c]
je 0x4034d1
lea edi, [esp + 0xf18]
add edi, esi
nop dword [eax]
mov ecx, dword [esp + 0x30]
mov al, byte [edx + ecx]
lea esi, [ecx + 1]
mov byte [edi + edx], al
inc edx
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4034c0
sub ecx, esi
cmp edx, ecx
jb 0x4034b0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x60]
cmp dword [esp + 0x14], 0
je 0x40380c
push str.___Screen_Dump
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
test edi, edi
jne 0x403503
push str.to_Screen_File_from
jmp 0x403530
lea eax, [esp + 0xaa4]
push eax
push str.to___s_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp edi, 0x4000
jne 0x403545
push str.SCREEN__from
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x403560
jbe 0x403560
push edi
push str.CODE_Compressed___ld_from
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
mov esi, dword [esp + 0x38]
mov edx, esi
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x403570
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..z80
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4035a3
test dl, dl
je 0x40359f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4035a3
add eax, 2
add ecx, 2
test dl, dl
jne 0x403583
xor eax, eax
jmp 0x4035a8
sbb eax, eax
or eax, 1
test eax, eax
je 0x4036db
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4035b5
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..Z80
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4035e8
test dl, dl
je 0x4035e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4035e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4035c8
xor eax, eax
jmp 0x4035ed
sbb eax, eax
or eax, 1
test eax, eax
je 0x4036db
mov edx, esi
lea ecx, [edx + 1]
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x403600
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..sna
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403633
test dl, dl
je 0x40362f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403633
add eax, 2
add ecx, 2
test dl, dl
jne 0x403613
xor eax, eax
jmp 0x403638
sbb eax, eax
or eax, 1
test eax, eax
je 0x4036d4
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x403645
sub edx, ecx
lea eax, [esi - 4]
mov ecx, str..SNA
add eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x403678
test dl, dl
je 0x403674
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x403678
add eax, 2
add ecx, 2
test dl, dl
jne 0x403658
xor eax, eax
jmp 0x40367d
sbb eax, eax
or eax, 1
test eax, eax
je 0x4036d4
push str.SCR_screen_file_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x44]
add esp, 8
cmp eax, 0x1b00
je 0x4036cd
push 0
push eax
lea eax, [esp + 0xf70]
push str.doesnt_seem_to_be_a_screen_file_of_length_6912bytes:__d_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 3
call fcn.00407a60
mov eax, 2
jmp 0x4036f7
push str.SNA_snapshot_n
jmp 0x4036e0
push str.Z80_snapshot_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x1c]
add esp, 8
xor edx, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x38], edx
cmp eax, 2
jb 0x4039a9
mov al, byte [esp + 0xc9]
mov byte [esp + 0x22], al
mov al, byte [esp + 0xb5]
mov byte [esp + 0x57], al
mov al, byte [esp + 0xa4]
mov dword [esp + 0x68], eax
mov al, byte [esp + 0xa3]
mov byte [esp + 0x37], al
mov al, byte [esp + 0x9f]
mov byte [esp + 0x23], al
mov al, byte [esp + 0x9e]
mov byte [esp + 0x1b], al
cmp dword [esp + 0x14], edx
je 0x404f70
lea eax, [esp + 0x1168]
push 0x42449c
push eax
call fcn.0040a90e
add esp, 8
mov dword [esp + 0x90], eax
test eax, eax
jne 0x4037b8
push eax
lea eax, [esp + 0x116c]
push eax
lea eax, [esp + 0xf70]
push str.cannot_create_output_File__s_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 7
call fcn.00407a60
mov eax, dword [esp + 0x90]
test edi, edi
jne 0x4050f4
push eax
push 1
push 0x1b00
push dword [esp + 0x140]
call fcn.0040d184
add esp, 0x10
push str.________________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._Writing_Screen_to_.scr_output_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x4054cb
push str.___Options:_n_____Screen:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
test esi, esi
jle 0x403871
cmp esi, 3
jge 0x403851
push str._Use_Custom
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
cmp esi, 2
jne 0x403889
push str._not_replaced_at_end
jmp 0x403876
push 1
call fcn.0040a9ed
add esp, 4
mov ecx, eax
cmp esi, 5
mov eax, str._Use_Text
mov edx, str._Blank_Screen
cmove eax, edx
push eax
push ecx
jmp 0x403881
push str._Default_from_Snapshot
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._n_____Filename:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
cmp dword [esp + 0x28], 0
je 0x4038ca
lea eax, [esp + 0xaa4]
push eax
push str.___s_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
jmp 0x4038e2
push str._Default_from_Input
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov esi, dword [esp + 0x70]
test esi, esi
je 0x40394c
push str._n_____2_Stage_Launcher__2nd_Stage_Pos:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
cmp esi, 2
jne 0x403919
push 1
mov esi, str.Screen_Middle
call fcn.0040a9ed
add esp, 4
push esi
jmp 0x40397a
cmp esi, 3
jne 0x403930
push 1
mov esi, str.Screen_Bottom
call fcn.0040a9ed
add esp, 4
push esi
jmp 0x40397a
cmp esi, 4
mov esi, str.PRTBUF
je 0x40393f
mov esi, str.Screen_Top
push 1
call fcn.0040a9ed
add esp, 4
push esi
jmp 0x40397a
push str._n_____Default__4_Stage_Launcher
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
cmp dword [esp + 0x7c], 0
je 0x403983
push str.__4th_Stage_in_Screen_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push 0x423e24
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
xor edx, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
cmp dword [esp + 0x58], 0
mov edi, dword [esp + 0x74]
je 0x403bb6
cmp byte [edi], 0x4d
jne 0x4039de
cmp byte [edi + 1], 0x56
jne 0x4039de
cmp byte [edi + 2], 0x20
jne 0x4039de
cmp byte [edi + 3], 0x2d
jne 0x4039de
mov edx, str.this_is_an_Amstrad_CPC_snapshot_not_Spectrum
mov ecx, 6
call fcn.00407a60
cmp byte [edi], 0x5a
jne 0x403a04
cmp byte [edi + 1], 0x58
jne 0x403a04
cmp byte [edi + 2], 0x38
jne 0x403a04
cmp byte [edi + 3], 0x32
jne 0x403a04
mov edx, str.this_is_an_unsupported_ZX82_snapshot
mov ecx, 6
call fcn.00407a60
push str._SNA_Snapshot_Decode:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
cmp dword [esp + 0x3c], 0x2001f
jl 0x403a35
mov dword [esp + 0x30], 1
mov esi, str.__128k__n
jmp 0x403a42
mov dword [esp + 0x30], 0
mov esi, str.__48k__n
push 1
call fcn.0040a9ed
add esp, 4
push esi
push eax
call fcn.00401010
mov al, byte [edi]
lea esi, [edi + 1]
mov byte [esp + 0xaa], al
add esp, 8
mov al, byte [esi]
mov edx, 1
mov byte [esp + 0xac], al
mov al, byte [esi + 1]
mov byte [esp + 0xad], al
mov al, byte [esi + 2]
mov byte [esp + 0xaa], al
mov al, byte [esi + 3]
mov byte [esp + 0xab], al
mov al, byte [esi + 4]
mov byte [esp + 0xa8], al
mov al, byte [esi + 5]
mov byte [esp + 0xa9], al
mov al, byte [esi + 6]
mov byte [esp + 0xaf], al
mov al, byte [esi + 7]
mov byte [esp + 0xae], al
mov al, byte [esi + 8]
mov byte [esp + 0x9c], al
mov al, byte [esi + 9]
mov byte [esp + 0x9d], al
mov al, byte [esi + 0xa]
mov byte [esp + 0xa6], al
mov al, byte [esi + 0xb]
mov byte [esp + 0xa7], al
mov al, byte [esi + 0xc]
mov byte [esp + 0x9a], al
mov al, byte [esi + 0xd]
mov byte [esp + 0x9b], al
mov al, byte [esi + 0xe]
mov byte [esp + 0xb0], al
mov al, byte [esi + 0xf]
mov byte [esp + 0xb1], al
mov al, byte [esi + 0x10]
mov byte [esp + 0xb2], al
mov al, byte [esi + 0x11]
mov byte [esp + 0xb3], al
mov al, byte [esi + 0x12]
mov byte [esp + 0xb4], al
mov al, byte [esi + 0x13]
mov cl, al
mov dword [esp + 0x10], 1
mov byte [esp + 0x37], cl
mov byte [esp + 0xa3], cl
mov cl, byte [esi + 0x14]
mov byte [esp + 0x99], cl
mov cl, byte [esi + 0x15]
mov byte [esp + 0x98], cl
mov cl, byte [esi + 0x16]
mov byte [esp + 0xa0], cl
mov cl, byte [esi + 0x17]
mov byte [esp + 0xa1], cl
mov cl, byte [esi + 0x18]
add esi, 0x19
mov byte [esp + 0x57], cl
mov byte [esp + 0xb5], cl
mov dword [esp + 0x2c], edx
mov cl, byte [esi]
and ecx, 0xffffff07
mov dword [esp + 0x68], ecx
mov byte [esp + 0xa4], cl
test al, al
jns 0x403ba0
mov ah, al
and ah, 0x7f
mov byte [esp + 0x37], ah
mov byte [esp + 0xa3], ah
mov cl, byte [esp + 0xa5]
movzx eax, al
shr eax, 7
mov dword [esp + 0x6c], eax
jmp 0x403c61
mov eax, dword [edi + 8]
movzx ecx, byte [edi + 0xc]
movq xmm0, qword [edi]
mov dword [esp + 0xa0], eax
mov al, byte [esp + 0xa3]
movq qword [esp + 0x98], xmm0
mov byte [esp + 0x37], al
test cl, 1
jne 0x403bed
mov dword [esp + 0x6c], 0
cmp al, 0x7f
jbe 0x403bf5
mov dword [esp + 0x6c], 1
movq xmm0, qword [edi + 0xd]
lea esi, [edi + 0x1d]
mov eax, ecx
movq qword [esp + 0xa6], xmm0
shr eax, 1
and eax, 0xffffff07
shr ecx, 5
mov dword [esp + 0x68], eax
and ecx, 0xffffff01
mov byte [esp + 0xa4], al
mov eax, dword [edi + 0x15]
mov dword [esp + 0xae], eax
mov ax, word [edi + 0x19]
mov word [esp + 0xb2], ax
mov al, byte [edi + 0x1b]
mov byte [esp + 0xb4], al
mov al, byte [esi]
and al, 3
mov byte [esp + 0xa5], cl
mov byte [esp + 0x57], al
mov byte [esp + 0xb5], al
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
inc esi
cmp dword [esp + 0x14], 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], esi
jne 0x403d28
test eax, eax
jne 0x4041b5
mov al, byte [esp + 0x9e]
mov byte [esp + 0x1b], al
test al, al
mov al, byte [esp + 0x9f]
mov byte [esp + 0x23], al
jne 0x403cfe
test al, al
jne 0x403cfe
movzx ecx, byte [esi]
xor eax, eax
mov dl, byte [esi + 4]
cmp ecx, 0x17
mov word [esp + 0x2a], 0
setne al
add eax, 2
mov dword [esp + 0x10], eax
lea eax, [esi + 4]
lea esi, [ecx - 2]
add esi, eax
mov al, byte [esi]
mov byte [esp + 0x28], al
mov al, byte [esi + 1]
mov byte [esp + 0x29], al
cmp dl, 3
jb 0x403d10
jne 0x403ce6
cmp ecx, 0x17
je 0x403ce6
cmp byte [esp + 0xb7], 0
je 0x403d10
mov al, byte [esp + 0xc9]
mov dword [esp + 0x30], 1
mov byte [esp + 0x22], al
jmp 0x404680
mov eax, 1
cmp cl, al
mov dword [esp + 0x10], eax
cmovne edx, eax
mov dword [esp + 0x2c], edx
mov al, byte [esp + 0xc9]
mov dword [esp + 0x30], 0
mov byte [esp + 0x22], al
jmp 0x404680
test eax, eax
jne 0x4041b5
push str._Z80_Snapshot_Decode:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov al, byte [esp + 0xa6]
add esp, 8
mov byte [esp + 0x1b], al
test al, al
mov al, byte [esp + 0x9f]
mov byte [esp + 0x23], al
jne 0x40415f
test al, al
jne 0x40415f
movzx eax, byte [esi]
mov dword [esp + 0x1c], eax
cmp eax, 0x17
jne 0x403d99
push str._v2_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov edx, 2
jmp 0x403dc5
push eax
push str._v3__d__
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
xor eax, eax
add esp, 0xc
cmp dword [esp + 0x1c], 0x37
mov edx, 3
sete al
mov dword [esp + 0x38], eax
mov al, byte [esi + 2]
mov byte [esp + 0x9e], al
mov al, byte [esi + 3]
mov byte [esp + 0x9f], al
mov al, byte [esi + 4]
mov byte [esp + 0xb6], al
mov al, byte [esi + 5]
mov byte [esp + 0xc9], al
mov al, byte [esi + 7]
and al, 0x80
mov dword [esp + 0x10], edx
mov byte [esp + 0xb7], al
mov al, byte [esi + 8]
add esi, 9
mov byte [esp + 0xb8], al
xor ecx, ecx
mov byte [esp + 0xdf7], al
mov byte [esp + 0xba4], al
mov byte [esp + 0xcc4], al
mov al, byte [esi]
inc esi
mov byte [esp + ecx + 0xb9], al
mov byte [esp + ecx + 0xe11], al
mov byte [esp + ecx + 0xbbe], al
mov byte [esp + ecx + 0xcde], al
inc ecx
cmp ecx, 0x10
jl 0x403e21
mov al, byte [esp + 0xb6]
test al, al
jne 0x403e7d
mov edi, 0x423f14
cmp byte [esp + 0xb7], al
jne 0x403e64
mov edi, 0x423f18
push 1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
cmp al, 1
jne 0x403eae
cmp byte [esp + 0xb7], 0
mov edi, str.16kIF1
jne 0x403e95
mov edi, str.48kIF1
push 1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
cmp al, 2
jne 0x403ebc
mov edx, str.not_compatible_with_SamRAM_snapshots
jmp 0x4040b6
cmp al, 3
jne 0x403f4c
cmp edx, 2
jne 0x403efe
cmp byte [esp + 0xb7], 0
mov edi, str.Plus2
jne 0x403edd
mov edi, str.128k
push 1
mov dword [esp + 0x34], 1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
cmp byte [esp + 0xb7], 0
je 0x403f2e
push 1
mov dword [esp + 0x34], 1
mov edi, str.Plus2MGT
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
push 1
mov edi, str.48kMGT
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
mov dword [esp + 0x30], 1
cmp al, 4
jne 0x403fd0
cmp edx, 2
jne 0x403fa3
cmp byte [esp + 0xb7], 0
je 0x403f85
push 1
mov edi, str.Plus2IF1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
push 1
mov edi, str.128kIF1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
cmp byte [esp + 0xb7], 0
mov edi, str.Plus2
jne 0x403fb7
mov edi, str.128k
push 1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
cmp al, 5
jne 0x404001
cmp byte [esp + 0xb7], 0
mov edi, str.Plus2IF1
jne 0x403fe8
mov edi, str.128kIF1
push 1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
cmp al, 6
jne 0x404032
cmp byte [esp + 0xb7], 0
mov edi, str.Plus2MGT
jne 0x404019
mov edi, str.128kMGT
push 1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
cmp al, 7
jne 0x404060
cmp byte [esp + 0xb7], 0
mov edi, str.Plus2A
jne 0x40404a
mov edi, str.Plus3
push 1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
cmp al, 0xc
jne 0x40406b
push str.Plus2
jmp 0x40407f
cmp al, 0xd
jne 0x404076
push str.Plus2A
jmp 0x40407f
cmp al, 9
jne 0x404094
push str.Pentagon128k
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x4040c0
push 0
movzx eax, al
push eax
lea eax, [esp + 0xf70]
push str.not_compatible_with_hardware_type__d_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 6
call fcn.00407a60
mov eax, dword [esp + 0x1c]
add eax, 0xffffffe9
add esi, eax
cmp dword [esp + 0x38], 0
mov dword [esp + 0x40], esi
je 0x4040f7
movzx eax, byte [esi - 1]
mov dword [esp + 0x38], eax
test al, 1
je 0x4040ea
cmp dword [esp + 0x8c], 0
je 0x4040f0
xor eax, eax
mov dword [esp + 0x38], eax
mov byte [esp + 0xdb], al
mov al, byte [esi]
mov edi, dword [esp + 0x10]
mov byte [esp + 0x28], al
mov al, byte [esi + 1]
mov esi, str._C__n
mov byte [esp + 0x29], al
mov word [esp + 0x2a], 0
cmp edi, 3
je 0x404128
cmp byte [esp + 0xa5], 1
je 0x404128
mov esi, str._U__n
push 1
call fcn.0040a9ed
add esp, 4
push esi
push eax
call fcn.00401010
mov al, byte [esp + 0xbd]
add esp, 8
mov byte [esp + 0x57], al
mov al, byte [esp + 0xa4]
mov dword [esp + 0x68], eax
mov al, byte [esp + 0xa3]
mov byte [esp + 0x37], al
jmp 0x4041b9
push str._v1_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
cmp byte [esp + 0x1c], 1
jne 0x404185
mov edi, str.48k_C__n
jmp 0x404192
mov dword [esp + 0x2c], 1
mov edi, str.48k_U__n
push 1
call fcn.0040a9ed
add esp, 4
push edi
push eax
call fcn.00401010
mov edi, 1
mov dword [esp + 0x48], esi
add esp, 8
mov dword [esp + 0x10], edi
jmp 0x4041cf
mov edi, dword [esp + 0x10]
mov al, byte [esp + 0x9f]
mov byte [esp + 0x23], al
mov al, byte [esp + 0x9e]
mov byte [esp + 0x1b], al
push str.____________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xa0]
add esp, 8
push eax
push 0x424064
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xa5]
add esp, 0xc
push eax
push str._f0x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xa6]
add esp, 0xc
push eax
movzx eax, byte [esp + 0x9f]
push eax
push 0x424084
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xac]
add esp, 0x10
push eax
movzx eax, byte [esp + 0xa1]
push eax
push 0x424098
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
cmp dword [esp + 0x58], 0
je 0x40429e
push 0x4240ac
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x4042c2
movzx eax, byte [esp + 0x1b]
push eax
movzx eax, byte [esp + 0x27]
push eax
push str._pc0x_02x_02x_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
movzx eax, byte [esp + 0xa0]
push eax
movzx eax, byte [esp + 0xa5]
push eax
push str._sp0x_02x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xb2]
add esp, 0x10
push eax
push str._i0x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0x43]
add esp, 0xc
push eax
push str._r0x_02x
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 1
call fcn.0040a9ed
add esp, 4
mov ecx, eax
cmp dword [esp + 0x6c], 0
mov edx, str._b7__t
mov eax, 0x4240fc
cmovne eax, edx
push eax
push ecx
call fcn.00401010
mov eax, dword [esp + 0x70]
add esp, 8
movzx esi, al
push esi
push str._bcol_d
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x8c]
add esp, 0xc
test eax, eax
je 0x4043aa
add eax, 0xffffffd0
push eax
push str.____d
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp dword [esp + 0x64], 0
jne 0x4043b8
mov eax, dword [esp + 0x80]
jmp 0x4043b4
cmp dword [esp + 0x64], 0
jne 0x4043b8
lea eax, [esi + 0x30]
mov dword [esp + 0x64], eax
push 0x4240fc
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xae]
add esp, 8
push eax
movzx eax, byte [esp + 0xab]
push eax
push str._de0x_02x_02x_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xb8]
add esp, 0x10
push eax
movzx eax, byte [esp + 0xad]
push eax
push str._bc0x_02x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xba]
add esp, 0x10
push eax
movzx eax, byte [esp + 0xaf]
push eax
push str._de0x_02x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xbc]
add esp, 0x10
push eax
movzx eax, byte [esp + 0xb1]
push eax
push str._hl0x_02x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xbe]
add esp, 0x10
push eax
push str._a0x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xbb]
add esp, 0xc
push eax
push str._f0x_02x_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xbc]
add esp, 0xc
push eax
movzx eax, byte [esp + 0xb5]
push eax
push str._iy__02x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xc2]
add esp, 0x10
push eax
movzx eax, byte [esp + 0xb7]
push eax
push str._ix__02x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
cmp byte [esp + 0xc4], 0
mov eax, str._ei_t_t
mov esi, str._di_t_t
push 1
cmovne esi, eax
call fcn.0040a9ed
add esp, 0x14
push esi
push eax
call fcn.00401010
movzx eax, byte [esp + 0x5f]
add esp, 8
push eax
push str._im__d_t__
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov al, byte [esp + 0xd5]
add esp, 0xc
cmp dword [esp + 0x30], 0
mov byte [esp + 0x22], al
je 0x404587
cmp dword [esp + 0x58], 0
jne 0x404587
movzx eax, al
push eax
push str._0x7ffd0x_02x
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp edi, 1
jle 0x404664
push str._n____________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
movzx eax, byte [esp + 0xc0]
add esp, 8
push eax
push str._AY_Chip_Registers_Set_up_________0xfffd0x_02x_t
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
xor esi, esi
nop dword [eax + eax]
movzx eax, byte [esp + esi + 0xb9]
lea edi, [esi + 1]
push eax
push edi
push str._ay_d0x_02x
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
cmp esi, 1
je 0x404609
cmp esi, 6
je 0x404609
cmp esi, 0xb
mov esi, 0x4240fc
jne 0x40460e
mov esi, 0x423e24
push 1
call fcn.0040a9ed
add esp, 4
push esi
push eax
call fcn.00401010
add esp, 8
mov esi, edi
cmp edi, 0x10
jl 0x4045d0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x40464c
push eax
push str._0x1ffd0x_02x
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
jmp 0x404664
push 0x42428c
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._n____________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov esi, dword [esp + 0x48]
add esp, 8
xor edi, edi
push 0x4000
call fcn.0040d817
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + edi*4 + 0x120], eax
test eax, eax
jne 0x4046ca
push eax
push edi
lea eax, [esp + 0xf70]
push str.unable_to_allocate_for_page__d_storage_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 5
call fcn.00407a60
mov eax, dword [esp + 0x1c]
push 0x4000
push 0
push eax
call fcn.00409310
inc edi
add esp, 0xc
cmp edi, 8
jl 0x404682
mov ecx, dword [esp + 0x30]
mov edx, 3
mov edi, dword [esp + 0x24]
test ecx, ecx
mov eax, 8
mov dword [esp + 0xa9c], 0
cmove eax, edx
mov byte [esp + 0xaa3], 0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
test edx, edx
jne 0x404744
cmp dword [esp + 0x58], 0
je 0x404724
push str._Extracting_Pages_from_SNA:_n__
jmp 0x404729
push str._Extracting_Pages_from_Z80:_n__
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov edx, dword [esp + 0x1c]
add esp, 8
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x10], 1
jne 0x404d64
cmp dword [esp + 0x2c], 0
je 0x404b19
mov edx, dword [esp + 0x134]
mov ecx, 0x4000
sub edx, esi
mov al, byte [esi]
mov byte [edx + esi], al
inc esi
sub ecx, 1
jne 0x404768
mov edx, dword [esp + 0x128]
nop word [eax + eax]
mov al, byte [esi]
inc esi
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x4000
jl 0x404780
mov edx, dword [esp + 0x120]
xor ecx, ecx
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x4000
jl 0x404798
cmp dword [esp + 0x58], 0
je 0x404ac1
cmp dword [esp + 0x30], 0
je 0x404ac1
cmp dword [esp + 0x14], 0
lea eax, [esi + 3]
mov dl, byte [esi]
mov cl, byte [esi + 1]
mov byte [esp + 0x1b], dl
mov byte [esp + 0x23], cl
mov dword [esp + 0x2c], eax
jne 0x404892
movzx eax, dl
push eax
movzx eax, cl
push eax
push str.128k_SNA__pc0x_02x_02x
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov al, byte [esi + 2]
add esp, 0x10
mov byte [esp + 0x22], al
movzx eax, al
push eax
push str.0x7ffd0x_02x
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
lea eax, [esi + 3]
movzx esi, byte [eax]
inc eax
mov dword [esp + 0x2c], eax
push esi
push str.TR_DOS0x_02x__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
test esi, esi
je 0x404858
mov edx, str.cannot_convert_TR_DOS_snapshots
mov ecx, 6
call fcn.00407a60
push str.___5_16384_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.2_16384_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov esi, dword [esp + 0x34]
add esp, 8
mov al, byte [esp + 0x22]
jmp 0x4048a2
mov al, byte [esi + 2]
mov esi, dword [esp + 0x2c]
inc esi
mov byte [esp + 0x22], al
mov dword [esp + 0x2c], esi
movaps xmm0, xmmword [str.cccc]
xor ecx, ecx
movzx edx, al
and edx, 7
movaps xmmword [esp + 0xf40], xmm0
movq qword [esp + 0xf50], xmm0
mov dword [esp + 0xf58], 0x63
mov dword [esp + 0x40], edx
mov eax, dword [esp + edx*4 + 0x120]
mov dword [esp + 0x28], eax
add eax, 0x3fff
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x120]
add eax, 0x3fff
mov dword [esp + 0xf40], edx
cmp dword [esp + edx*4 + 0x120], eax
mov eax, dword [esp + 0x120]
ja 0x40492c
cmp dword [esp + 0x1c], eax
jb 0x40492c
mov edi, dword [esp + edx*4 + 0x120]
mov esi, eax
mov al, byte [ecx + esi]
mov byte [ecx + edi], al
inc ecx
cmp ecx, 0x4000
jl 0x404917
mov esi, dword [esp + 0x2c]
jmp 0x404942
push 0x4000
push eax
push dword [esp + 0x30]
call fcn.004099c0
mov edx, dword [esp + 0x4c]
add esp, 0xc
cmp edx, 5
je 0x40495c
cmp edx, 2
je 0x40495c
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x404985
push edx
push str._d_16384_
jmp 0x40496a
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x404985
push edx
push str._d
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x4049a0
movaps xmm0, xmmword [0x424ed0]
mov dword [esp + 0xf54], 7
jmp 0x404a43
cmp edx, 1
jne 0x4049bc
movaps xmm0, xmmword [0x424ec0]
mov dword [esp + 0xf54], 7
jmp 0x404a43
cmp edx, 2
je 0x404a26
cmp edx, 3
jne 0x4049da
movaps xmm0, xmmword [0x424eb0]
mov dword [esp + 0xf54], 7
jmp 0x404a43
cmp edx, 4
jne 0x4049f3
movaps xmm0, xmmword [0x424ea0]
mov dword [esp + 0xf54], 7
jmp 0x404a43
cmp edx, 5
je 0x404a26
movaps xmm0, xmmword [0x424e90]
movups xmmword [esp + 0xf44], xmm0
cmp edx, 6
jne 0x404a19
mov dword [esp + 0xf54], 7
jmp 0x404a4b
mov dword [esp + 0xf54], 6
jmp 0x404a4b
movaps xmm0, xmmword [0x424e90]
mov dword [esp + 0xf54], 6
mov dword [esp + 0xf58], 7
movups xmmword [esp + 0xf44], xmm0
mov edi, 1
mov eax, dword [esp + edi*4 + 0xf40]
cmp eax, 0x63
je 0x404ab2
test ecx, ecx
jne 0x404a80
push eax
push str._d_16384_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + edi*4 + 0xf4c]
add esp, 0xc
mov ecx, dword [esp + eax*4 + 0x120]
mov edx, 0x1000
add ecx, 2
nop
mov al, byte [esi]
lea ecx, [ecx + 4]
mov byte [ecx - 6], al
mov al, byte [esi + 1]
mov byte [ecx - 5], al
mov al, byte [esi + 2]
mov byte [ecx - 4], al
mov al, byte [esi + 3]
add esi, 4
mov byte [ecx - 3], al
sub edx, 1
jne 0x404a90
mov ecx, dword [esp + 0x14]
inc edi
cmp edi, 7
jl 0x404a50
jmp 0x404f49
cmp dword [esp + 0x14], 0
jne 0x403762
push str.5_16384_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.2_16384_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.0_16384_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x404f58
test edx, edx
jne 0x404b35
push 0x4243a8
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov edx, dword [esp + 0x134]
lea eax, [esp + 0xaa3]
push eax
lea eax, [esp + 0xaa0]
mov ecx, esi
push eax
call fcn.00408330
add esp, 8
mov dword [esp + 0x40], eax
cmp dword [esp + 0xa9c], 0x4000
jne 0x404b7a
mov edx, str.overflow
mov ecx, 6
call fcn.00407a60
mov eax, dword [esp + 0x40]
sub eax, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
test esi, esi
jne 0x404ba5
push eax
push 0x4243b8
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp eax, 0x4000
jbe 0x404bd5
push 0
push eax
lea eax, [esp + 0xf70]
push str.bad_decompression_size__lu_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 6
call fcn.00407a60
test esi, esi
jne 0x404bf1
push 0x4243e0
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov edx, dword [esp + 0x128]
lea eax, [esp + 0xaa3]
mov ecx, dword [esp + 0x40]
push eax
lea eax, [esp + 0xaa0]
push eax
call fcn.00408330
add esp, 8
mov esi, eax
cmp dword [esp + 0xa9c], 0x4000
mov dword [esp + 0x1c], esi
jne 0x404c36
mov edx, str.overflow
mov ecx, 6
call fcn.00407a60
sub esi, dword [esp + 0x40]
cmp dword [esp + 0x14], 0
jne 0x404c5a
push esi
push 0x4243b8
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp esi, 0x4000
jbe 0x404c8b
push 0
push esi
lea eax, [esp + 0xf70]
push str.bad_decompression_size__lu_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 6
call fcn.00407a60
cmp dword [esp + 0x14], 0
jne 0x404caa
push 0x4243e4
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov edx, dword [esp + 0x120]
lea eax, [esp + 0xaa3]
mov ecx, dword [esp + 0x1c]
push eax
lea eax, [esp + 0xaa0]
push eax
call fcn.00408330
mov esi, eax
add esp, 8
mov eax, dword [esp + 0xa9c]
cmp eax, 0x4000
jne 0x404cf3
mov edx, str.overflow
mov ecx, 6
call fcn.00407a60
mov eax, dword [esp + 0xa9c]
test eax, eax
jle 0x404d06
mov edx, str.cannot_have_overflow_on_bank_0
mov ecx, 6
call fcn.00407a60
sub esi, dword [esp + 0x1c]
cmp dword [esp + 0x14], 0
jne 0x404d2a
push esi
push str.__lu_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp esi, 0x4000
jbe 0x404f4d
push 0
push esi
lea eax, [esp + 0xf70]
push str.bad_decompression_size__lu_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 6
call fcn.00407a60
jmp 0x404f4d
xor edi, edi
mov word [esp + 0x2a], di
nop dword [eax + eax]
mov al, byte [esi]
mov byte [esp + 0xd3], al
mov byte [esp + 0x28], al
mov al, byte [esi + 1]
mov byte [esp + 0xd2], al
mov byte [esp + 0x29], al
mov al, byte [esi + 2]
test ecx, ecx
je 0x404dab
movzx eax, al
lea ecx, [edi*4]
sub eax, 3
mov dword [esp + ecx + 0xf40], eax
jmp 0x404e26
cmp al, 5
jne 0x404dc3
lea ecx, [edi*4]
mov dword [esp + ecx + 0xf40], 0
jmp 0x404e26
cmp al, 4
jne 0x404ddb
lea ecx, [edi*4]
mov dword [esp + ecx + 0xf40], 2
jmp 0x404e26
cmp al, 8
jne 0x404df3
lea ecx, [edi*4]
mov dword [esp + ecx + 0xf40], 5
jmp 0x404e26
push 0
movzx eax, al
push eax
lea eax, [esp + 0xf70]
push str.page_number_issue_with_48k_valid_4_5_or_8:__d_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 6
call fcn.00407a60
lea ecx, [edi*4]
add esi, 3
cmp dword [esp + 0x14], 0
jne 0x404e4f
push dword [esp + ecx + 0xf40]
push 0x424440
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
movzx ecx, byte [esp + 0xd2]
mov edx, dword [esp + edi*4 + 0xf40]
movzx eax, byte [esp + 0xd3]
shl ecx, 8
or ecx, eax
mov edx, dword [esp + edx*4 + 0x120]
cmp ecx, 0x4000
jb 0x404eb3
sub edx, esi
mov ecx, 0x4000
mov al, byte [esi]
mov byte [esi + edx], al
inc esi
sub ecx, 1
jne 0x404e81
cmp dword [esp + 0x14], ecx
jne 0x404f3a
push str._16384_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x404f3a
lea eax, [esp + 0xaa3]
mov ecx, esi
push eax
lea eax, [esp + 0xaa0]
push eax
call fcn.00408330
mov esi, eax
add esp, 8
mov eax, dword [esp + 0xa9c]
cmp eax, 0x4000
jne 0x404f04
push 0
push dword [esp + edi*4 + 0xf44]
lea eax, [esp + 0xf70]
push str.bad_decompression__page__d_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
jmp 0x404f0d
test eax, eax
jle 0x404f17
mov edx, str.cannot_have_overflow_on_v2_3_decompressions
mov ecx, 6
call fcn.00407a60
cmp dword [esp + 0x14], 0
jne 0x404f3a
push dword [esp + 0x28]
push 0x4243b8
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
mov ecx, dword [esp + 0x30]
inc edi
cmp edi, dword [esp + 0x1c]
jl 0x404d70
mov edi, dword [esp + 0x24]
cmp dword [esp + 0x14], 0
jne 0x403762
push 0x423e24
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push dword [esp + 0x74]
call fcn.0040d1e7
add esp, 4
cmp dword [esp + 0x30], 0
je 0x404fc4
cmp dword [esp + 0x8c], 0
je 0x404fc4
mov al, byte [esp + 0x22]
test al, 7
je 0x404fc4
movzx eax, al
push 0
and eax, 7
push eax
lea eax, [esp + 0xf70]
push str.cannot_force_48k_when_last_page_out_not_bank_0___d_c
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 6
call fcn.00407a60
push 0xc000
call fcn.0040d817
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
jne 0x404fe8
mov edx, str.unable_to_allocate_for_storage
lea ecx, [eax + 5]
call fcn.00407a60
push 0xc000
call fcn.0040d817
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
test esi, esi
jne 0x40500c
mov edx, str.unable_to_allocate_for_storage
lea ecx, [eax + 5]
call fcn.00407a60
lea edx, [edi + 0x3fff]
lea eax, [esi + 0x3fff]
cmp esi, edx
ja 0x405024
cmp eax, edi
jae 0x405508
mov esi, dword [esp + 0x134]
lea ecx, [esi + 0x3fff]
cmp dword [esp + 0x24], ecx
ja 0x40503f
cmp eax, esi
jae 0x40550f
cmp edi, ecx
ja 0x40504b
cmp edx, esi
jae 0x40550f
push 0x4000
push esi
mov esi, dword [esp + 0x2c]
push esi
call fcn.004099c0
add esp, 0xc
push 0x4000
push esi
push edi
call fcn.004099c0
add esp, 0xc
lea eax, [esi + 0x4000]
lea edx, [edi + 0x7fff]
lea ecx, [esi + 0x7fff]
lea esi, [edi + 0x4000]
cmp eax, edx
ja 0x40508d
cmp ecx, esi
jae 0x4050c2
mov edx, dword [esp + 0x128]
add edx, 0x3fff
cmp eax, edx
ja 0x4050a7
cmp ecx, dword [esp + 0x128]
jae 0x4050c2
cmp esi, edx
ja 0x405545
lea ecx, [edi + 0x7fff]
cmp ecx, dword [esp + 0x128]
jb 0x405545
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x128]
sub edx, edi
mov edi, 0x4000
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + esi], al
lea esi, [esi + 1]
mov byte [esi - 1], al
sub edi, 1
jne 0x4050d4
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
jmp 0x40557a
push 0x1c30
call fcn.0040d817
mov esi, eax
add esp, 4
mov dword [esp + 0x2c], esi
test esi, esi
jne 0x405118
mov edx, str.unable_to_allocate_memory_for_screen
lea ecx, [eax + 5]
call fcn.00407a60
cmp edi, 0x4000
jbe 0x4051e4
push edi
lea eax, [esp + 0xab4]
push 0x42450c
push eax
call fcn.00401040
mov eax, dword [esp + 0xabc]
add esp, 0xc
mov dword [esp + 0xe77], eax
dec edi
mov al, byte [esp + 0xab4]
mov byte [esp + 0xe7b], al
lea eax, [esp + 0xab0]
push edi
push 0x42450c
push eax
call fcn.00401040
mov eax, dword [esp + 0xabc]
add esp, 0xc
mov dword [esp + 0xe4f], eax
mov al, byte [esp + 0xab4]
mov byte [esp + 0xe53], al
mov eax, dword [esp + 0x5c]
add eax, 0x58
mov ecx, eax
mov byte [esp + 0x141], al
shr ecx, 8
mov byte [esp + 0x142], cl
lea ecx, [eax - 0x1c]
mov eax, ecx
mov byte [esp + 0x16f], cl
shr eax, 8
mov byte [esp + 0x170], al
mov byte [esp + 0x14a], al
lea eax, [ecx + 2]
mov byte [esp + 0x149], cl
lea edi, [eax - 0x3e]
mov ecx, eax
mov byte [esp + 0x173], al
shr ecx, 8
mov byte [esp + 0x174], cl
mov dword [esp + 0x24], edi
xor eax, eax
xor ecx, ecx
xor edx, edx
xor esi, esi
nop dword [eax]
mov al, byte [esp + eax + 0xaa4]
mov byte [esp + ecx + 0xe88], al
mov byte [esp + edx + 0xe34], al
lea eax, [esi + 1]
mov ecx, eax
mov edx, eax
mov esi, eax
cmp eax, 0xa
jl 0x4051f0
xor eax, eax
xor ecx, ecx
xor edx, edx
xor edi, edi
nop dword [eax + eax]
mov al, byte [esp + eax + 0xaa4]
mov byte [esp + ecx + 0xeb0], al
mov byte [esp + edx + 0xe66], al
lea eax, [edi + 1]
mov ecx, eax
mov edx, eax
mov edi, eax
cmp eax, 8
jl 0x405220
mov ecx, 2
mov byte [esp + 0xe44], 0
xor dl, dl
mov esi, ecx
mov al, byte [esp + ecx + 0xe30]
lea ecx, [esi + 1]
xor al, dl
mov esi, ecx
mov byte [esp + 0xe44], al
mov dl, al
cmp ecx, 0x14
jl 0x405254
mov esi, dword [esp + 0x2c]
mov ecx, 2
mov byte [esp + 0xe98], 0
xor dl, dl
mov edi, ecx
nop word [eax + eax]
mov al, byte [esp + ecx + 0xe84]
lea ecx, [edi + 1]
xor al, dl
mov edi, ecx
mov byte [esp + 0xe98], al
mov dl, al
cmp ecx, 0x14
jl 0x405290
mov edi, dword [esp + 0x24]
or cl, 0xff
mov eax, 0x18
mov byte [esp + 0xe7e], cl
mov edx, eax
xor cl, byte [esp + eax + 0xe30]
lea eax, [edx + 1]
mov byte [esp + 0xe7e], cl
mov edx, eax
cmp eax, 0x4e
jl 0x4052c1
mov ecx, 0x18
mov byte [esp + 0xebd], 0xff
or dl, 0xff
nop dword [eax]
xor dl, byte [esp + ecx + 0xe84]
inc ecx
mov byte [esp + 0xebd], dl
cmp ecx, 0x39
jl 0x4052f0
cmp edi, 0x4000
jbe 0x4053bb
push str.___Loading_Screen_Compressed_to:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x7c]
lea edx, [esi + 0x58]
add esp, 8
cmp dword [esp + 0x14], 2
push 1
push 0x1b00
je 0x405344
mov ecx, dword [esp + 0x13c]
call fcn.00407c60
add esp, 8
mov esi, eax
add esi, 0x58
push 0x58
push eax
push str.__lubytes__dbytes_for_unpack_code_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x3c]
add esp, 0x10
movups xmm0, xmmword [esp + 0x140]
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x150]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esp + 0x160]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [esp + 0x170]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [esp + 0x180]
movups xmmword [eax + 0x40], xmm0
movq xmm0, qword [esp + 0x190]
movq qword [eax + 0x50], xmm0
jmp 0x4053e1
cmp dword [esp + 0x14], 2
mov esi, 0x1b00
push esi
jne 0x4053ce
push dword [esp + 0x78]
jmp 0x4053d5
push dword [esp + 0x138]
push dword [esp + 0x34]
call fcn.004099c0
add esp, 0xc
push dword [esp + 0x74]
call fcn.0040d1e7
add esp, 4
push str.________________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._Adding_Files_to_Tape:_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
lea eax, [esp + 0xaa4]
push eax
push str.____s__BASIC_LEN:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp edi, 0x4000
jbe 0x405456
lea eax, [esp + 0xe30]
mov dword [esp + 0x40], 0x4f
jmp 0x405465
lea eax, [esp + 0xe84]
mov dword [esp + 0x40], 0x3a
push 1
mov dword [esp + 0x20], eax
call fcn.0040a9ed
add esp, 4
push dword [esp + 0x40]
push str._d__n
push eax
call fcn.00401010
add esp, 0xc
push dword [esp + 0x90]
push 1
push dword [esp + 0x48]
push dword [esp + 0x28]
call fcn.0040d184
mov edx, dword [esp + 0xa0]
lea ecx, [esp + 0xab4]
push edi
push esi
mov esi, dword [esp + 0x44]
push esi
mov word [esp + 0xac8], 0x302e
call fcn.00407a90
add esp, 0x1c
push esi
call fcn.0040d1e7
add esp, 4
push dword [esp + 0x90]
call fcn.0040ae30
add esp, 4
push str.________________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x1274]
add esp, 8
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.00408400
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x134]
mov edx, dword [esp + 0x24]
mov eax, edi
sub esi, edx
mov ecx, edx
sub eax, edx
mov edx, 0x4000
mov dword [esp + 0x5c], eax
mov edi, eax
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
mov byte [edi + ecx - 1], al
sub edx, 1
jne 0x405526
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
jmp 0x40506d
push 0x4000
push dword [esp + 0x12c]
push eax
call fcn.004099c0
mov eax, dword [esp + 0x30]
add esp, 0xc
add eax, 0x4000
push 0x4000
push eax
push esi
call fcn.004099c0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov edx, ecx
sub edx, edi
lea eax, [ecx + 0x8000]
add ecx, 0xbfff
mov dword [esp + 0x5c], ecx
lea esi, [edi + 0x8000]
lea ecx, [edi + 0xbfff]
cmp eax, ecx
mov ecx, dword [esp + 0x5c]
ja 0x4055a2
cmp ecx, esi
jae 0x4055e0
mov edi, dword [esp + 0x120]
add edi, 0x3fff
cmp eax, edi
ja 0x4055bc
cmp ecx, dword [esp + 0x120]
jae 0x4055e0
mov ecx, dword [esp + 0x120]
mov edi, dword [esp + 0x14]
add ecx, 0x3fff
cmp esi, ecx
ja 0x405608
lea ecx, [edi + 0xbfff]
cmp ecx, dword [esp + 0x120]
jb 0x405608
mov ecx, dword [esp + 0x120]
mov edi, 0x4000
nop dword [eax]
mov al, byte [ecx]
lea esi, [esi + 1]
inc ecx
mov byte [esi + edx - 1], al
mov byte [esi - 1], al
sub edi, 1
jne 0x4055f0
mov edi, dword [esp + 0x14]
jmp 0x405636
push 0x4000
push dword [esp + 0x124]
push eax
call fcn.004099c0
mov ecx, dword [esp + 0x30]
add esp, 0xc
push 0x4000
lea eax, [ecx + 0x8000]
push eax
push esi
call fcn.004099c0
add esp, 0xc
push dword [esp + 0x134]
call fcn.0040d1e7
add esp, 4
push dword [esp + 0x128]
call fcn.0040d1e7
add esp, 4
push dword [esp + 0x120]
call fcn.0040d1e7
mov cl, byte [esp + 0x3b]
add esp, 4
mov al, cl
sub cl, 4
sub al, 3
cmp dword [esp + 0x6c], 0
je 0x40567c
or al, 0x80
or cl, 0x80
jmp 0x405681
and al, 0x7f
and cl, 0x7f
mov byte [esp + 0x112], al
mov al, byte [esp + 0x57]
mov byte [esp + 0x1ee], cl
test al, al
jne 0x4056b1
mov byte [esp + 0xe0a], 0x46
mov byte [esp + 0xbb7], 0x46
mov byte [esp + 0xcd7], 0x46
jmp 0x4056e7
cmp al, 1
jne 0x4056cf
mov byte [esp + 0xe0a], 0x56
mov byte [esp + 0xbb7], 0x56
mov byte [esp + 0xcd7], 0x56
jmp 0x4056e7
mov byte [esp + 0xe0a], 0x5e
mov byte [esp + 0xbb7], 0x5e
mov byte [esp + 0xcd7], 0x5e
mov cl, byte [esp + 0xa1]
mov ch, byte [esp + 0xa0]
mov esi, dword [esp + 0x30]
movzx edx, cl
shl edx, 8
movzx eax, ch
add edx, eax
cmp dword [esp + 0x58], 0
je 0x40578d
test esi, esi
jne 0x40578d
mov al, byte [edx + edi - 0x4000]
mov byte [esp + 0x1b], al
mov al, byte [edx + edi - 0x3fff]
add edx, 2
mov dword [esp + 0xa9c], edx
shr edx, 8
mov byte [esp + 0x23], al
mov ecx, edx
mov eax, dword [esp + 0xa9c]
shl ecx, 8
sub eax, ecx
mov dword [esp + 0x5c], edx
push eax
movzx eax, byte [esp + 0x1f]
push edx
push eax
movzx eax, byte [esp + 0x2f]
push eax
push str.___48k_SNA__pc0x_02x_02x____sp0x_02x_02x__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x74]
add esp, 0x18
mov edx, dword [esp + 0xa9c]
mov byte [esp + 0x1f4], al
mov byte [esp + 0x1f3], dl
jmp 0x40579b
mov byte [esp + 0x1f3], ch
mov byte [esp + 0x1f4], cl
test edx, edx
mov eax, 0x10000
cmove edx, eax
mov dword [esp + 0xa9c], edx
lea eax, [edx - 0x1c]
lea ecx, [eax + 0x1a]
mov dword [esp + 0x74], eax
mov al, cl
mov dword [esp + 0x28], ecx
mov byte [esp + 0xf4], al
mov al, byte [esp + 0xa8]
mov byte [esp + 0xe21], al
mov byte [esp + 0xbce], al
mov byte [esp + 0xcee], al
mov al, byte [esp + 0xa9]
mov byte [esp + 0xe22], al
mov byte [esp + 0xbcf], al
mov byte [esp + 0xcef], al
mov al, byte [esp + 0xaa]
mov byte [esp + 0xe23], al
mov byte [esp + 0xbd0], al
mov byte [esp + 0xcf0], al
mov al, byte [esp + 0xab]
mov byte [esp + 0xe24], al
mov byte [esp + 0xbd1], al
mov byte [esp + 0xcf1], al
mov al, byte [esp + 0xac]
mov byte [esp + 0xe25], al
mov byte [esp + 0xbd2], al
mov byte [esp + 0xcf2], al
mov al, byte [esp + 0xad]
mov byte [esp + 0xe26], al
mov byte [esp + 0xbd3], al
mov byte [esp + 0xcf3], al
mov al, byte [esp + 0xb2]
mov byte [esp + 0xe27], al
mov byte [esp + 0xbd4], al
mov byte [esp + 0xcf4], al
mov al, byte [esp + 0xb3]
mov byte [esp + 0xe28], al
mov byte [esp + 0xbd5], al
mov byte [esp + 0xcf5], al
mov al, byte [esp + 0xb0]
mov byte [esp + 0xe29], al
mov byte [esp + 0xbd6], al
mov byte [esp + 0xcf6], al
mov al, byte [esp + 0xb1]
mov byte [esp + 0xe2a], al
mov byte [esp + 0xbd7], al
mov byte [esp + 0xcf7], al
mov al, byte [esp + 0xaf]
mov byte [esp + 0xe2b], al
mov byte [esp + 0xbd8], al
mov byte [esp + 0xcf8], al
mov al, byte [esp + 0xae]
mov byte [esp + 0xe2c], al
mov byte [esp + 0xbd9], al
mov byte [esp + 0xcf9], al
mov al, byte [esp + 0x9c]
mov byte [esp + 0x10f], al
mov byte [esp + 0x1eb], al
mov al, byte [esp + 0x9d]
mov byte [esp + 0x110], al
mov byte [esp + 0x1ec], al
mov al, byte [esp + 0xa6]
mov byte [esp + 0xee], al
mov byte [esp + 0x1e5], al
mov al, byte [esp + 0xa7]
mov byte [esp + 0xef], al
mov byte [esp + 0x1e6], al
mov al, byte [esp + 0xa2]
shr ecx, 8
mov byte [esp + 0xe06], al
mov byte [esp + 0xbb3], al
mov byte [esp + 0xcd3], al
mov eax, dword [esp + 0x80]
mov byte [esp + 0xf5], cl
test eax, eax
jne 0x40599e
mov eax, dword [esp + 0x68]
add al, 0x30
mov ecx, dword [esp + 0x64]
mov byte [esp + 0xc09], al
mov byte [esp + 0xae1], al
mov byte [esp + 0xd29], al
mov eax, dword [esp + 0x60]
add eax, 0xfffffffd
cmp eax, 1
ja 0x4059ea
cmp ecx, 0x34
mov dword [esp + 0x30], esi
mov edi, 0x80
mov eax, 0x87
cmovge eax, edi
mov edi, dword [esp + 0x14]
shl cl, 3
add al, cl
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x38], ecx
jmp 0x4059f8
mov al, cl
shl cl, 3
add cl, 0x50
add al, cl
mov ecx, dword [esp + 0x38]
cmp byte [esp + 0xb4], 0
mov byte [esp + 0xc7f], al
mov byte [esp + 0xb5f], al
mov byte [esp + 0xdb2], al
mov al, byte [esp + 0x9a]
mov byte [esp + 0x10c], al
mov byte [esp + 0x1e8], al
mov al, byte [esp + 0x9b]
mov byte [esp + 0x10d], al
mov byte [esp + 0x1e9], al
mov al, byte [esp + 0x99]
mov byte [esp + 0x11a], al
mov byte [esp + 0x1fd], al
mov al, byte [esp + 0x98]
mov byte [esp + 0x11b], al
mov byte [esp + 0x1fe], al
jne 0x405a7d
mov byte [esp + 0x116], 0xf3
mov byte [esp + 0x1f5], 0xf3
jmp 0x405a8d
mov byte [esp + 0x116], 0xfb
mov byte [esp + 0x1f5], 0xfb
mov al, byte [esp + 0x1b]
mov ah, byte [esp + 0x23]
mov byte [esp + 0x118], al
mov byte [esp + 0x1f7], al
mov al, byte [esp + 0x22]
mov byte [esp + 0x119], ah
mov byte [esp + 0x1f8], ah
test esi, esi
je 0x405ad1
cmp dword [esp + 0x8c], 0
jne 0x405ad1
mov byte [esp + 0x108], al
mov byte [esp + 0x1e1], al
cmp dword [esp + 0x70], 0
jne 0x405b97
cmp edx, 0x5b00
jae 0x405b97
movzx edx, byte [esp + 0x1b]
movzx eax, ah
sub eax, 0x40
shl eax, 8
add eax, edi
cmp byte [edx + eax], 0x31
jne 0x405b7a
movzx esi, byte [edx + eax + 2]
movzx eax, byte [edx + eax + 1]
shl esi, 8
add esi, eax
push esi
push str._____Stack_in_Screen__found__ld_sp_0x_04x__in_code_so_adjusting_to
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
mov eax, 0x10000
test esi, esi
cmove esi, eax
push esi
push 0x424660
push 1
mov dword [esp + 0xaa8], esi
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
lea eax, [esi - 0x1c]
add esp, 0xc
lea ecx, [eax + 0x1a]
mov dword [esp + 0x74], eax
mov al, cl
mov dword [esp + 0x28], ecx
shr ecx, 8
mov byte [esp + 0xf4], al
mov byte [esp + 0xf5], cl
jmp 0x405c17
push str._____Stack_in_Screen__no_replacement_found_so_keeping_as_is_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x405c17
test al, 7
jbe 0x405bbb
cmp edx, 0xc000
mov edx, dword [esp + 0x70]
jbe 0x405bbf
test edx, edx
jne 0x405bbf
test esi, esi
je 0x405bbf
push edx
movzx eax, al
push eax
push str.stack_in_paged_memory__0x_02x__cannot_use_4_stage_launcher__please_use_2_stage_c
jmp 0x405bf6
mov edx, dword [esp + 0x70]
test ecx, ecx
je 0x405bdf
test edx, edx
jne 0x405bdf
push edx
lea eax, [esp + 0xf6c]
push str.3_2A_special_memory_mode__cannot_use_4_stage_launcher__please_use_2_stage_c
push eax
call fcn.00401040
add esp, 0xc
jmp 0x405c06
mov eax, ecx
and eax, 7
cmp eax, 1
je 0x405bee
cmp eax, 7
jne 0x405c17
push 0
push ecx
push str.incompatible_special_memory_mode__0x_02x___only_works_with_0x03__0x05__c
lea eax, [esp + 0xf74]
push eax
call fcn.00401040
add esp, 0x10
lea edx, [esp + 0xf68]
mov ecx, 8
call fcn.00407a60
mov esi, dword [esp + 0x78]
test esi, esi
je 0x405c91
push str.___Trainer:_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
xor ecx, ecx
add esp, 8
mov dword [esp + 0x1c], ecx
test esi, esi
jle 0x405c91
mov eax, dword [esp + ecx*8 + 0x29c]
mov esi, dword [esp + ecx*8 + 0x298]
push eax
push esi
push str._____POKE__d__d_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov edx, dword [esp + 0x24]
mov eax, dword [esp + ecx*8 + 0x29c]
inc ecx
mov byte [edx + esi - 0x4000], al
mov byte [edi + esi - 0x4000], al
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x78]
jl 0x405c41
mov edx, dword [esp + 0x70]
mov ecx, 0xa4ca
mov dword [esp + 0x10], 3
mov esi, 0x1b36
mov dword [esp + 0x78], ecx
lea eax, [edx - 1]
cmp eax, 2
ja 0x405cbf
mov ecx, 0xa500
mov esi, 0x1b00
jmp 0x405cd6
cmp edx, 4
jne 0x405cda
mov ecx, 0xa400
mov byte [esp + 0x1a2], 0x5c
mov esi, 0x1c00
mov dword [esp + 0x78], ecx
lea eax, [ecx + 0x2800]
push eax
call fcn.0040d817
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
jne 0x405cfe
mov edx, str.unable_to_allocate_for_main_block_compression
lea ecx, [eax + 5]
call fcn.00407a60
mov eax, 0x10000
sub eax, dword [esp + 0x78]
push eax
push str.___Main_memory_from_0x_04x_Compressed_to:__D_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x64]
add esp, 0xc
add eax, 0x2200
mov dword [esp + 0x64], eax
lea eax, [esi + edi]
mov dword [esp + 0x40], eax
mov eax, 3
nop dword [eax]
cmp dword [esp + 0x70], 0
jne 0x4060a3
push 0xc000
push dword [esp + 0x28]
push edi
call fcn.004099c0
xor ecx, ecx
mov dword [esp + 0x38], 0
add esp, 0xc
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], ecx
xor edi, edi
xor esi, esi
mov edx, 0x1b36
nop dword [eax]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edx]
cmp eax, edi
jne 0x405dcb
inc esi
cmp esi, ecx
jle 0x405dd3
mov eax, dword [esp + 0xa9c]
mov ecx, edx
sub ecx, esi
add eax, 0xffffc000
cmp ecx, eax
jg 0x405db5
mov eax, dword [esp + 0xa9c]
add eax, 0xffffbfe4
cmp edx, eax
jge 0x405dcf
mov ecx, esi
mov dword [esp + 0x2c], edi
lea eax, [edx - 0x1b35]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
jmp 0x405dd3
xor esi, esi
jmp 0x405dd3
mov ecx, dword [esp + 0x6c]
inc edx
lea eax, [edx - 0x1b36]
cmp eax, 0xa4ca
jl 0x405d80
inc edi
cmp edi, 0xff
jle 0x405d75
mov edx, dword [esp + 0x10]
lea eax, [edx + 0x4f]
cmp ecx, eax
jle 0x405e0c
mov eax, dword [esp + 0x68]
sub eax, ecx
add eax, 0x1b36
mov dword [esp + 0x88], eax
jmp 0x405e9d
mov ecx, 0x1ab1
mov dword [esp + 0x2c], 0
sub ecx, edx
xor eax, eax
mov dword [esp + 0x88], ecx
xor edi, edi
mov dword [esp + 0x1c], eax
nop word [eax + eax]
xor edx, edx
mov esi, ecx
cmp ecx, 0x1b00
jge 0x405e86
nop dword [eax]
mov eax, dword [esp + 0x38]
mov ecx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
lea edx, [ecx + 1]
movzx eax, byte [esi + eax]
cmp eax, edi
cmovne edx, ecx
inc esi
cmp esi, 0x1b00
jl 0x405e40
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
cmp edx, eax
jl 0x405e94
mov eax, edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x1c], eax
inc edi
cmp edi, 0xff
jle 0x405e30
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x405eb2
mov edi, dword [esp + 0x74]
mov edx, edi
sub edx, eax
sub edx, 6
jmp 0x405f02
movzx ecx, byte [esp + 0x23]
movzx edi, byte [esp + 0x1b]
mov eax, dword [esp + 0x74]
shl ecx, 8
lea edx, [edi + ecx]
cmp eax, edx
jg 0x405efc
add eax, 0x1c
cmp eax, edx
jle 0x405efc
mov esi, dword [esp + 0xa9c]
mov eax, esi
sub eax, edi
sub eax, ecx
cmp eax, 2
jg 0x405ef2
mov edx, str.pc_in_stack_cannot_use_4_stage_launcher__please_use_2_stage_loader
mov ecx, 8
call fcn.00407a60
mov edx, 0x1a
lea edi, [esi - 0x1c]
jmp 0x405f09
mov edi, dword [esp + 0x74]
xor edx, edx
mov esi, dword [esp + 0xa9c]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x80], edx
lea eax, [ecx + 0x4000]
mov byte [esp + 0x207], al
shr eax, 8
mov byte [esp + 0x208], al
lea eax, [ecx + 0x4019]
mov ecx, dword [esp + 0x10]
mov byte [esp + 0xe1], al
shr eax, 8
mov byte [esp + 0xe2], al
mov byte [esp + 0xe4], cl
cmp ecx, 0xb1
jne 0x405f62
mov byte [esp + 0xf2], 0
jmp 0x405f6d
mov al, cl
add al, 0x4f
mov byte [esp + 0xf2], al
mov eax, dword [esp + 0x2c]
movaps xmm0, xmmword [esp + 0x100]
mov byte [esp + 0xf1], al
mov eax, edi
sub eax, edx
mov byte [esp + 0xf7], al
shr eax, 8
mov dword [esp + 0x294], eax
test edx, edx
je 0x405fe1
mov ecx, edi
mov di, word [esp + 0x118]
sub ecx, edx
mov edx, dword [esp + 0x14]
movups xmmword [ecx + edx - 0x4000], xmm0
movq xmm0, qword [esp + 0x110]
movq qword [ecx + edx - 0x3ff0], xmm0
mov word [ecx + edx - 0x3fe8], di
mov cx, word [esp + 0x11a]
mov word [esi + edx - 0x4002], cx
mov ecx, dword [esp + 0x10]
jmp 0x40600d
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x118]
movups xmmword [edx + edi - 0x4000], xmm0
movq xmm0, qword [esp + 0x110]
movq qword [edx + edi - 0x3ff0], xmm0
mov dword [edx + edi - 0x3fe8], esi
mov edi, dword [esp + 0x88]
cmp edi, 0x1b00
jle 0x40609f
add ecx, edx
add edi, 0x19
xor esi, esi
add edi, ecx
nop dword [eax]
mov cl, byte [esi + edx + 0x1b00]
lea edi, [edi + 1]
inc esi
mov byte [edi - 1], cl
cmp esi, 0x36
jl 0x406030
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x40607a
mov esi, dword [esp + 0x88]
mov edi, ecx
add esi, edx
sub edx, ecx
mov dword [esp + 0x5c], esi
add esi, 0x19
add edx, 0xc000
mov cl, byte [edx]
lea edx, [edx + 1]
mov byte [esi], cl
lea esi, [esi + 1]
sub edi, 1
jne 0x406065
mov ecx, dword [esp + 0x5c]
jmp 0x406083
mov ecx, dword [esp + 0x88]
add ecx, edx
movups xmm0, xmmword [esp + 0xe0]
movups xmmword [ecx], xmm0
movq xmm0, qword [esp + 0xf0]
movq qword [ecx + 0x10], xmm0
mov byte [ecx + 0x18], al
mov eax, dword [esp + 0x10]
push eax
push 0x424440
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov edi, dword [esp + 0x84]
add esp, 0xc
sub edi, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
push 0
push edi
call fcn.00407c60
push dword [esp + 0x80]
mov edx, dword [esp + 0x4c]
mov esi, eax
mov ecx, dword [esp + 0x70]
push edi
push esi
call fcn.00407bf0
mov edi, eax
add esp, 0x14
mov eax, dword [esp + 0x10]
test edi, edi
jle 0x406187
cmp eax, 0xa
jle 0x406121
push 0x424864
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x18]
add esp, 8
cmp eax, 0x64
jle 0x40613e
push 0x424864
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push 0x424864
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x18]
add esp, 8
add eax, edi
mov dword [esp + 0x10], eax
cmp eax, 0xb1
jg 0x40619b
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.0040ad64
mov edi, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x10]
jmp 0x405d40
test edi, edi
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jne 0x405d40
push dword [esp + 0x24]
call fcn.0040d1e7
add esp, 4
push esi
push str.__lubytes
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x7c]
add esp, 0xc
mov dword [esp + 0xa9c], 0
test eax, eax
je 0x4061f6
cmp eax, 4
jne 0x4061df
mov eax, pe_nt_image_headers32
jmp 0x406215
mov eax, dword [esp + 0x10]
add eax, 0x5f
cmp dword [esp + 0x38], 0
mov dword [esp + 0x24], eax
je 0x406219
add eax, 6
jmp 0x406215
cmp dword [esp + 0x88], 0x1b00
mov eax, 0x36
mov dword [esp + 0x24], eax
jge 0x406219
mov eax, dword [esp + 0x10]
add eax, 0x85
mov dword [esp + 0x24], eax
mov ecx, 0xa000
add esi, eax
sub ecx, dword [esp + 0x10]
cmp dword [esp + 0x10], 0xb1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x5c], esi
jg 0x40765b
cmp esi, ecx
ja 0x40765b
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x64], eax
cmp ecx, 1
je 0x40625c
cmp ecx, 3
jl 0x40637d
push 0x1c30
call fcn.0040d817
mov edi, eax
add esp, 4
mov dword [esp + 0x7c], edi
test edi, edi
jne 0x406280
mov edx, str.unable_to_allocate_for_screen_compression
lea ecx, [eax + 5]
call fcn.00407a60
lea edx, [edi + 0x58]
mov edi, dword [esp + 0x14]
push 1
push 0x1b00
mov ecx, edi
call fcn.00407c60
mov ecx, dword [esp + 0x2c]
add eax, 0x58
add esi, eax
add esp, 8
mov dword [esp + 0x1c], esi
lea edx, [eax + ecx]
mov dword [esp + 0x64], edx
cmp esi, dword [esp + 0x40]
jbe 0x4062e9
push dword [esp + 0x7c]
mov esi, dword [esp + 0x60]
mov dword [esp + 0xaa0], 0x13
mov dword [esp + 0xd8], 0
mov dword [esp + 0x20], esi
mov dword [esp + 0x68], ecx
call fcn.0040d1e7
mov eax, dword [esp + 0x68]
add esp, 4
jmp 0x406381
mov edx, dword [esp + 0x7c]
movaps xmm0, xmmword [esp + 0x140]
movups xmmword [edx], xmm0
movaps xmm0, xmmword [esp + 0x150]
movups xmmword [edx + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x160]
movups xmmword [edx + 0x20], xmm0
movaps xmm0, xmmword [esp + 0x170]
movups xmmword [edx + 0x30], xmm0
movaps xmm0, xmmword [esp + 0x180]
movups xmmword [edx + 0x40], xmm0
movq xmm0, qword [esp + 0x190]
movq qword [edx + 0x50], xmm0
test eax, eax
je 0x406353
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 0x64]
push eax
add ecx, 0x2200
push edx
push ecx
call fcn.004099c0
add esp, 0xc
push dword [esp + 0x7c]
mov byte [esp + 0xdd0], 0xcd
mov byte [esp + 0xb7d], 0xcd
mov byte [esp + 0xc9d], 0xcd
call fcn.0040d1e7
mov eax, dword [esp + 0x68]
add esp, 4
jmp 0x406381
mov edi, dword [esp + 0x14]
push eax
push str.__dbytes_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x6c]
add esp, 0xc
cmp eax, 1
je 0x4063a8
cmp eax, 3
jl 0x4063df
cmp dword [esp + 0xa9c], 0
jne 0x4063df
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x64]
push ecx
sub eax, ecx
push eax
mov eax, dword [esp + 0x48]
sub eax, esi
push eax
push str._____Space_Left__lubytes___dbytes_Original_Screen__dbytes_Final_Copy__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x14
jmp 0x406402
push dword [esp + 0x24]
mov eax, dword [esp + 0x44]
sub eax, esi
push eax
push str._____Space_Left__lubytes___dbytes_Final_Copy__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x406650
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
sub ecx, eax
add ecx, 0x5b36
push ecx
push dword [esp + 0x30]
push eax
push str._____Max_Gap_of__d0x_02x_Found___dbytes___
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x14
cmp dword [esp + 0x88], 0x1b00
jle 0x406466
push str.Large_Enough_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x4064eb
push dword [esp + 0x2c]
push str.Not_Large_Enough_Using_Attr_0x_02x_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov edx, dword [esp + 0x30]
mov eax, 0x5b36
sub eax, edx
mov byte [esp + 0xddf], dl
mov ecx, eax
mov byte [esp + 0xddc], al
shr ecx, 8
add esp, 0xc
mov byte [esp + 0xb7d], al
mov byte [esp + 0xc9d], al
mov eax, edx
shr eax, 8
mov byte [esp + 0xdd1], cl
mov byte [esp + 0xb7e], cl
mov byte [esp + 0xc9e], cl
mov byte [esp + 0xb80], dl
mov byte [esp + 0xca0], dl
mov byte [esp + 0xdd4], al
mov byte [esp + 0xb81], al
mov byte [esp + 0xca1], al
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xa9c]
add ecx, 0x5d6b
add eax, ecx
push eax
push str._____1__Basic_Set_up___d
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp dword [esp + 0xd4], 0
je 0x406545
push dword [esp + 0xcc]
push str.__inc._PAUSE__d_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
jmp 0x406567
cmp dword [esp + 0xa9c], 0
je 0x406567
push str.__inc._extra_LOAD_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push 0x423e24
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._____2__Decompressor__23296_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x18]
add esp, 8
add eax, 0x4f
push eax
mov eax, dword [esp + 0x8c]
add eax, 0x4000
push eax
push str._____3__Byte_Restore___d___dbytes
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x20]
add esp, 0x10
cmp eax, 3
jle 0x4065e9
add eax, 0xfffffffd
push eax
push str._Delta_3__dbytes
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 0x424a58
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x7c]
add esp, 8
sub eax, dword [esp + 0x80]
push eax
push str._____4__Stk_Launcher___d
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp dword [esp + 0x80], 0
je 0x406898
push str.Stack_Shift
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
jmp 0x406898
cmp eax, 1
jne 0x40665c
mov eax, 0x4000
jmp 0x406691
cmp eax, 2
jne 0x406680
mov ecx, 0x4ba1
sub ecx, dword [esp + 0x10]
cmp dword [esp + 0x38], 0
lea eax, [ecx - 6]
movzx edx, ax
movzx eax, cx
cmove edx, eax
movzx eax, dx
jmp 0x406691
cmp eax, 3
jne 0x40668c
mov ecx, 0x57a1
jmp 0x406666
mov eax, 0x5b00
mov ecx, dword [esp + 0x24]
movzx edx, ax
mov dword [esp + 0x94], eax
mov eax, edx
shr eax, 8
mov byte [esp + 0xdd1], al
mov byte [esp + 0xb7e], al
mov byte [esp + 0xc9e], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0xdd3], cl
mov byte [esp + 0xb80], cl
mov byte [esp + 0xca0], cl
lea ecx, [edx + 0x5d]
mov byte [esp + 0xdd4], al
mov byte [esp + 0xb81], al
mov byte [esp + 0xca1], al
mov eax, ecx
shr eax, 8
cmp dword [esp + 0x38], 0
mov byte [esp + 0xdd0], dl
mov byte [esp + 0xb7d], dl
mov byte [esp + 0xc9d], dl
je 0x40674a
lea eax, [edx + 0x63]
mov ecx, eax
mov byte [esp + 0xe0c], al
shr ecx, 8
mov byte [esp + 0xbb9], al
mov byte [esp + 0xcd9], al
lea eax, [edx + 0x5f]
mov dword [esp + 0x5c], eax
add eax, 6
mov byte [esp + 0xe0d], cl
mov byte [esp + 0xbba], cl
mov byte [esp + 0xcda], cl
jmp 0x406777
mov byte [esp + 0xe0d], al
mov byte [esp + 0xbba], al
mov byte [esp + 0xcda], al
lea eax, [edx + 0x5f]
mov byte [esp + 0xe0c], cl
mov byte [esp + 0xbb9], cl
mov byte [esp + 0xcd9], cl
mov ecx, dword [esp + 0xd4]
mov byte [esp + 0x1d7], al
add ecx, 0x5d6b
shr eax, 8
mov byte [esp + 0x1d8], al
mov eax, dword [esp + 0x10]
mov byte [esp + 0x1da], al
mov eax, dword [esp + 0xa9c]
add eax, ecx
push eax
push str._____1__Basic_Set_up___d
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp dword [esp + 0xd4], 0
je 0x4067ed
push dword [esp + 0xcc]
push str.__inc._PAUSE__d_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
jmp 0x40680f
cmp dword [esp + 0xa9c], 0
je 0x40680f
push str.__inc._extra_LOAD_
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push 0x423e24
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x94]
add eax, 0x5f
push eax
movzx eax, cx
push eax
push str._____2__Decompressor__Launcher___d___dbytes
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
cmp dword [esp + 0x38], 0
je 0x406873
push 6
push str.1ffd__dbytes
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp eax, 3
jle 0x406898
add eax, 0xfffffffd
push eax
push str.Delta_3__dbytes
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 0x423e24
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov eax, dword [esp + 0x9c]
add esp, 8
movzx eax, ax
mov ecx, eax
mov byte [esp + 0xe0f], al
shr ecx, 8
mov byte [esp + 0xbbc], al
mov byte [esp + 0xcdc], al
mov eax, 0x10000
sub eax, esi
mov byte [esp + 0xe10], cl
mov esi, dword [esp + 0x60]
mov byte [esp + 0xbbd], cl
mov byte [esp + 0xcdd], cl
mov ecx, eax
shr ecx, 8
mov dword [esp + 0x74], eax
mov byte [esp + 0xdcd], al
mov byte [esp + 0xb7a], al
mov byte [esp + 0xc9a], al
mov byte [esp + 0xdce], cl
mov byte [esp + 0xb7b], cl
mov byte [esp + 0xc9b], cl
cmp esi, 1
je 0x406935
cmp esi, 3
jl 0x4069f2
cmp dword [esp + 0xa9c], 0
jne 0x40699b
mov esi, dword [esp + 0x58]
lea edx, [eax + 0x58]
sub esi, dword [esp + 0x64]
mov cl, dl
mov dword [esp + 0x28], edx
shr edx, 8
mov byte [esi + 0x2201], cl
lea ecx, [eax + 0x3c]
mov byte [esi + 0x2202], dl
mov eax, ecx
mov byte [esi + 0x222f], cl
mov byte [esi + 0x2209], cl
add ecx, 2
shr eax, 8
mov byte [esi + 0x2230], al
mov byte [esi + 0x220a], al
mov al, cl
mov dword [esp + 0x28], ecx
mov byte [esi + 0x2233], al
shr ecx, 8
mov byte [esi + 0x2234], cl
mov esi, dword [esp + 0x60]
cmp esi, 3
jl 0x4069f2
cmp esi, 5
jne 0x4069c8
inc byte [esp + 0xc2c]
inc byte [esp + 0xb04]
inc byte [esp + 0xd4c]
xor eax, eax
mov dword [esp + 0x84], eax
jmp 0x406ae2
push 0x79
push str.___Loading_Text_Added:__lubytes_n
push 1
mov dword [esp + 0x90], 0x79
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
jmp 0x406ae2
push 0x1c30
call fcn.0040d817
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
jne 0x406a17
mov edx, str.unable_to_allocate_for_screen_compression
lea ecx, [eax + 5]
call fcn.00407a60
push str.___Loading_Screen_Compressed_to:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov edx, dword [esp + 0x98]
add esp, 8
add edx, 0x58
push 1
push 0x1b00
test esi, esi
je 0x406a5f
mov edi, dword [esp + 0x8c]
mov ecx, edi
call fcn.00407c60
push edi
mov esi, eax
call fcn.0040d1e7
add esp, 0xc
jmp 0x406a6b
mov ecx, edi
call fcn.00407c60
add esp, 8
mov esi, eax
mov ecx, dword [esp + 0x90]
mov eax, esi
movaps xmm0, xmmword [esp + 0x140]
add esi, 0x58
push 0x58
push eax
movups xmmword [ecx], xmm0
push str.__lubytes__dbytes_for_unpack_code_n
movaps xmm0, xmmword [esp + 0x15c]
movups xmmword [ecx + 0x10], xmm0
push 1
movaps xmm0, xmmword [esp + 0x170]
movups xmmword [ecx + 0x20], xmm0
mov dword [esp + 0x94], esi
movaps xmm0, xmmword [esp + 0x180]
movups xmmword [ecx + 0x30], xmm0
movaps xmm0, xmmword [esp + 0x190]
movups xmmword [ecx + 0x40], xmm0
movq xmm0, qword [esp + 0x1a0]
movq qword [ecx + 0x50], xmm0
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
cmp dword [esp + 0x30], 0
je 0x406d91
cmp dword [esp + 0x8c], 0
jne 0x406d71
push str.___Additional_128k_Memory_Compression:_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
push 0x424d
call fcn.0040d817
mov edi, eax
add esp, 0xc
mov dword [esp + 0x40], edi
test edi, edi
jne 0x406b34
mov edx, str.unable_to_allocate_for_page_1_compression
lea ecx, [eax + 5]
call fcn.00407a60
push str._____Page_1_Compressed_to:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x12c]
lea edx, [edi + 0x4d]
push 0
push 0x4000
call fcn.00407c60
add esp, 0x10
mov dword [esp + 0x7c], eax
push 0x4d
push eax
push str._lubytes__dbytes_for_unpack_code_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add dword [esp + 0x8c], 0x4d
lea esi, [esp + 0x250]
mov ecx, 0x13
rep movsd dword es:[edi], dword [esi]
push 0x4201
movsb byte es:[edi], byte [esi]
call fcn.0040d817
mov edi, eax
add esp, 0x14
mov dword [esp + 0x80], edi
test edi, edi
je 0x407a2a
push str._____Page_3_Compressed_to:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x134]
lea edx, [edi + 1]
push 0
push 0x4000
call fcn.00407c60
add esp, 0x10
mov byte [edi], 0x13
lea esi, [eax + 1]
push esi
push str._lubytes_n
push 1
mov dword [esp + 0x38], esi
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 0x4201
call fcn.0040d817
mov edi, eax
add esp, 4
mov dword [esp + 0x6c], edi
test edi, edi
jne 0x406c27
push 5
push str.unable_to_allocate_for_page_4_compression
jmp 0x407a31
push str._____Page_4_Compressed_to:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x138]
lea edx, [edi + 1]
push 0
push 0x4000
call fcn.00407c60
add esp, 0x10
mov byte [edi], 0x14
inc eax
mov dword [esp + 0x94], eax
push eax
push str._lubytes_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 0x4201
call fcn.0040d817
mov edi, eax
add esp, 4
mov dword [esp + 0x78], edi
test edi, edi
jne 0x406c9c
push 5
push str.unable_to_allocate_for_page_6_compression
jmp 0x407a31
push str._____Page_6_Compressed_to:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x140]
lea edx, [edi + 1]
push 0
push 0x4000
call fcn.00407c60
add esp, 0x10
mov byte [edi], 0x16
inc eax
mov dword [esp + 0x68], eax
push eax
push str._lubytes_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push 0x4201
call fcn.0040d817
mov edi, eax
add esp, 4
mov dword [esp + 0xcc], edi
test edi, edi
jne 0x406d11
push 5
push str.unable_to_allocate_for_page_7_compression
jmp 0x407a31
push str._____Page_7_Compressed_to:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
mov ecx, dword [esp + 0x144]
lea edx, [edi + 1]
push 0
push 0x4000
call fcn.00407c60
add esp, 0x10
lea edi, [eax + 1]
mov eax, dword [esp + 0xcc]
push edi
push str._lubytes_n
push 1
mov byte [eax], 0x17
mov dword [esp + 0x98], edi
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
jmp 0x406ded
push str.___Forcing_48k__ignoring_128k_Memory_Compression_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0x2c], esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x8c], edi
push str.________________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._Adding_Files_to_Tape:_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
lea eax, [esp + 0x1170]
push 0x42449c
push eax
call fcn.0040a90e
add esp, 0x10
mov dword [esp + 0x28], eax
test eax, eax
jne 0x406e7e
push eax
lea eax, [esp + 0x116c]
push eax
lea eax, [esp + 0xf70]
push str.cannot_create_output_Tape__s_c
push eax
call fcn.00401040
add esp, 0x10
lea eax, [esp + 0xf68]
push 7
push eax
push str.ERROR:__s_n_E_02d__n
push 2
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
push 7
jmp 0x407a4b
xor eax, eax
xor ecx, ecx
xor edx, edx
xor edi, edi
xor esi, esi
nop dword [eax + eax]
mov al, byte [esp + eax + 0xaa4]
mov byte [esp + ecx + 0xd04], al
mov byte [esp + edx + 0xabc], al
mov byte [esp + edi + 0xbe4], al
lea eax, [esi + 1]
mov ecx, eax
mov edx, eax
mov edi, eax
mov esi, eax
cmp eax, 0xa
jl 0x406e90
mov esi, dword [esp + 0x2c]
xor ecx, ecx
mov al, byte [esp + ecx + 0xaa4]
mov byte [esp + ecx + 0xd3c], al
mov byte [esp + ecx + 0xaf4], al
mov byte [esp + ecx + 0xc1c], al
inc ecx
cmp ecx, 8
jl 0x406ec2
cmp dword [esp + 0x30], 0
jne 0x406f03
mov byte [esp + 0xd51], 0x30
mov byte [esp + 0xb09], 0x30
mov byte [esp + 0xc31], 0x30
mov ecx, 2
mov byte [esp + 0xbf4], 0
xor dl, dl
mov edi, ecx
mov al, byte [esp + ecx + 0xbe0]
lea ecx, [edi + 1]
xor al, dl
mov edi, ecx
mov byte [esp + 0xbf4], al
mov dl, al
cmp ecx, 0x14
jl 0x406f14
or cl, 0xff
mov eax, 0x18
mov byte [esp + 0xcfb], cl
mov edx, eax
xor cl, byte [esp + eax + 0xbe0]
lea eax, [edx + 1]
mov byte [esp + 0xcfb], cl
mov edx, eax
cmp eax, 0x11b
jl 0x406f41
mov ecx, 2
mov byte [esp + 0xacc], 0
xor dl, dl
mov edi, ecx
nop dword [eax]
mov al, byte [esp + ecx + 0xab8]
lea ecx, [edi + 1]
xor al, dl
mov edi, ecx
mov byte [esp + 0xacc], al
mov dl, al
cmp ecx, 0x14
jl 0x406f70
or cl, 0xff
mov eax, 0x18
mov byte [esp + 0xbdb], cl
mov edx, eax
nop dword [eax]
xor cl, byte [esp + eax + 0xab8]
lea eax, [edx + 1]
mov byte [esp + 0xbdb], cl
mov edx, eax
cmp eax, 0x123
jl 0x406fa0
mov ecx, 2
mov byte [esp + 0xd14], 0
xor dl, dl
mov edi, ecx
nop dword [eax + eax]
mov al, byte [esp + ecx + 0xd00]
lea ecx, [edi + 1]
xor al, dl
mov edi, ecx
mov byte [esp + 0xd14], al
mov dl, al
cmp ecx, 0x14
jl 0x406fd0
mov edi, dword [esp + 0x8c]
mov ecx, 0x18
mov byte [esp + 0xe2e], 0xff
or dl, 0xff
nop dword [eax]
nop word [eax + eax]
xor dl, byte [esp + ecx + 0xd00]
inc ecx
mov byte [esp + 0xe2e], dl
cmp ecx, 0x12e
jl 0x407010
lea eax, [esp + 0xaa4]
push eax
push str.____s__BASIC_LEN:
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
cmp dword [esp + 0xa9c], 0
je 0x407090
push 0x12f
push str._d__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
lea eax, [esp + 0xd00]
push dword [esp + 0x28]
push 1
push 0x12f
push eax
call fcn.0040d184
mov ecx, 0x148
jmp 0x407110
cmp dword [esp + 0xd4], 0
je 0x4070d6
push 0x124
push str._d__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
lea eax, [esp + 0xab8]
push dword [esp + 0x28]
push 1
push 0x124
push eax
call fcn.0040d184
mov ecx, 0x13d
jmp 0x407110
push 0x11c
push str._d__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
lea eax, [esp + 0xbe0]
push dword [esp + 0x28]
push 1
push 0x11c
push eax
call fcn.0040d184
mov ecx, 0x135
mov eax, dword [esp + 0x94]
add esp, 0x10
add ecx, eax
mov word [esp + 0xaac], 0x302e
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x60]
cmp ecx, 3
jl 0x40715e
cmp ecx, 5
jge 0x40718e
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0xaa4]
push 0x7db3
push eax
lea eax, [esp + 0xec8]
push eax
call fcn.00407a90
add esp, 0xc
jmp 0x40718e
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0xaa4]
push 0x7db3
push eax
mov eax, dword [esp + 0x98]
push eax
call fcn.00407a90
add esp, 0xc
push dword [esp + 0x90]
call fcn.0040d1e7
add esp, 4
cmp dword [esp + 0x30], 0
je 0x4072cd
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0xaa4]
inc byte [esp + 0xaad]
push 0x7db3
push dword [esp + 0x80]
push dword [esp + 0x48]
call fcn.00407a90
add esp, 0xc
push dword [esp + 0x40]
call fcn.0040d1e7
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xaa8]
inc byte [esp + 0xab1]
add esp, 4
push 0x7dff
push esi
push dword [esp + 0x88]
call fcn.00407a90
add esp, 0xc
push dword [esp + 0x80]
call fcn.0040d1e7
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xaa8]
inc byte [esp + 0xab1]
add esp, 4
push 0x7dff
push dword [esp + 0x98]
push dword [esp + 0x74]
call fcn.00407a90
add esp, 0xc
push dword [esp + 0x6c]
call fcn.0040d1e7
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xaa8]
inc byte [esp + 0xab1]
add esp, 4
push 0x7dff
push dword [esp + 0x6c]
push dword [esp + 0x80]
call fcn.00407a90
add esp, 0xc
push dword [esp + 0x78]
call fcn.0040d1e7
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0xaa8]
inc byte [esp + 0xab1]
add esp, 4
push 0x7dff
push edi
push dword [esp + 0xd4]
call fcn.00407a90
mov eax, dword [esp + 0x74]
add esp, 0xc
mov ecx, dword [esp + 0x84]
add eax, edi
add eax, dword [esp + 0x94]
add ecx, 0x7d
add eax, esi
add eax, dword [esp + 0x7c]
push dword [esp + 0xcc]
add ecx, eax
mov dword [esp + 0x88], ecx
call fcn.0040d1e7
add esp, 4
cmp dword [esp + 0x70], 0
je 0x407527
cmp dword [esp + 0x38], 0
je 0x407401
cmp dword [esp + 0x88], 0x1b00
mov edi, dword [esp + 0x58]
jge 0x4075e8
push 0
push ecx
push esi
push dword [esp + 0x1c]
lea eax, [esp + 0xf78]
push str.unable_to_compress:_D:_d_S:_lu_MS:_d_c
push eax
call fcn.00401040
add esp, 0x18
lea eax, [esp + 0xf68]
push 8
push eax
push str.ERROR:__s_n_E_02d__n
push 2
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
push 8
jmp 0x407a4b
push str.Z80onTAP
push str._Usage:__s___e__input.z80_.scr__snapshot_settings__n_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
push str.____e_spr_____extract_screen_from_snapshot_only_and_save_to_tape_file_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________default_creates_compressed_screen_loader_in_.tap_wrapper_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._____s________create_standard_screen__loader_in_.tap_wrapper_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._____p_NUM____move_compression_to_NUM__lowest_24576__default_32768_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._____r________save_extracted_snapshot_screen_to_.scr_binary_dump_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.___example__es_creates_a_tape_with_the_.z80_snapshot_screen_as_a_standard_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________screen__loader_including_basic_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._____________can_also_be_used_with__n_setting_to_name_the_screen_file_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____________can_use_.scr_input_file_instead_of_.z80_snapshot__if_you_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________specify_a_.scr_input_with_no_options_it_will_default_to__e_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._n___snapshot_settings__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____n_NAME____specify_SPECTRUM_filename__length_10_alphanumeric_only._n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________Will_truncate_if__10_and_remove_non_alphanumeric_chars._n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._______________Default_is_take_name_from_the_input_file__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____l_FILE____add_a_custom_loading_screen._Screen_must_be_in_binary_.scr_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________format_and_exactly_6912bytes_long_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____L_FILE____as__l_but_doesnt_overwrite_with_original_screen_at_end_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____lt________instead_of_a_loading_screen_add_a_Loading_Please_Wait_message_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____lc________as__lt_but_use_a_custom_message__in_quotes___max_32chars_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._____________for_lt__lc_the_default_colours_are_black_paper__white_ink_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________to_change_this_use_the__i_b_option__note_ink_will_always_be_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________set_based_on_paper_colour____0_3_inkwhite__3_7_inkblack_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____lb________removing_loading_screen_completely_and_just_have_a_blank_screen_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____c_tmbp____use_alternate_2_stage_launcher_code_within_the_screen_prtbuf__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str._______________t_op___m_iddle___b_ottom_of_screen_or__p_rtbuf_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____48k_______force_snapshot_to_48k_i.e._remove_128k_pages__bank_switching_off_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____b_NUM_____override_snapshot_border_colour_with_NUM__valid_0_7_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________Also_changes_paper_and_ink_to_match_unless__i_option_is_used_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____i_NUM_____override_loader_paper_ink_from_border_colour_to_NUM__valid_0_7_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____t__N_V____enter_one_or_multiple_POKEs__max_256._If_more_than_one_POKE_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________separate_them_with_a_colon._Example__t__23455_23:23456_37__n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____p_NUM_____add_NUM_50th_sec_PAUSE_before_final_stage__max_999__0_key_press_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.____sos_ROW___put_the_small_4th_stage_stack_launcher_on_screen_rather_than_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________under_the_stack_note_2bytes_will_still_be_under_the_stack_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.______________ROWpixel_row_on_screen__0_top__191_bottom_n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push str.________________________________________________________________________________n
push 1
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 8
push 1
call fcn.0040a841
call fcn.00408530
push 5
push str.unable_to_allocate_for_page_3_compression
push str.ERROR:__s_n_E_02d__n
push 2
call fcn.0040a9ed
add esp, 4
push eax
call fcn.00401010
add esp, 0x10
push 5
call fcn.0040a841
int3