Function at 0x40415b
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov esi, str.file
lea edi, [ebp - 0x10]
xor eax, eax
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0xb]
mov ebx, ecx
stosw word es:[edi], ax
stosb byte es:[edi], al
xor edi, edi
cmp dword [ebp + 8], edi
mov dword [ebp - 4], edi
jne 0x4043d2
lea eax, [ebp - 4]
push edi
push eax
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp - 0x18]
push 8
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040c840
pop ecx
pop ecx
test eax, eax
push edi
je 0x4041cb
push 0x41a09c
push 0x41a428
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x404400
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0xa]
push 2
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
movzx eax, word [ebp + 0xa]
push eax
lea eax, [ebx + 0x120]
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebx + 0x23c]
push 4
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebx + 0x228]
push 4
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebx + 0x22c]
push 4
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebx + 0x224]
push 4
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebx + 0x230]
push 4
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebx + 0x14]
push 8
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebx + 0xc]
push 8
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebx + 4]
push 8
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea ecx, [ebp - 4]
push edi
lea eax, [ebx + 0x234]
push ecx
push 4
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
lea ecx, [ebp - 4]
push edi
lea eax, [ebx + 0x238]
push ecx
push 4
push eax
mov eax, dword [ebx]
push dword [eax + 0x20c]
call esi
cmp dword [ebx + 0x234], edi
mov dword [ebp - 8], edi
jbe 0x404348
push 0x14
call fcn.0040c383
cmp eax, edi
pop ecx
je 0x4042ff
mov dword [eax + 4], edi
mov esi, eax
jmp 0x404301
xor esi, esi
mov eax, dword [ebx]
push edi
mov ecx, esi
mov dword [esi], eax
call fcn.00404404
test eax, eax
je 0x404366
cmp dword [ebx + 0x248], edi
lea eax, [ebx + 0x248]
jne 0x404329
mov dword [eax], esi
mov dword [ebx + 0x24c], esi
jmp 0x40433a
mov ecx, dword [ebx + 0x24c]
lea eax, [ebx + 0x24c]
mov dword [ecx + 4], esi
mov dword [eax], esi
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x234]
jb 0x4042ec
cmp dword [ebx + 0x238], edi
mov dword [ebp - 8], edi
jbe 0x4043d2
push 0x14
call fcn.0040c383
cmp eax, edi
pop ecx
je 0x404389
mov dword [eax + 4], edi
mov esi, eax
jmp 0x40438b
push edi
push 0x41a09c
push 0x41a404
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp esi, edi
je 0x404400
mov ecx, esi
call fcn.0040412b
jmp 0x4043f9
xor esi, esi
mov eax, dword [ebx]
push edi
mov ecx, esi
mov dword [esi], eax
call fcn.004044a4
test eax, eax
je 0x4043dc
cmp dword [ebx + 0x240], edi
lea eax, [ebx + 0x240]
jne 0x4043b3
mov dword [eax], esi
mov dword [ebx + 0x244], esi
jmp 0x4043c4
mov ecx, dword [ebx + 0x244]
lea eax, [ebx + 0x244]
mov dword [ecx + 4], esi
mov dword [eax], esi
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ebx + 0x238]
jb 0x404353
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 4
push edi
push 0x41a09c
push 0x41a3e0
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp esi, edi
je 0x404400
mov ecx, esi
call fcn.00404143
push esi
call fcn.0040bd00
pop ecx
xor eax, eax
jmp 0x4043d5