Function at 0x4051a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov dword [ebp - 0x64], ecx
mov eax, dword [ebp + 8]
push eax
push 1
push 4
mov ecx, dword [ebp - 0x64]
push ecx
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x405279
mov edx, dword [ebp + 8]
push edx
push 1
push 4
mov eax, dword [ebp - 0x64]
add eax, 4
push eax
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x405279
mov ecx, dword [ebp + 8]
push ecx
push 1
push 4
mov edx, dword [ebp - 0x64]
add edx, 8
push edx
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x405279
mov eax, dword [ebp + 8]
push eax
push 1
push 4
mov ecx, dword [ebp - 0x64]
add ecx, 0xc
push ecx
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x405279
mov edx, dword [ebp + 8]
push edx
push 1
push 4
mov eax, dword [ebp - 0x64]
add eax, 0x10
push eax
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x405279
mov ecx, dword [ebp + 8]
push ecx
push 1
push 4
mov edx, dword [ebp - 0x64]
add edx, 0x14
push edx
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x405279
mov eax, dword [ebp + 8]
push eax
push 1
push 4
mov ecx, dword [ebp - 0x64]
add ecx, 0x18
push ecx
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
cmp eax, 1
je 0x405289
mov ecx, dword [ebp - 0x64]
call fcn.00401120
or eax, 0xffffffff
jmp 0x405638
cmp dword [0x618160], 0
je 0x4054fb
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
add eax, 3
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov dl, byte [ecx]
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x10]
sub eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x11]
mov byte [ecx], dl
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x10]
mov dl, byte [ecx]
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp - 0x11]
mov byte [eax], cl
mov edx, dword [ebp - 0x64]
add edx, 4
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
add eax, 3
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov dl, byte [ecx]
mov byte [ebp - 0x1d], dl
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x1c]
sub eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x24]
mov dl, byte [ebp - 0x1d]
mov byte [ecx], dl
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x1c]
mov dl, byte [ecx]
mov byte [ebp - 0x1d], dl
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x24]
mov cl, byte [ebp - 0x1d]
mov byte [eax], cl
mov edx, dword [ebp - 0x64]
add edx, 8
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
add eax, 3
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dl, byte [ecx]
mov byte [ebp - 0x29], dl
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x28]
sub eax, 1
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x30]
mov dl, byte [ebp - 0x29]
mov byte [ecx], dl
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x28]
mov dl, byte [ecx]
mov byte [ebp - 0x29], dl
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x30]
mov cl, byte [ebp - 0x29]
mov byte [eax], cl
mov edx, dword [ebp - 0x64]
add edx, 0xc
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x3c]
add eax, 3
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx]
mov byte [ebp - 0x35], dl
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x34]
sub eax, 1
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x3c]
mov dl, byte [ebp - 0x35]
mov byte [ecx], dl
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx]
mov byte [ebp - 0x35], dl
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x3c]
mov cl, byte [ebp - 0x35]
mov byte [eax], cl
mov edx, dword [ebp - 0x64]
add edx, 0x10
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x48]
add eax, 3
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
mov dl, byte [ecx]
mov byte [ebp - 0x41], dl
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x48]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x40]
sub eax, 1
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x48]
mov dl, byte [ebp - 0x41]
mov byte [ecx], dl
mov eax, dword [ebp - 0x48]
add eax, 1
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x40]
mov dl, byte [ecx]
mov byte [ebp - 0x41], dl
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x48]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x48]
mov cl, byte [ebp - 0x41]
mov byte [eax], cl
mov edx, dword [ebp - 0x64]
add edx, 0x14
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x54]
add eax, 3
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov dl, byte [ecx]
mov byte [ebp - 0x4d], dl
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x4c]
sub eax, 1
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x54]
mov dl, byte [ebp - 0x4d]
mov byte [ecx], dl
mov eax, dword [ebp - 0x54]
add eax, 1
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x4c]
mov dl, byte [ecx]
mov byte [ebp - 0x4d], dl
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x54]
mov cl, byte [ebp - 0x4d]
mov byte [eax], cl
mov edx, dword [ebp - 0x64]
add edx, 0x18
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x60]
add eax, 3
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x58]
mov dl, byte [ecx]
mov byte [ebp - 0x59], dl
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x60]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x58]
sub eax, 1
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x60]
mov dl, byte [ebp - 0x59]
mov byte [ecx], dl
mov eax, dword [ebp - 0x60]
add eax, 1
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x58]
mov dl, byte [ecx]
mov byte [ebp - 0x59], dl
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x60]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x60]
mov cl, byte [ebp - 0x59]
mov byte [eax], cl
mov edx, dword [ebp - 0x64]
cmp dword [edx], 0
jge 0x405513
mov ecx, dword [ebp - 0x64]
call fcn.00401120
or eax, 0xffffffff
jmp 0x405638
mov eax, dword [ebp - 0x64]
cmp dword [eax + 4], 0
jl 0x405525
mov ecx, dword [ebp - 0x64]
cmp dword [ecx + 8], 0
jge 0x405542
mov edx, dword [ebp - 0x64]
mov dword [edx + 4], 0xffffffff
mov eax, dword [ebp - 0x64]
mov dword [eax + 8], 0xfffffffe
mov dword [ebp - 0xc], 0
jmp 0x405554
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x64]
mov eax, dword [ecx + 8]
sub eax, dword [edx + 4]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x64]
cmp dword [ecx + 0xc], 0
jl 0x405566
mov edx, dword [ebp - 0x64]
cmp dword [edx + 0x10], 0
jge 0x405583
mov eax, dword [ebp - 0x64]
mov dword [eax + 0xc], 0xffffffff
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0x10], 0xfffffffe
mov dword [ebp - 4], 0
jmp 0x405595
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
mov ecx, dword [edx + 0x10]
sub ecx, dword [eax + 0xc]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x64]
cmp dword [edx + 0x14], 0
jl 0x4055a7
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x18], 0
jge 0x4055c4
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0x14], 0xffffffff
mov edx, dword [ebp - 0x64]
mov dword [edx + 0x18], 0xfffffffe
mov dword [ebp - 8], 0
jmp 0x4055d6
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x64]
mov edx, dword [eax + 0x18]
sub edx, dword [ecx + 0x14]
add edx, 1
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 1
jl 0x4055e8
cmp dword [ebp - 4], 2
jl 0x4055e8
cmp dword [ebp - 0xc], 2
jge 0x405636
mov eax, dword [ebp - 0x64]
mov dword [eax + 0x14], 0xffffffff
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0xc], 0xffffffff
mov edx, dword [ebp - 0x64]
mov dword [edx + 4], 0xffffffff
mov eax, dword [ebp - 0x64]
mov dword [eax + 0x18], 0xfffffffe
mov ecx, dword [ebp - 0x64]
mov dword [ecx + 0x10], 0xfffffffe
mov edx, dword [ebp - 0x64]
mov dword [edx + 8], 0xfffffffe
mov ecx, dword [ebp - 0x64]
call fcn.00408750
push 2
mov ecx, dword [ebp - 0x64]
call fcn.00408720
xor eax, eax
mov esp, ebp
pop ebp
ret 4