Function at 0x472150
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
push edi
push esi
lea eax, [ebp - 4]
mov esi, eax
xor eax, eax
mov edx, eax
mov byte [esi], dl
lea eax, [ebp - 8]
mov dword [eax], 0
lea eax, [ebp - 0x10]
mov dword [eax], 0
lea eax, [ebp - 0xc]
mov dword [eax], 0
lea eax, [ebp - 0x40]
mov esi, eax
xor eax, eax
mov edx, eax
push edx
fild dword [esp]
fstp qword [esi]
add esp, 4
lea eax, [ebp - 0x38]
push eax
mov eax, 0x4a9610
mov edx, eax
pop esi
push edx
push esi
call fcn.00472d50
xor eax, eax
mov edx, eax
push edx
lea eax, [ebp - 8]
mov edx, eax
push edx
mov eax, 1
push eax
lea eax, [ebp - 4]
mov edx, eax
push edx
lea eax, [ebp + 8]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, 0x4a9614
mov edx, eax
push edx
call fcn.00473000
lea ebx, [ebp - 4]
movzx esi, byte [ebx]
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
mov eax, edx
push eax
lea ebx, [ebp - 4]
movzx ebx, byte [ebx]
push ebx
call fcn.004723f0
mov esi, eax
pop eax
mov ebx, esi
mov edx, ebx
mov esi, eax
or edx, esi
mov eax, edx
test eax, eax
je 0x472213
lea eax, [ebp - 0x10]
mov dword [eax], 1
xor eax, eax
lea ebx, [ebp - 8]
mov esi, dword [ebx]
mov edi, eax
cmp esi, edi
sete dl
and edx, 0xff
mov eax, edx
lea ebx, [ebp - 0x10]
mov edx, dword [ebx]
mov esi, eax
or edx, esi
mov eax, edx
cmp eax, 0
je 0x4721a4
lea eax, [ebp - 0x10]
cmp dword [eax], 0
je 0x472395
xor eax, eax
lea ebx, [ebp - 8]
mov esi, dword [ebx]
mov edi, eax
cmp esi, edi
setne dl
and edx, 0xff
mov eax, edx
push eax
mov ebx, 0x4a9614
mov edx, ebx
push edx
call fcn.00473000
mov esi, eax
pop eax
mov ebx, esi
lea ecx, [ebp - 4]
movzx esi, byte [ecx]
mov edi, ebx
cmp esi, edi
sete dl
and edx, 0xff
mov ebx, edx
push eax
push ebx
mov ecx, 0x4a9618
mov edx, ecx
push edx
call fcn.00473000
mov esi, eax
pop ebx
pop eax
mov ecx, esi
push eax
lea eax, [ebp - 4]
xor eax, dword [esp]
xor dword [esp], eax
xor eax, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esi]
mov edi, ecx
cmp esi, edi
sete dl
and edx, 0xff
add esp, 4
mov ecx, edx
push eax
push ebx
push ecx
push eax
lea eax, [ebp - 4]
xor eax, dword [esp]
xor dword [esp], eax
xor eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [edx]
add esp, 4
push edx
call fcn.004723f0
mov esi, eax
pop ecx
pop ebx
pop eax
push esi
mov edx, dword [esp]
mov esi, ecx
or edx, esi
add esp, 4
mov ecx, edx
mov edx, ecx
mov esi, ebx
or edx, esi
mov ebx, edx
mov edx, ebx
mov esi, eax
and edx, esi
mov eax, edx
cmp eax, 0
je 0x472380
lea eax, [ebp - 0x38]
mov edx, eax
lea eax, [ebp - 0xc]
mov esi, dword [eax]
lea eax, [edx + esi]
push eax
lea eax, [ebp - 4]
mov edx, eax
pop esi
push eax
mov al, byte [edx]
mov byte [esi], al
pop eax
xor eax, eax
mov edx, eax
push edx
lea eax, [ebp - 8]
mov edx, eax
push edx
mov eax, 1
push eax
lea eax, [ebp - 4]
mov edx, eax
push edx
lea eax, [ebp + 8]
push dword [eax]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
lea eax, [ebp - 0xc]
mov esi, eax
mov eax, 1
lea ebx, [ebp - 0xc]
mov ebx, dword [ebx]
add eax, ebx
mov dword [esi], eax
mov eax, 0x27
lea ebx, [ebp - 0xc]
cmp dword [ebx], eax
setg dl
movzx eax, dl
test eax, eax
je 0x47237b
lea eax, [ebp - 8]
mov dword [eax], 0
jmp 0x472249
lea eax, [ebp - 0x38]
mov edx, eax
lea eax, [ebp - 0xc]
mov esi, dword [eax]
lea eax, [edx + esi]
mov esi, eax
xor eax, eax
mov edx, eax
mov byte [esi], dl
lea eax, [ebp - 0x10]
cmp dword [eax], 0
je 0x4723c3
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x38]
mov edx, eax
push edx
call fcn.00470c50
mov ebx, edx
mov edx, eax
mov edi, ebx
pop esi
push edi
push edx
fld qword [esp]
fstp qword [esi]
add esp, 8
jmp 0x4723d1
mov eax, dword [ebp + 0xc]
push eax
mov eax, 1
mov edx, eax
pop esi
mov dword [esi], edx
lea eax, [ebp - 0x40]
mov edi, dword [eax]
mov edx, dword [eax + 4]
mov eax, edi
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 8