Function at 0x40553e
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push esi
push edi
and dword [ebp - 0xc], 0
and dword [ebp - 4], 0
cmp dword [ebp + 8], 0
jne 0x40555c
push 0xffffffffffffff9a
pop eax
jmp 0x4058e0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
push 0
push 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp - 0x10]
add eax, dword [ecx + 0xc]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
cmp eax, 0xffffffff
jne 0x405587
or dword [ebp - 0xc], 0xffffffff
cmp dword [ebp - 0xc], 0
jne 0x4055b7
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.004050bc
pop ecx
pop ecx
test eax, eax
je 0x4055a7
or dword [ebp - 0xc], 0xffffffff
jmp 0x4055b7
cmp dword [ebp - 0x14], 0x2014b50
je 0x4055b7
mov dword [ebp - 0xc], 0xffffff99
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x4055cf
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x4055e7
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x4055ff
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x405617
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.004050bc
pop ecx
pop ecx
test eax, eax
je 0x40562f
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.004050bc
pop ecx
pop ecx
test eax, eax
je 0x405647
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.004050bc
pop ecx
pop ecx
test eax, eax
je 0x40565f
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.004050bc
pop ecx
pop ecx
test eax, eax
je 0x405677
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x40568f
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x4056a7
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x4056bf
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x4056d7
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.0040505f
pop ecx
pop ecx
test eax, eax
je 0x4056ef
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.004050bc
pop ecx
pop ecx
test eax, eax
je 0x405707
or dword [ebp - 0xc], 0xffffffff
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x10]
push dword [eax]
call fcn.004050bc
pop ecx
pop ecx
test eax, eax
je 0x40571f
or dword [ebp - 0xc], 0xffffffff
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x48]
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x405787
cmp dword [ebp + 0x14], 0
je 0x405787
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x18]
jae 0x40574d
mov eax, dword [ebp + 0x14]
add eax, dword [ebp - 0x48]
and byte [eax], 0
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x6c], eax
jmp 0x405753
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x48], 0
jbe 0x40577e
cmp dword [ebp + 0x18], 0
jbe 0x40577e
push 0
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x6c]
push dword [ebp + 0x14]
mov eax, dword [ebp - 0x10]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x40577e
or dword [ebp - 0xc], 0xffffffff
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x6c]
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x40580b
cmp dword [ebp + 0x1c], 0
je 0x40580b
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp + 0x20]
jae 0x4057a3
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x70], eax
jmp 0x4057a9
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 4], 0
je 0x4057d0
push 1
push 0
push dword [ebp - 4]
mov eax, dword [ebp - 0x10]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
cmp eax, 0xffffffff
je 0x4057cc
and dword [ebp - 4], 0
jmp 0x4057d0
or dword [ebp - 0xc], 0xffffffff
cmp dword [ebp - 0x44], 0
jbe 0x4057fb
cmp dword [ebp + 0x20], 0
jbe 0x4057fb
push 0
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x70]
push dword [ebp + 0x1c]
mov eax, dword [ebp - 0x10]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x4057fb
or dword [ebp - 0xc], 0xffffffff
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
jmp 0x405814
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x44]
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x4058a9
cmp dword [ebp + 0x24], 0
je 0x4058a9
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp + 0x28]
jae 0x405841
mov eax, dword [ebp + 0x24]
add eax, dword [ebp - 0x40]
and byte [eax], 0
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x74], eax
jmp 0x405847
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x74], eax
cmp dword [ebp - 4], 0
je 0x40586e
push 1
push 0
push dword [ebp - 4]
mov eax, dword [ebp - 0x10]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
cmp eax, 0xffffffff
je 0x40586a
and dword [ebp - 4], 0
jmp 0x40586e
or dword [ebp - 0xc], 0xffffffff
cmp dword [ebp - 0x40], 0
jbe 0x405899
cmp dword [ebp + 0x28], 0
jbe 0x405899
push 0
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x74]
push dword [ebp + 0x24]
mov eax, dword [ebp - 0x10]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x405899
or dword [ebp - 0xc], 0xffffffff
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 4]
add ecx, eax
mov dword [ebp - 4], ecx
jmp 0x4058b2
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x40]
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x4058c9
cmp dword [ebp + 0xc], 0
je 0x4058c9
push 0x14
pop ecx
lea esi, [ebp - 0x68]
mov edi, dword [ebp + 0xc]
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0xc], 0
jne 0x4058dd
cmp dword [ebp + 0x10], 0
je 0x4058dd
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc]
pop edi
pop esi
leave
ret