Function at 0x4f0ba0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
push ebx
push esi
push edi
push 0
push 0x80
push 3
push 0
push 3
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [esp + 0x10], ebx
jne 0x4f0c34
push 0x1a
call fcn.00591b73
add esp, 4
test eax, eax
jne 0x4f0bff
call fcn.004a9cc5
xor eax, eax
mov esi, dword [ebp + 8]
mov dword [esi], eax
mov ecx, dword [eax + 0xe]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
fld dword [0x60d40c]
lea ecx, [eax + 0x15]
mov dword [eax], 0x609214
and ecx, 0xfffffffc
mov dword [eax + 0xe], ecx
mov dword [ecx], 0
fstp dword [eax + 9]
mov dword [eax + 4], 0x2b11
mov byte [eax + 8], 1
mov dword [eax], 0x609234
mov byte [eax + 0xd], 4
jmp 0x4f0be5
push 0
lea edx, [esp + 0x20]
push edx
push 4
lea eax, [esp + 0x30]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, str.fLaC
lea esi, [esp + 0x24]
mov ecx, 5
xor edx, edx
mov byte [esp + 0x28], 0
repe cmpsb byte [esi], byte es:[edi]
je 0x4f0d46
lea eax, [esp + 0x24]
push 0x5f35e8
push eax
call fcn.00591380
lea ecx, [esp + 0x2c]
add esp, 8
cmp eax, ecx
jne 0x4f0d16
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
lea ebx, [ebx]
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea edx, [esp + 0x18]
push edx
push 6
lea eax, [esp + 0x30]
push eax
push ebx
call esi
cmp dword [esp + 0x14], 6
jne 0x4f0d16
movzx eax, byte [esp + 0x26]
movzx ecx, byte [esp + 0x27]
movzx edx, byte [esp + 0x28]
shl eax, 7
add eax, ecx
movzx ecx, byte [esp + 0x29]
shl eax, 7
add eax, edx
shl eax, 7
push 1
add eax, ecx
cdq
push 0
push edx
push eax
push ebx
call edi
push 0
lea edx, [esp + 0x1c]
push edx
push 4
lea eax, [esp + 0x30]
push eax
push ebx
mov byte [esp + 0x3c], 0
call esi
cmp dword [esp + 0x18], 4
jne 0x4f0d16
lea ecx, [esp + 0x24]
push 0x5f35e8
push ecx
call fcn.00591380
lea edx, [esp + 0x2c]
add esp, 8
cmp eax, edx
je 0x4f0c90
mov edi, str.fLaC
lea esi, [esp + 0x24]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4f0d46
mov esi, dword [ebp + 8]
push 3
call fcn.0050a39e
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
lea ecx, [esp + 0x24]
push ecx
push 4
lea edx, [esp + 0x18]
push edx
push ebx
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0xc]
bswap eax
mov dword [esp + 0xc], eax
shr eax, 0x18
test al, 0x7f
je 0x4f0ddf
push 0x1a
call fcn.00591b73
add esp, 4
test eax, eax
jne 0x4f0daa
call fcn.004a9cc5
xor eax, eax
mov esi, dword [ebp + 8]
mov dword [esi], eax
mov eax, dword [eax + 0xe]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
fld dword [0x60d40c]
lea ecx, [eax + 0x15]
mov dword [eax], 0x609214
and ecx, 0xfffffffc
mov dword [eax + 0xe], ecx
mov dword [ecx], 0
fstp dword [eax + 9]
mov dword [eax + 4], 0x2b11
mov byte [eax + 8], 1
mov dword [eax], 0x609234
mov byte [eax + 0xd], 3
jmp 0x4f0d89
lea eax, [esp + 0x30]
call fcn.00451fe0
lea edi, [esp + 0x10]
lea eax, [esp + 0x30]
call fcn.004f1830
push 0x17a
call fcn.00591b73
add esp, 4
test eax, eax
jne 0x4f0e62
call fcn.004a9cc5
mov esi, dword [0x624464]
test esi, esi
jne 0x4f0e38
push 0x1a
call fcn.00591b73
add esp, 4
test eax, eax
jne 0x4f0e86
call fcn.004a9cc5
mov eax, dword [esi + 0xe]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dword [0x624464], esi
mov ecx, dword [ebp + 8]
mov dword [ecx], esi
mov esi, ecx
mov edx, dword [esi]
mov eax, dword [edx + 0xe]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp ebx, 0xffffffff
je 0x4f0e57
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
lea edi, [esp + 0x38]
mov esi, eax
call fcn.004f0f80
test eax, eax
mov ebx, dword [esp + 0x10]
je 0x4f0e0b
mov esi, dword [ebp + 8]
mov dword [esi], eax
jmp 0x4f0e3f
fld dword [0x60d40c]
lea ecx, [eax + 0x15]
mov dword [eax], 0x609214
and ecx, 0xfffffffc
mov dword [eax + 0xe], ecx
mov dword [ecx], 0
fstp dword [eax + 9]
mov dword [eax + 4], 0x2b11
mov byte [eax + 8], 1
mov dword [eax], 0x609234
mov byte [eax + 0xd], 1
mov esi, eax
jmp 0x4f0e28