Function at 0x404ebf
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x420030]
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.0040a264
mov edi, eax
pop ecx
test edi, edi
jne 0x404ef5
or eax, 0xffffffff
jmp 0x405111
push esi
push edi
push dword [ebp + 8]
mov esi, edi
call fcn.00404d8a
pop ecx
pop ecx
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x404f19
push edi
call fcn.0040a3a5
pop ecx
or eax, 0xffffffff
jmp 0x405110
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.004164b2
add esp, 0xc
test eax, eax
js 0x405105
push 0x400
push edi
push dword [ebp + 8]
call fcn.004159eb
mov ebx, eax
add esp, 0xc
test ebx, ebx
js 0x405105
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 0x4050a7
cmp ebx, 0x2e
jge 0x404fdd
push ebx
push esi
push edi
jmp 0x42f3a2
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 0x405052
cmp esi, edi
je 0x405028
push ebx
push esi
push edi
call fcn.0040b9e0
mov esi, eax
mov eax, dword [ebp - 0x28]
add esp, 0xc
sub eax, ebx
add eax, 4
mov ecx, 0x400
cmp eax, ecx
jge 0x405038
mov eax, ecx
push eax
lea eax, [ebx + edi]
push eax
push dword [ebp + 8]
call fcn.004159eb
add esp, 0xc
test eax, eax
jle 0x405105
add ebx, eax
push dword [ebp - 0x2c]
call fcn.00407d90
movzx edx, byte [esi + 0x1c]
pop ecx
movzx ecx, byte [esi + 0x1d]
shl ecx, 8
or ecx, edx
cmp ecx, eax
jne 0x405088
push dword [ebp - 0x2c]
call fcn.00407d90
push eax
push dword [ebp - 0x2c]
lea eax, [esi + 0x2e]
push eax
call fcn.0040a480
add esp, 0x10
test eax, eax
je 0x4050bc
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 0x404fb0
jmp 0x405144
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.004164b2
add esp, 0xc
test eax, eax
js 0x405105
push 0x1e
lea eax, [ebp - 0x24]
push eax
push dword [ebp + 8]
call fcn.004159eb
add esp, 0xc
test eax, eax
jns 0x40511e
push edi
call fcn.0040a3a5
pop ecx
or eax, 0xffffffff
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.004085d9
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 0x405152
or esi, 0xffffffff
push edi
call fcn.0040a3a5
pop ecx
mov eax, esi
jmp 0x40510f
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 0x405147