Function at 0x4b6d70
Capabilities:
Read file on windows

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
push 8
mov ebx, ecx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov ebp, dword [esp + 0x20]
xor ecx, ecx
mov dword [ebx + 0x3c], eax
add esp, 4
test ebp, ebp
mov esi, ebp
mov dword [eax], 0
mov eax, dword [ebx + 0x3c]
mov dword [eax + 4], 1
mov eax, dword [esp + 0x18]
cmovne ecx, eax
mov byte [ebx + 0x4c], 0
mov dword [ebx + 0x54], 0x3f800000
mov byte [ebx + 0x58], 1
mov dword [esp + 0x10], ecx
mov dword [ebx + 0xc], 0xffffffff
mov dword [ebx + 0x10], 0xfffffffd
mov byte [ebx + 0x40], 0
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x44], 0
jne 0x4b6e76
push 0x56c798
push eax
call fcn.004d41c0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4b6fe8
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
push 2
push 0
push ebp
call esi
push ebp
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
push 0
push 0
push ebp
mov edi, eax
call esi
lea ecx, [edi + 1]
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 0x20
mov esi, eax
push ebp
test esi, esi
je 0x4b6e65
push edi
push 1
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
cmp eax, edi
jne 0x4b6e4c
push ebp
mov byte [esi + edi], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov ebp, dword [esp + 0x20]
add esp, 4
jmp 0x4b6e7a
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push ebp
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4b6e83
cmp edi, 0xa
jbe 0x4b6ed0
cmp byte [esi], 0x1f
jne 0x4b6ed0
cmp byte [esi + 1], 0x8b
jne 0x4b6ed0
lea eax, [esp + 0x1c]
mov dword [esp + 0x18], 0
push eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x20], 0
push eax
push edi
push esi
call fcn.004c30c0
add esp, 0x10
test eax, eax
jne 0x4b6ef5
test ebp, ebp
jne 0x4b6ec4
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov byte [esi + edi], 0
cmp ebp, esi
jne 0x4b6f1a
test edi, edi
je 0x4b6f0f
lea eax, [edi + 1]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
push edi
mov esi, eax
push ebp
push esi
call fcn.00517140
add esp, 0x10
mov byte [esi + edi], 0
jmp 0x4b6f1a
cmp ebp, esi
je 0x4b6fe8
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc
push ebp
call fcn.004d40f0
add esp, 4
mov esi, eax
push ecx
mov dword [esp], 0x42c00000
push 0x56e880
push esi
call fcn.004c33c0
mov ecx, dword [ebx + 0x3c]
add esp, 0xc
mov dword [ecx], eax
cmp ebp, esi
je 0x4b6f43
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov edx, dword [ebx + 0x3c]
xorps xmm1, xmm1
mov ecx, dword [edx]
movss xmm2, dword [ecx]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jnp 0x4b6fa5
movss xmm0, dword [ecx + 4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4b6fa5
cvtps2pd xmm0, xmm2
addsd xmm0, qword [0x55cb60]
cvttsd2si eax, xmm0
mov dword [ebx + 4], eax
mov dword [ebx + 0x18], eax
mov eax, dword [edx]
movss xmm0, dword [eax + 4]
cvtps2pd xmm0, xmm0
mov dword [ebx + 0xc], 4
mov dword [ebx + 0x10], 0
addsd xmm0, qword [0x55cb60]
cvttsd2si eax, xmm0
mov dword [ebx + 8], eax
mov dword [ebx + 0x1c], eax
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4b6fe8
cmp dword [ebx + 4], 0
je 0x4b6fe8
cmp dword [ebx + 8], 0
je 0x4b6fe8
push 0x38
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test eax, eax
je 0x4b6fdf
push ebx
push esi
mov ecx, eax
call fcn.004c3a80
mov ecx, eax
call fcn.004c3b60
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc
xor eax, eax
mov ecx, eax
call fcn.004c3b60
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0xc