Function at 0x428437
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
push ebx
push esi
push edi
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x38], 0
push 0x400
call fcn.00427ae3
add esp, 4
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
sub eax, 0x3fc
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x64]
add eax, 2
push eax
call fcn.0041a3d0
add esp, 4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x64]
add eax, 2
push eax
call fcn.0041a3d0
add esp, 4
mov dword [ebp - 0x40], eax
push 0x402
call fcn.0041a3d0
add esp, 4
mov dword [ebp - 0x5c], eax
push 0x402
call fcn.0041a3d0
add esp, 4
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x64]
add eax, 2
push eax
call fcn.0041a3d0
add esp, 4
mov dword [ebp - 0x58], eax
push 0x42f098
push dword [ebp + 8]
call fcn.00416476
add esp, 8
mov dword [ebp - 0x74], eax
push dword [ebp + 0xc]
call fcn.00420424
add esp, 4
test eax, eax
je 0x428512
push 0x42f098
push dword [ebp + 0xc]
call fcn.00416476
add esp, 8
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
jmp 0x42856a
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x28], eax
push dword [ebp + 0x18]
push dword [ebp - 0x28]
call fcn.004282f7
add esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x42856a
cmp dword [ebp + 0x14], 0
je 0x42855d
push 0x430db8
push 0
call fcn.004093aa
add esp, 8
call fcn.004173be
xor eax, eax
jmp 0x429ff9
push 0x430db8
call fcn.004081d7
add esp, 4
push 2
push 0
push dword [ebp - 0x74]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x74]
call dword [sym.imp.MSVCRT20.dll_ftell]
add esp, 4
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x10], 0
je 0x42859c
mov eax, dword [ebp - 0x10]
sub eax, 6
mov dword [ebp - 0x68], eax
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x5c]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x5c]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
jne 0x428609
mov eax, dword [ebp - 0x5c]
movzx eax, word [eax + 4]
and eax, 0xffff
cmp eax, 0x1111
je 0x428689
push 0
mov eax, dword [ebp - 0x10]
add eax, 0xc00
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x5c]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x5c]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
jne 0x42867c
mov eax, dword [ebp - 0x5c]
movzx eax, word [eax + 4]
and eax, 0xffff
cmp eax, 0x1111
je 0x428689
push 0x430cf0
call fcn.004081d7
add esp, 4
push 0
push dword [ebp - 0x10]
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
mov eax, dword [ebp - 0x5c]
movzx eax, word [eax + 6]
and eax, 0xffff
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0xa]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x68]
cmp dword [ebp - 0xc], eax
jne 0x428c0d
push 0
push 0
push dword [ebp - 0x74]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push 0x431478
push 0
call fcn.004093aa
add esp, 8
mov dword [ebp - 0x70], 0
jmp 0x4286ec
inc dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
cmp dword [ebp - 0x48], eax
jbe 0x428bf9
push 0x4329d0
push 0
call fcn.004093aa
add esp, 8
mov dword [ebp - 0x54], 1
mov dword [ebp - 0x18], 0
push 0
mov eax, dword [ebp - 0x70]
shl eax, 0xa
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x5c]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x5c]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x428779
mov dword [ebp - 0x18], 2
push 0
mov eax, dword [ebp - 0x48]
imul eax, eax, 0xc00
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x4c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x4c]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x42881c
cmp dword [ebp - 0x18], 2
jne 0x428815
cmp dword [ebp - 0x54], 0
je 0x428801
call fcn.004173be
mov dword [ebp - 0x54], 0
push 0x430d20
push 0
call fcn.004093aa
add esp, 8
call fcn.004282df
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x34], 0
jmp 0x42882b
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3f2
jge 0x428863
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx + 0xe]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x5c]
mov byte [ecx + edx], al
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx + 0xe]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x4c]
mov byte [ecx + edx], al
jmp 0x428828
push 0
mov eax, dword [ebp - 0x48]
shl eax, 0xa
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x20]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x20]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x20]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x4288d4
mov dword [ebp - 0x60], 1
jmp 0x4288db
mov dword [ebp - 0x60], 0
cmp dword [ebp - 0x60], 0
jne 0x428978
mov dword [ebp - 0x34], 0
jmp 0x4288f4
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3fc
jge 0x428919
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
mov al, byte [eax + ecx + 4]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x4288f1
mov dword [ebp - 0x34], 0
jmp 0x428928
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jge 0x428978
cmp dword [ebp - 0x18], 2
jne 0x42895b
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x428973
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x428925
push 0
mov eax, dword [ebp - 0x48]
shl eax, 0xb
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x40]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x40]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x40]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x4289e9
mov dword [ebp - 0x6c], 1
jmp 0x4289f0
mov dword [ebp - 0x6c], 0
cmp dword [ebp - 0x6c], 0
jne 0x428a93
mov dword [ebp - 0x34], 0
jmp 0x428a09
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3fc
jge 0x428a2e
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
mov al, byte [eax + ecx + 4]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x428a06
mov dword [ebp - 0x34], 0
jmp 0x428a3d
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jge 0x428a93
cmp dword [ebp - 0x18], 2
jne 0x428a73
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x428a8e
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x428a3a
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x70]
shl eax, 0xa
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x68], eax
jbe 0x428bf4
push 0
push dword [ebp - 0x2c]
push dword [ebp - 0x74]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x2c]
cmp eax, 0x400
jb 0x428ad6
mov eax, 0x400
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x74]
push dword [ebp - 0x1c]
push 1
mov eax, dword [ebp - 0x58]
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x58]
mov byte [eax], 0
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x34], eax
jmp 0x428b07
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x428b22
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
mov byte [eax + ecx], 0
jmp 0x428b04
push 0x400
mov eax, dword [ebp - 0x58]
inc eax
push eax
call fcn.00427a75
add esp, 8
movzx eax, ax
mov dword [0x42d100], eax
push 0x400
mov eax, dword [ebp - 0x58]
inc eax
push eax
call fcn.00418da1
add esp, 8
cmp dword [ebp - 0x18], 0
je 0x428b62
cmp dword [ebp - 0x18], 1
jne 0x428b9a
mov eax, dword [ebp - 0x14]
and eax, 0x3fffffff
mov ecx, dword [ebp - 0x24]
add ecx, ecx
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x5c]
movzx eax, word [eax + ecx]
and eax, 0xffff
mov ecx, dword [0x42d100]
and ecx, 0xffff
movzx ecx, cx
cmp eax, ecx
je 0x428b9a
jmp 0x428c0d
cmp dword [ebp - 0x18], 0
je 0x428bae
cmp dword [ebp - 0x18], 2
jne 0x428be3
mov eax, dword [ebp - 0x14]
and eax, 0x3fffffff
mov ecx, dword [ebp - 0x24]
add ecx, ecx
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x4c]
movzx eax, word [eax + ecx]
and eax, 0xffff
mov ecx, dword [0x42d100]
shr ecx, 0x10
movzx ecx, cx
cmp eax, ecx
je 0x428be3
jmp 0x428c0d
mov eax, dword [ebp - 0x48]
shl eax, 0xa
add dword [ebp - 0x2c], eax
inc dword [ebp - 0x14]
jmp 0x428aa3
jmp 0x4286e9
cmp dword [ebp + 0x14], 2
jne 0x428c08
jmp 0x428c0d
jmp 0x429f71
call fcn.004173be
cmp dword [ebp + 0x14], 1
je 0x429712
push 0x42f0a8
push dword [ebp + 0x10]
call fcn.00416476
add esp, 8
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [0x432fa8], eax
push 0
push 0
push dword [ebp - 0x74]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x68]
cmp eax, ecx
jb 0x428c5e
mov eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x428c70
xor eax, eax
sub eax, dword [ebp - 0x1c]
neg eax
sub dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jbe 0x428cd9
mov eax, dword [ebp - 0x78]
cmp eax, 0x400
jb 0x428c8d
mov eax, 0x400
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x74]
push dword [ebp - 0x1c]
push 1
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
cmp eax, dword [ebp - 0x1c]
je 0x428cb2
jmp 0x428cd9
push dword [ebp - 4]
push dword [ebp - 0x1c]
push 1
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_fwrite]
add esp, 0x10
cmp eax, dword [ebp - 0x1c]
je 0x428cd4
jmp 0x428cd9
jmp 0x428c66
mov eax, dword [ebp - 0x68]
cmp dword [ebp - 0xc], eax
ja 0x428cf1
mov dword [ebp - 0x78], 0
jmp 0x428cfa
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x68]
mov dword [ebp - 0x78], eax
jmp 0x428d09
xor eax, eax
sub eax, dword [ebp - 0x1c]
neg eax
sub dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jbe 0x428d50
mov eax, dword [ebp - 0x78]
cmp eax, 0x400
jb 0x428d26
mov eax, 0x400
mov dword [ebp - 0x1c], eax
push dword [ebp - 4]
push dword [ebp - 0x1c]
push 1
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_fwrite]
add esp, 0x10
cmp eax, dword [ebp - 0x1c]
je 0x428d4b
jmp 0x428d50
jmp 0x428cff
push 2
push 0
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_ftell]
add esp, 4
cmp eax, dword [ebp - 0xc]
je 0x428d82
push 0x42fa18
call fcn.004081d7
add esp, 4
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], 0
jmp 0x428d97
inc dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
cmp dword [ebp - 0x48], eax
jbe 0x4296dd
push 0x4329d0
push 0
call fcn.004093aa
add esp, 8
mov dword [ebp - 0x54], 1
mov dword [ebp - 0x18], 0
push 0
mov eax, dword [ebp - 0x70]
shl eax, 0xa
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x5c]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x5c]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x428e24
mov dword [ebp - 0x18], 2
push 0
mov eax, dword [ebp - 0x48]
imul eax, eax, 0xc00
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x4c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x4c]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x428ec7
cmp dword [ebp - 0x18], 2
jne 0x428ec0
cmp dword [ebp - 0x54], 0
je 0x428eac
call fcn.004173be
mov dword [ebp - 0x54], 0
push 0x430d20
push 0
call fcn.004093aa
add esp, 8
call fcn.004282df
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x34], 0
jmp 0x428ed6
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3f2
jge 0x428f0e
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx + 0xe]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x5c]
mov byte [ecx + edx], al
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx + 0xe]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x4c]
mov byte [ecx + edx], al
jmp 0x428ed3
push 0
mov eax, dword [ebp - 0x48]
shl eax, 0xa
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x20]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x20]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x20]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x428f7f
mov dword [ebp - 0x60], 1
jmp 0x428f86
mov dword [ebp - 0x60], 0
cmp dword [ebp - 0x60], 0
jne 0x429023
mov dword [ebp - 0x34], 0
jmp 0x428f9f
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3fc
jge 0x428fc4
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
mov al, byte [eax + ecx + 4]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x428f9c
mov dword [ebp - 0x34], 0
jmp 0x428fd3
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jge 0x429023
cmp dword [ebp - 0x18], 2
jne 0x429006
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x42901e
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x428fd0
push 0
mov eax, dword [ebp - 0x48]
shl eax, 0xb
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x40]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x40]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x40]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x429094
mov dword [ebp - 0x6c], 1
jmp 0x42909b
mov dword [ebp - 0x6c], 0
cmp dword [ebp - 0x6c], 0
jne 0x42913e
mov dword [ebp - 0x34], 0
jmp 0x4290b4
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3fc
jge 0x4290d9
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
mov al, byte [eax + ecx + 4]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x4290b1
mov dword [ebp - 0x34], 0
jmp 0x4290e8
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jge 0x42913e
cmp dword [ebp - 0x18], 2
jne 0x42911e
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x429139
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x4290e5
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x3c], 0xffffffff
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x70]
shl eax, 0xa
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x68], eax
jbe 0x429378
push 0
push dword [ebp - 0x2c]
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 4]
push 0x400
push 1
mov eax, dword [ebp - 0x58]
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x58]
mov byte [eax], 0
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x34], eax
jmp 0x4291a8
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x4291c3
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
mov byte [eax + ecx], 0
jmp 0x4291a5
mov dword [ebp - 8], 0
push 0x400
mov eax, dword [ebp - 0x58]
inc eax
push eax
call fcn.00427a75
add esp, 8
movzx eax, ax
mov dword [0x42d100], eax
push 0x400
mov eax, dword [ebp - 0x58]
inc eax
push eax
call fcn.00418da1
add esp, 8
cmp dword [ebp - 0x18], 0
je 0x42920a
cmp dword [ebp - 0x18], 1
jne 0x429244
mov eax, dword [ebp - 0x14]
and eax, 0x3fffffff
mov ecx, dword [ebp - 0x24]
add ecx, ecx
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x5c]
movzx eax, word [eax + ecx]
and eax, 0xffff
mov ecx, dword [0x42d100]
and ecx, 0xffff
movzx ecx, cx
cmp eax, ecx
je 0x429244
mov dword [ebp - 8], 1
cmp dword [ebp - 0x18], 0
je 0x429258
cmp dword [ebp - 0x18], 2
jne 0x42928f
mov eax, dword [ebp - 0x14]
and eax, 0x3fffffff
mov ecx, dword [ebp - 0x24]
add ecx, ecx
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x4c]
movzx eax, word [eax + ecx]
and eax, 0xffff
mov ecx, dword [0x42d100]
shr ecx, 0x10
movzx ecx, cx
cmp eax, ecx
je 0x42928f
mov dword [ebp - 8], 1
cmp dword [ebp - 8], 0
je 0x429307
inc dword [ebp - 0x38]
cmp dword [ebp - 0x54], 0
je 0x4292b2
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x14]
push dword [ebp - 0x70]
push 0x430d60
push 0
call fcn.004093aa
add esp, 0x10
cmp dword [ebp - 0x30], 0xffffffff
jne 0x4292e2
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x50], eax
jmp 0x429302
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x4292fd
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
jmp 0x429302
call fcn.004282df
jmp 0x429367
mov dword [ebp - 0x34], 0
jmp 0x429316
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x429367
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
movsx eax, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
xor al, byte [ecx + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x14]
sub edx, edx
div dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
movsx eax, byte [eax + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
xor al, byte [ecx + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x429313
mov eax, dword [ebp - 0x48]
shl eax, 0xa
add dword [ebp - 0x2c], eax
inc dword [ebp - 0x14]
jmp 0x42915b
cmp dword [ebp - 0x30], 0xffffffff
je 0x4296d8
cmp dword [ebp - 0x60], 0
je 0x4293aa
cmp dword [ebp - 0x6c], 0
je 0x4293aa
cmp dword [ebp - 0x30], 0xffffffff
je 0x4293aa
call fcn.004282df
jmp 0x4296d8
cmp dword [ebp - 0x60], 0
jne 0x4295a7
cmp dword [ebp - 0x6c], 0
jne 0x4295a7
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x42942c
push 0
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x30]
shl eax, 0xa
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 4]
push dword [ebp - 0x50]
push 1
mov eax, dword [ebp - 0x20]
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_fwrite]
add esp, 0x10
cmp dword [ebp - 0x54], 0
je 0x429415
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
jmp 0x4295a2
mov eax, dword [ebp - 0x58]
mov byte [eax], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x34], 1
jmp 0x429448
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x4294a8
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x30]
sub edx, edx
div dword [ebp - 0x64]
mov eax, dword [ebp - 0x40]
movsx ecx, byte [eax + edx]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x58]
movsx eax, byte [eax + edx]
xor ecx, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
xor cl, byte [eax + edx]
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x30]
sub edx, edx
div dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
mov byte [eax + edx], cl
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x30]
sub edx, edx
div dword [ebp - 0x64]
mov dword [ebp - 0x14], edx
jmp 0x429445
push 0
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x3c]
shl eax, 0xa
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 4]
push dword [ebp - 0x44]
push 1
mov eax, dword [ebp - 0x58]
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_fwrite]
add esp, 0x10
cmp dword [ebp - 0x54], 0
je 0x4294f5
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
mov dword [ebp - 0x34], 1
jmp 0x429516
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x429543
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
movsx eax, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
xor al, byte [ecx + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x58]
mov byte [ecx + edx], al
jmp 0x429513
push 0
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x30]
shl eax, 0xa
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 4]
push dword [ebp - 0x50]
push 1
mov eax, dword [ebp - 0x58]
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_fwrite]
add esp, 0x10
cmp dword [ebp - 0x54], 0
je 0x429590
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
jmp 0x4296d8
cmp dword [ebp - 0x6c], 0
je 0x429624
cmp dword [ebp - 0x3c], 0xffffffff
je 0x4295c0
call fcn.004282df
push 0
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x30]
shl eax, 0xa
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 4]
push dword [ebp - 0x50]
push 1
mov eax, dword [ebp - 0x20]
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_fwrite]
add esp, 0x10
cmp dword [ebp - 0x54], 0
je 0x42960d
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
jmp 0x4296d8
cmp dword [ebp - 0x60], 0
je 0x4296d8
cmp dword [ebp - 0x3c], 0xffffffff
je 0x42963d
call fcn.004282df
mov dword [ebp - 0x34], 1
jmp 0x42964c
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x429679
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x30]
cdq
idiv dword [ebp - 0x64]
mov eax, dword [ebp - 0x40]
mov al, byte [eax + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x58]
mov byte [ecx + edx], al
jmp 0x429649
push 0
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x30]
shl eax, 0xa
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 4]
push dword [ebp - 0x50]
push 1
mov eax, dword [ebp - 0x58]
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_fwrite]
add esp, 0x10
cmp dword [ebp - 0x54], 0
je 0x4296c6
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
jmp 0x428d94
cmp dword [ebp - 0x10], 0
je 0x4296f7
push 1
push dword [ebp - 0x48]
push dword [ebp - 4]
call fcn.00427cc4
add esp, 0xc
push dword [ebp - 4]
call dword [sym.imp.MSVCRT20.dll_fclose]
add esp, 4
mov dword [0x432fa8], 0
jmp 0x429f71
push 0
push 0
push dword [ebp - 0x74]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], 0
jmp 0x42973e
inc dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
cmp dword [ebp - 0x48], eax
jbe 0x429f71
push 0x4329d0
push 0
call fcn.004093aa
add esp, 8
mov dword [ebp - 0x54], 1
mov dword [ebp - 0x18], 0
push 0
mov eax, dword [ebp - 0x70]
shl eax, 0xa
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x5c]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x5c]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x4297cb
mov dword [ebp - 0x18], 2
push 0
mov eax, dword [ebp - 0x48]
imul eax, eax, 0xc00
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x4c]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x4c]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x4c]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x42986e
cmp dword [ebp - 0x18], 2
jne 0x429867
cmp dword [ebp - 0x54], 0
je 0x429853
call fcn.004173be
mov dword [ebp - 0x54], 0
push 0x430d20
push 0
call fcn.004093aa
add esp, 8
call fcn.004282df
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x34], 0
jmp 0x42987d
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3f2
jge 0x4298b5
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx + 0xe]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x5c]
mov byte [ecx + edx], al
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx + 0xe]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x4c]
mov byte [ecx + edx], al
jmp 0x42987a
push 0
mov eax, dword [ebp - 0x48]
shl eax, 0xa
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x20]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x20]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x20]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x429926
mov dword [ebp - 0x60], 1
jmp 0x42992d
mov dword [ebp - 0x60], 0
cmp dword [ebp - 0x60], 0
jne 0x4299ca
mov dword [ebp - 0x34], 0
jmp 0x429946
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3fc
jge 0x42996b
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
mov al, byte [eax + ecx + 4]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x429943
mov dword [ebp - 0x34], 0
jmp 0x42997a
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jge 0x4299ca
cmp dword [ebp - 0x18], 2
jne 0x4299ad
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x4299c5
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
jmp 0x429977
push 0
mov eax, dword [ebp - 0x48]
shl eax, 0xb
mov ecx, dword [ebp - 0x70]
shl ecx, 0xa
add eax, ecx
add eax, dword [ebp - 0x10]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x28]
push 0x400
push 1
push dword [ebp - 0x40]
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [0x42d100], 0xffffffff
push 0x3fc
mov eax, dword [ebp - 0x40]
add eax, 4
push eax
call fcn.00418da1
add esp, 8
mov eax, dword [ebp - 0x40]
mov ecx, dword [0x42d100]
cmp dword [eax], ecx
je 0x429a3b
mov dword [ebp - 0x6c], 1
jmp 0x429a42
mov dword [ebp - 0x6c], 0
cmp dword [ebp - 0x6c], 0
jne 0x429ae5
mov dword [ebp - 0x34], 0
jmp 0x429a5b
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x3fc
jge 0x429a80
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
mov al, byte [eax + ecx + 4]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x429a58
mov dword [ebp - 0x34], 0
jmp 0x429a8f
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jge 0x429ae5
cmp dword [ebp - 0x18], 2
jne 0x429ac5
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x429ae0
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x5c]
mov al, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x429a8c
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x3c], 0xffffffff
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x70]
shl eax, 0xa
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x68], eax
jbe 0x429d1f
push 0
push dword [ebp - 0x2c]
push dword [ebp - 0x74]
call dword [sym.imp.MSVCRT20.dll_fseek]
add esp, 0xc
push dword [ebp - 0x74]
push 0x400
push 1
mov eax, dword [ebp - 0x58]
inc eax
push eax
call dword [sym.imp.MSVCRT20.dll_fread]
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x58]
mov byte [eax], 0
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x34], eax
jmp 0x429b4f
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x429b6a
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
mov byte [eax + ecx], 0
jmp 0x429b4c
mov dword [ebp - 8], 0
push 0x400
mov eax, dword [ebp - 0x58]
inc eax
push eax
call fcn.00427a75
add esp, 8
movzx eax, ax
mov dword [0x42d100], eax
push 0x400
mov eax, dword [ebp - 0x58]
inc eax
push eax
call fcn.00418da1
add esp, 8
cmp dword [ebp - 0x18], 0
je 0x429bb1
cmp dword [ebp - 0x18], 1
jne 0x429beb
mov eax, dword [ebp - 0x14]
and eax, 0x3fffffff
mov ecx, dword [ebp - 0x24]
add ecx, ecx
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x5c]
movzx eax, word [eax + ecx]
and eax, 0xffff
mov ecx, dword [0x42d100]
and ecx, 0xffff
movzx ecx, cx
cmp eax, ecx
je 0x429beb
mov dword [ebp - 8], 1
cmp dword [ebp - 0x18], 0
je 0x429bff
cmp dword [ebp - 0x18], 2
jne 0x429c36
mov eax, dword [ebp - 0x14]
and eax, 0x3fffffff
mov ecx, dword [ebp - 0x24]
add ecx, ecx
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x4c]
movzx eax, word [eax + ecx]
and eax, 0xffff
mov ecx, dword [0x42d100]
shr ecx, 0x10
movzx ecx, cx
cmp eax, ecx
je 0x429c36
mov dword [ebp - 8], 1
cmp dword [ebp - 8], 0
je 0x429cae
inc dword [ebp - 0x38]
cmp dword [ebp - 0x54], 0
je 0x429c59
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x14]
push dword [ebp - 0x70]
push 0x430d60
push 0
call fcn.004093aa
add esp, 0x10
cmp dword [ebp - 0x30], 0xffffffff
jne 0x429c89
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x50], eax
jmp 0x429ca9
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x429ca4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
jmp 0x429ca9
call fcn.004282df
jmp 0x429d0e
mov dword [ebp - 0x34], 0
jmp 0x429cbd
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x429d0e
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
movsx eax, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
xor al, byte [ecx + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
mov byte [ecx + edx], al
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x14]
sub edx, edx
div dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
movsx eax, byte [eax + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
xor al, byte [ecx + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov byte [ecx + edx], al
jmp 0x429cba
mov eax, dword [ebp - 0x48]
shl eax, 0xa
add dword [ebp - 0x2c], eax
inc dword [ebp - 0x14]
jmp 0x429b02
cmp dword [ebp - 0x30], 0xffffffff
je 0x429f6c
cmp dword [ebp - 0x60], 0
je 0x429d51
cmp dword [ebp - 0x6c], 0
je 0x429d51
cmp dword [ebp - 0x30], 0xffffffff
je 0x429d51
call fcn.004282df
jmp 0x429f6c
cmp dword [ebp - 0x60], 0
jne 0x429ea9
cmp dword [ebp - 0x6c], 0
jne 0x429ea9
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x429d9c
cmp dword [ebp - 0x54], 0
je 0x429d85
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
jmp 0x429ea4
mov eax, dword [ebp - 0x58]
mov byte [eax], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x34], 1
jmp 0x429db8
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x429e18
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x30]
sub edx, edx
div dword [ebp - 0x64]
mov eax, dword [ebp - 0x40]
movsx ecx, byte [eax + edx]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x58]
movsx eax, byte [eax + edx]
xor ecx, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
xor cl, byte [eax + edx]
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x30]
sub edx, edx
div dword [ebp - 0x64]
mov eax, dword [ebp - 0x58]
mov byte [eax + edx], cl
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x30]
sub edx, edx
div dword [ebp - 0x64]
mov dword [ebp - 0x14], edx
jmp 0x429db5
cmp dword [ebp - 0x54], 0
je 0x429e2e
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
mov dword [ebp - 0x34], 1
jmp 0x429e4f
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x429e7c
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x58]
movsx eax, byte [eax + ecx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
xor al, byte [ecx + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x58]
mov byte [ecx + edx], al
jmp 0x429e4c
cmp dword [ebp - 0x54], 0
je 0x429e92
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
jmp 0x429f6c
cmp dword [ebp - 0x6c], 0
je 0x429eef
cmp dword [ebp - 0x3c], 0xffffffff
je 0x429ec2
call fcn.004282df
cmp dword [ebp - 0x54], 0
je 0x429ed8
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
jmp 0x429f6c
cmp dword [ebp - 0x60], 0
je 0x429f6c
cmp dword [ebp - 0x3c], 0xffffffff
je 0x429f08
call fcn.004282df
mov dword [ebp - 0x34], 1
jmp 0x429f17
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x34], eax
jge 0x429f44
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x30]
cdq
idiv dword [ebp - 0x64]
mov eax, dword [ebp - 0x40]
mov al, byte [eax + edx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x58]
mov byte [ecx + edx], al
jmp 0x429f14
cmp dword [ebp - 0x54], 0
je 0x429f5a
call fcn.004173be
mov dword [ebp - 0x54], 0
push dword [ebp - 0x70]
push 0x430d88
push 0
call fcn.004093aa
add esp, 0xc
jmp 0x42973b
cmp dword [ebp - 0x54], 0
je 0x429f80
call fcn.004173be
cmp dword [ebp - 0x10], 0
jne 0x429f96
push dword [ebp - 0x28]
call dword [sym.imp.MSVCRT20.dll_fclose]
add esp, 4
push dword [ebp - 0x74]
call dword [sym.imp.MSVCRT20.dll_fclose]
add esp, 4
push dword [ebp - 0x20]
call dword [sym.imp.MSVCRT20.dll_free]
add esp, 4
push dword [ebp - 0x40]
call dword [sym.imp.MSVCRT20.dll_free]
add esp, 4
push dword [ebp - 0x5c]
call dword [sym.imp.MSVCRT20.dll_free]
add esp, 4
push dword [ebp - 0x4c]
call dword [sym.imp.MSVCRT20.dll_free]
add esp, 4
push dword [ebp - 0x58]
call dword [sym.imp.MSVCRT20.dll_free]
add esp, 4
cmp dword [ebp - 0x38], 0
je 0x429fef
xor eax, eax
jmp 0x429ff4
mov eax, 1
jmp 0x429ff9
pop edi
pop esi
pop ebx
leave
ret