Function at 0x40c0a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x458
push ebx
push edi
push esi
lea eax, [ebp - 4]
push eax
mov eax, 0
mov edx, eax
pop esi
mov dword [esi], edx
lea eax, [ebp - 8]
push eax
mov eax, 0
mov edx, eax
pop esi
mov dword [esi], edx
lea eax, [ebp - 0xc]
push eax
mov eax, 0
mov edx, eax
pop esi
mov dword [esi], edx
lea eax, [ebp - 0x410]
push eax
mov eax, 0
mov edx, eax
pop esi
mov dword [esi], edx
mov eax, 0
lea ebx, [ebp + 8]
mov esi, dword [ebx]
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x40c116
mov eax, 0x80070057
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0xc]
push eax
mov eax, 0
mov edx, eax
pop esi
mov dword [esi], edx
lea eax, [ebp - 0x414]
mov dword [eax], 0
lea eax, [ebp - 0x414]
mov ebx, 0x100
cmp dword [eax], ebx
jg 0x40c2bd
lea eax, [ebp - 0x40c]
mov edx, eax
lea eax, [ebp - 0x414]
mov esi, dword [eax]
lea eax, [edx + esi*4]
push eax
mov eax, 7
mov ebx, 0xff
mov ecx, 7
push 5
push eax
lea eax, [ebp - 0x414]
xor eax, dword [esp]
xor dword [esp], eax
xor eax, dword [esp]
mov edx, dword [esp]
mov edx, dword [edx]
mov esi, dword [esp + 4]
xchg esi, ecx
sar edx, cl
xchg esi, ecx
add esp, 8
push edx
mov edx, dword [esp]
mov esi, ecx
and edx, esi
add esp, 4
mov ecx, edx
mov edx, ecx
mov esi, ebx
imul edx, esi
mov ebx, edx
mov esi, eax
mov edi, ebx
mov eax, edi
cdq
idiv esi
mov edx, eax
pop esi
mov byte [esi], dl
lea eax, [ebp - 0x40c]
mov edx, eax
lea eax, [ebp - 0x414]
mov esi, dword [eax]
lea eax, [edx + esi*4]
add eax, 1
push eax
mov eax, 7
mov ebx, 0xff
mov ecx, 7
push 2
push eax
lea eax, [ebp - 0x414]
xor eax, dword [esp]
xor dword [esp], eax
xor eax, dword [esp]
mov edx, dword [esp]
mov edx, dword [edx]
mov esi, dword [esp + 4]
xchg esi, ecx
sar edx, cl
xchg esi, ecx
add esp, 8
push edx
mov edx, dword [esp]
mov esi, ecx
and edx, esi
add esp, 4
mov ecx, edx
mov edx, ecx
mov esi, ebx
imul edx, esi
mov ebx, edx
mov esi, eax
mov edi, ebx
mov eax, edi
cdq
idiv esi
mov edx, eax
pop esi
mov byte [esi], dl
lea eax, [ebp - 0x40c]
mov edx, eax
lea eax, [ebp - 0x414]
mov esi, dword [eax]
lea eax, [edx + esi*4]
add eax, 2
push eax
mov eax, 3
mov ebx, 0xff
mov ecx, 3
push eax
lea eax, [ebp - 0x414]
xor eax, dword [esp]
xor dword [esp], eax
xor eax, dword [esp]
mov edx, dword [esp]
mov edx, dword [edx]
mov esi, ecx
and edx, esi
add esp, 4
mov ecx, edx
mov edx, ecx
mov esi, ebx
imul edx, esi
mov ebx, edx
mov esi, eax
mov edi, ebx
mov eax, edi
cdq
idiv esi
mov edx, eax
pop esi
mov byte [esi], dl
lea eax, [ebp - 0x40c]
mov edx, eax
lea eax, [ebp - 0x414]
mov esi, dword [eax]
lea eax, [edx + esi*4]
add eax, 3
mov esi, eax
xor eax, eax
mov edx, eax
mov byte [esi], dl
lea eax, [ebp - 0x414]
inc dword [eax]
jmp 0x40c130
xor eax, eax
mov ebx, dword [ebp + 0x10]
mov edx, ebx
push eax
push edx
call fcn.004194b7
mov edx, eax
pop eax
mov ebx, edx
cmp ebx, eax
sete dl
movzx eax, dl
test eax, eax
je 0x40c325
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
mov edi, eax
push edi
mov eax, 0
mov edx, eax
push edx
mov eax, dword [ebp + 0xc]
mov edx, eax
mov eax, edx
mov edx, eax
push edx
lea eax, [ebp - 0x40c]
mov edx, eax
push edx
mov eax, 4
push eax
lea edi, [esp + 0x10]
push dword [edi]
mov edi, dword [esp]
mov edi, dword [edi]
call dword [edi + 0x14]
pop edi
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebp - 0x410]
push eax
mov eax, 0
push eax
xor eax, eax
push eax
mov eax, 3
push eax
mov eax, 0
mov edx, eax
push edx
xor eax, eax
push eax
mov eax, 0x80000000
push eax
mov eax, dword [ebp + 0x10]
mov edx, eax
push edx
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov edx, eax
pop esi
mov dword [esi], edx
mov eax, 1
xor edx, edx
sub edx, eax
mov eax, edx
lea ebx, [ebp - 0x410]
mov esi, dword [ebx]
mov edi, eax
cmp esi, edi
setne dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x40c6b1
mov eax, 0
mov edx, eax
push edx
lea eax, [ebp - 0x454]
mov edx, eax
push edx
mov eax, 0xe
push eax
lea eax, [ebp - 0x428]
mov edx, eax
push edx
lea eax, [ebp - 0x410]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, 0xe
lea ebx, [ebp - 0x454]
mov esi, dword [ebx]
mov edi, eax
cmp esi, edi
setne dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x40c3f5
lea eax, [ebp - 0x410]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, 0x80004005
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0
mov edx, eax
push edx
lea eax, [ebp - 0x454]
mov edx, eax
push edx
mov eax, 0x28
push eax
lea eax, [ebp - 0x450]
mov edx, eax
push edx
lea eax, [ebp - 0x410]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, 0x28
lea ebx, [ebp - 0x454]
mov esi, dword [ebx]
mov edi, eax
cmp esi, edi
setne dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x40c463
lea eax, [ebp - 0x410]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, 0x80004005
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0
mov edx, eax
push edx
lea eax, [ebp - 0x454]
mov edx, eax
push edx
mov eax, 0x400
push eax
lea eax, [ebp - 0x40c]
mov edx, eax
push edx
lea eax, [ebp - 0x410]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, 0x400
lea ebx, [ebp - 0x454]
mov esi, dword [ebx]
mov edi, eax
cmp esi, edi
setne dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x40c4d1
lea eax, [ebp - 0x410]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, 0x80004005
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebp - 0x410]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov ebx, 0x28
lea ecx, [ebp - 0x450]
mov esi, dword [ecx]
mov edi, ebx
cmp esi, edi
setne dl
and edx, 0xff
mov ebx, edx
test ebx, ebx
je 0x40c514
lea eax, [ebp - 0x418]
mov dword [eax], 0
jmp 0x40c600
mov eax, 8
lea ebx, [ebp - 0x450]
add ebx, 0xe
movzx esi, word [ebx]
mov edi, eax
cmp esi, edi
seta dl
and edx, 0xff
mov eax, edx
test eax, eax
je 0x40c550
lea eax, [ebp - 0x418]
mov dword [eax], 0
jmp 0x40c600
xor eax, eax
lea ebx, [ebp - 0x450]
add ebx, 0x20
cmp dword [ebx], eax
sete dl
movzx eax, dl
test eax, eax
je 0x40c5e7
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x450]
add eax, 0xe
movzx edx, word [eax]
push edx
push edx
fild dword [esp]
fstp qword [esp]
mov eax, 2
mov edx, eax
push edx
push edx
fild dword [esp]
fstp qword [esp]
call fcn.0042dcf0
mov ebx, edx
mov ecx, 1
push ebx
push eax
fld qword [esp]
add esp, 8
mov edx, ecx
push edx
fild dword [esp]
fmul st(1)
add esp, 4
sub esp, 8
fstp qword [esp]
pop edx
pop edi
ffreep st(0)
mov eax, edx
mov ebx, edi
mov edx, eax
mov edi, ebx
pop esi
push edi
push edx
fld qword [esp]
fistp dword [esi]
add esp, 8
jmp 0x40c600
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x450]
add eax, 0x20
mov edx, eax
pop esi
mov edi, dword [edx]
mov dword [esi], edi
lea eax, [ebp - 0x414]
mov dword [eax], 0
lea eax, [ebp - 0x414]
lea ebx, [ebp - 0x418]
mov edx, eax
mov esi, dword [ebx]
cmp dword [edx], esi
jg 0x40c6b1
lea eax, [ebp - 0x40c]
mov edx, eax
lea eax, [ebp - 0x414]
mov esi, dword [eax]
lea eax, [edx + esi*4]
mov edx, eax
lea eax, [ebp - 0x458]
mov esi, eax
push eax
mov al, byte [edx]
mov byte [esi], al
pop eax
lea eax, [ebp - 0x40c]
mov edx, eax
lea eax, [ebp - 0x414]
mov esi, dword [eax]
lea eax, [edx + esi*4]
push eax
lea eax, [ebp - 0x40c]
mov edx, eax
lea eax, [ebp - 0x414]
mov esi, dword [eax]
lea eax, [edx + esi*4]
add eax, 2
mov edx, eax
pop esi
push eax
mov al, byte [edx]
mov byte [esi], al
pop eax
lea eax, [ebp - 0x40c]
mov edx, eax
lea eax, [ebp - 0x414]
mov esi, dword [eax]
lea eax, [edx + esi*4]
add eax, 2
push eax
lea eax, [ebp - 0x458]
mov edx, eax
pop esi
push eax
mov al, byte [edx]
mov byte [esi], al
pop eax
lea eax, [ebp - 0x414]
inc dword [eax]
jmp 0x40c60c
lea eax, [ebp + 8]
mov edx, eax
mov edx, dword [edx]
mov eax, edx
mov edi, eax
push edi
mov eax, 0
mov edx, eax
push edx
mov eax, dword [ebp + 0xc]
push dword [eax]
lea eax, [ebp - 0x40c]
mov edx, eax
push edx
mov eax, 4
push eax
lea edi, [esp + 0x10]
push dword [edi]
mov edi, dword [esp]
mov edi, dword [edi]
call dword [edi + 0x14]
pop edi
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc