Function at 0x404f76
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 0x4051ed
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.0040b1d0
pop ecx
pop ecx
test eax, eax
push edi
je 0x404fe6
push 0x41709c
push 0x4178e4
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40521b
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 0x405163
push 0x14
call fcn.0040ae6d
cmp eax, edi
pop ecx
je 0x40511a
mov dword [eax + 4], edi
mov esi, eax
jmp 0x40511c
xor esi, esi
mov eax, dword [ebx]
push edi
mov ecx, esi
mov dword [esi], eax
call fcn.0040521f
test eax, eax
je 0x405181
cmp dword [ebx + 0x248], edi
lea eax, [ebx + 0x248]
jne 0x405144
mov dword [eax], esi
mov dword [ebx + 0x24c], esi
jmp 0x405155
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 0x405107
cmp dword [ebx + 0x238], edi
mov dword [ebp - 8], edi
jbe 0x4051ed
push 0x14
call fcn.0040ae6d
cmp eax, edi
pop ecx
je 0x4051a4
mov dword [eax + 4], edi
mov esi, eax
jmp 0x4051a6
push edi
push 0x41709c
push 0x4178c0
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp esi, edi
je 0x40521b
mov ecx, esi
call fcn.00404f46
jmp 0x405214
xor esi, esi
mov eax, dword [ebx]
push edi
mov ecx, esi
mov dword [esi], eax
call fcn.004052bf
test eax, eax
je 0x4051f7
cmp dword [ebx + 0x240], edi
lea eax, [ebx + 0x240]
jne 0x4051ce
mov dword [eax], esi
mov dword [ebx + 0x244], esi
jmp 0x4051df
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 0x40516e
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 4
push edi
push 0x41709c
push 0x41789c
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp esi, edi
je 0x40521b
mov ecx, esi
call fcn.00404f5e
push esi
call fcn.0040a868
pop ecx
xor eax, eax
jmp 0x4051f0