Function at 0x405462
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x420060]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x10]
push edi
push 0x30032
mov dword [ebp - 0x2c], eax
call fcn.004094c7
mov edi, eax
pop ecx
test edi, edi
jne 0x405498
or eax, 0xffffffff
jmp 0x4056b4
push esi
push edi
push dword [ebp + 8]
mov esi, edi
call fcn.0040532d
pop ecx
pop ecx
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x4054bc
push edi
call fcn.00409608
pop ecx
or eax, 0xffffffff
jmp 0x4056b3
movzx eax, byte [edi + 0x13]
movzx edx, byte [edi + 0x12]
shl eax, 8
or eax, edx
movzx edx, byte [edi + 0x11]
shl eax, 8
or eax, edx
movzx edx, byte [edi + 0x10]
shl eax, 8
or eax, edx
movzx edx, byte [edi + 0xf]
push ebx
movzx ebx, byte [edi + 0xe]
shl edx, 8
or edx, ebx
movzx ebx, byte [edi + 0xd]
shl edx, 8
or edx, ebx
movzx ebx, byte [edi + 0xc]
shl edx, 8
or edx, ebx
add edx, eax
sub ecx, edx
push 0
add eax, ecx
push eax
push dword [ebp + 8]
mov dword [ebp - 0x30], ecx
call fcn.00416172
add esp, 0xc
test eax, eax
js 0x4056a8
push 0x400
push edi
push dword [ebp + 8]
call fcn.00415422
mov ebx, eax
add esp, 0xc
test ebx, ebx
js 0x4056a8
movzx eax, byte [edi + 3]
movzx ecx, byte [edi + 2]
shl eax, 8
or eax, ecx
movzx ecx, byte [edi + 1]
shl eax, 8
or eax, ecx
movzx ecx, byte [edi]
jmp 0x40564a
cmp ebx, 0x2e
jge 0x405580
push ebx
push esi
push edi
call fcn.0040bc80
mov esi, eax
push 0x400
lea eax, [ebx + edi]
push eax
push dword [ebp + 8]
call fcn.00415422
add esp, 0x18
test eax, eax
jle 0x4056a8
add ebx, eax
movzx eax, byte [esi + 0x21]
movzx ecx, byte [esi + 0x20]
movzx edx, byte [esi + 0x1e]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0x1f]
shl ecx, 8
or ecx, edx
movzx edx, byte [esi + 0x1c]
add eax, ecx
movzx ecx, byte [esi + 0x1d]
shl ecx, 8
or ecx, edx
lea eax, [eax + ecx + 0x2e]
lea ecx, [eax + 4]
mov dword [ebp - 0x28], eax
cmp ebx, ecx
jge 0x4055f5
cmp esi, edi
je 0x4055cb
push ebx
push esi
push edi
call fcn.0040bc80
mov esi, eax
mov eax, dword [ebp - 0x28]
add esp, 0xc
sub eax, ebx
add eax, 4
mov ecx, 0x400
cmp eax, ecx
jge 0x4055db
mov eax, ecx
push eax
lea eax, [ebx + edi]
push eax
push dword [ebp + 8]
call fcn.00415422
add esp, 0xc
test eax, eax
jle 0x4056a8
add ebx, eax
push dword [ebp - 0x2c]
call fcn.00408570
movzx edx, byte [esi + 0x1c]
pop ecx
movzx ecx, byte [esi + 0x1d]
shl ecx, 8
or ecx, edx
cmp ecx, eax
jne 0x40562b
push dword [ebp - 0x2c]
call fcn.00408570
push eax
push dword [ebp - 0x2c]
lea eax, [esi + 0x2e]
push eax
call fcn.0040a72c
add esp, 0x10
test eax, eax
je 0x40565f
add esi, dword [ebp - 0x28]
sub ebx, dword [ebp - 0x28]
movzx eax, byte [esi + 3]
movzx ecx, byte [esi + 2]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi]
shl eax, 8
or eax, ecx
cmp eax, 0x2014b50
je 0x405553
jmp 0x4056e7
movzx eax, byte [esi + 0x2d]
movzx ecx, byte [esi + 0x2c]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0x2b]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0x2a]
shl eax, 8
or eax, ecx
add eax, dword [ebp - 0x30]
push 0
push eax
push dword [ebp + 8]
call fcn.00416172
add esp, 0xc
test eax, eax
js 0x4056a8
push 0x1e
lea eax, [ebp - 0x24]
push eax
push dword [ebp + 8]
call fcn.00415422
add esp, 0xc
test eax, eax
jns 0x4056c1
push edi
call fcn.00409608
pop ecx
or eax, 0xffffffff
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.00408bf8
leave
ret
movzx eax, byte [ebp - 0x21]
movzx ecx, byte [ebp - 0x22]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0x23]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 0x24]
shl eax, 8
or eax, ecx
cmp eax, 0x4034b50
je 0x4056f5
or esi, 0xffffffff
push edi
call fcn.00409608
pop ecx
mov eax, esi
jmp 0x4056b2
movzx ecx, byte [esi + 0x1b]
movzx eax, byte [esi + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0x19]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0x18]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], ecx
movzx ecx, byte [esi + 0x17]
movzx edx, byte [esi + 0x16]
shl ecx, 8
or ecx, edx
movzx edx, byte [esi + 0x15]
shl ecx, 8
or ecx, edx
movzx edx, byte [esi + 0x14]
shl ecx, 8
or ecx, edx
mov dword [eax + 4], ecx
movzx eax, byte [esi + 0x2d]
movzx ecx, byte [esi + 0x2c]
movzx edx, byte [ebp - 8]
movzx ebx, byte [ebp - 0xa]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0x2b]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0x2a]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebp - 7]
shl ecx, 8
or ecx, edx
add ecx, dword [ebp - 0x30]
movzx edx, byte [ebp - 9]
add ecx, eax
mov eax, dword [ebp - 0x34]
shl edx, 8
or edx, ebx
lea ecx, [edx + ecx + 0x1e]
mov dword [eax + 8], ecx
movzx ecx, byte [esi + 0xb]
movzx edx, byte [esi + 0xa]
shl ecx, 8
or ecx, edx
mov dword [eax + 0xc], ecx
xor esi, esi
jmp 0x4056ea