Function at 0x4113a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
test edi, edi
jne 0x4113bc
pop edi
lea eax, [ebx - 0x66]
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0xc]
mov ecx, dword [edi]
push 0
push 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x4113d9
or ebx, eax
jmp 0x4113fc
mov eax, dword [edi]
lea edx, [ebp - 8]
push edx
push eax
call fcn.00411150
test eax, eax
je 0x4113ee
or ebx, 0xffffffff
jmp 0x4113fc
cmp dword [ebp - 8], 0x2014b50
je 0x4113fc
mov ebx, 0xffffff99
mov edx, dword [edi]
lea ecx, [ebp - 0x58]
push ecx
push edx
call fcn.004110c0
test eax, eax
je 0x41140f
or ebx, 0xffffffff
mov ecx, dword [edi]
lea eax, [ebp - 0x54]
push eax
push ecx
call fcn.004110c0
test eax, eax
je 0x411422
or ebx, 0xffffffff
mov eax, dword [edi]
lea edx, [ebp - 0x50]
push edx
push eax
call fcn.004110c0
test eax, eax
je 0x411435
or ebx, 0xffffffff
mov edx, dword [edi]
lea ecx, [ebp - 0x4c]
push ecx
push edx
call fcn.004110c0
test eax, eax
je 0x411448
or ebx, 0xffffffff
mov ecx, dword [edi]
lea eax, [ebp - 0x44]
push eax
push ecx
call fcn.00411150
test eax, eax
je 0x41145b
or ebx, 0xffffffff
mov eax, dword [edi]
lea edx, [ebp - 0x48]
push edx
push eax
call fcn.00411150
test eax, eax
je 0x41146e
or ebx, 0xffffffff
mov edx, dword [edi]
lea ecx, [ebp - 0x40]
push ecx
push edx
call fcn.00411150
test eax, eax
je 0x411481
or ebx, 0xffffffff
mov ecx, dword [edi]
lea eax, [ebp - 0x3c]
push eax
push ecx
call fcn.00411150
test eax, eax
je 0x411494
or ebx, 0xffffffff
mov eax, dword [edi]
lea edx, [ebp - 0x38]
push edx
push eax
call fcn.004110c0
test eax, eax
je 0x4114a7
or ebx, 0xffffffff
mov edx, dword [edi]
lea ecx, [ebp - 0x34]
push ecx
push edx
call fcn.004110c0
test eax, eax
je 0x4114ba
or ebx, 0xffffffff
mov ecx, dword [edi]
lea eax, [ebp - 0x30]
push eax
push ecx
call fcn.004110c0
test eax, eax
je 0x4114cd
or ebx, 0xffffffff
mov eax, dword [edi]
lea edx, [ebp - 0x2c]
push edx
push eax
call fcn.004110c0
test eax, eax
je 0x4114e0
or ebx, 0xffffffff
mov edx, dword [edi]
lea ecx, [ebp - 0x28]
push ecx
push edx
call fcn.004110c0
test eax, eax
je 0x4114f3
or ebx, 0xffffffff
mov ecx, dword [edi]
lea eax, [ebp - 0x24]
push eax
push ecx
call fcn.00411150
test eax, eax
je 0x411506
or ebx, 0xffffffff
mov eax, dword [edi]
lea edx, [ebp - 8]
push edx
push eax
call fcn.00411150
test eax, eax
je 0x411519
or ebx, 0xffffffff
push esi
mov esi, dword [ebp - 0x38]
test ebx, ebx
jne 0x4115d1
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x411568
mov ecx, dword [ebp + 0x18]
cmp esi, ecx
jae 0x41153a
mov byte [esi + eax], bl
mov edi, esi
jmp 0x41153c
mov edi, ecx
test esi, esi
jbe 0x41155f
test ecx, ecx
jbe 0x41155f
mov edx, dword [ebp + 8]
push 0
lea ecx, [ebp - 4]
push ecx
push edi
push eax
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41155f
or ebx, 0xffffffff
sub esi, edi
mov edi, dword [ebp + 8]
test ebx, ebx
jne 0x4115d1
cmp dword [ebp + 0x1c], 0
je 0x4115d1
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 0x20]
mov dword [ebp + 8], eax
cmp eax, ecx
jb 0x41157e
mov dword [ebp + 8], ecx
test esi, esi
je 0x41159f
mov ecx, dword [edi]
push 1
push 0
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x34]
je 0x41159c
xor esi, esi
jmp 0x41159f
or ebx, 0xffffffff
test eax, eax
jbe 0x4115ca
cmp dword [ebp + 0x20], 0
jbe 0x4115ca
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x1c]
push 0
lea edx, [ebp - 4]
push edx
mov edx, dword [edi]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov eax, dword [ebp - 0x34]
jne 0x4115ca
or ebx, 0xffffffff
sub eax, dword [ebp + 8]
add esi, eax
jmp 0x4115d4
add esi, dword [ebp - 0x34]
test ebx, ebx
jne 0x411669
mov ecx, dword [ebp + 0x24]
test ecx, ecx
je 0x41164c
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp + 0x28]
cmp eax, edx
jae 0x4115f5
mov byte [eax + ecx], bl
mov dword [ebp + 8], eax
jmp 0x4115f8
mov dword [ebp + 8], edx
test esi, esi
je 0x411615
mov eax, dword [edi]
push 1
push 0
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x30]
jne 0x411615
or ebx, 0xffffffff
test eax, eax
jbe 0x411648
cmp dword [ebp + 0x28], 0
jbe 0x411648
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x24]
push 0
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [edi]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x411648
pop esi
or ebx, 0xffffffff
pop edi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 0x24
test ebx, ebx
jne 0x411669
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x41165d
mov ecx, 0x14
lea esi, [ebp - 0x58]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x411669
mov edx, dword [ebp - 8]
mov dword [eax], edx
pop esi
pop edi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 0x24