Function at 0x40b4b0
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0xc
push ebx
push ebp
mov ebp, dword [esp + 0x18]
mov ebx, ecx
shl ebp, 5
mov eax, dword [ebx + 8]
push esi
push edi
cmp dword [eax + ebp], 0
jne 0x40b751
mov esi, dword [esp + 0x24]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.005756f6
mov ecx, dword [ebx + 8]
lea edi, [esi + 0x40]
mov dword [esp + 0x24], edi
mov dword [ecx + ebp + 0x14], eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.005756f6
mov edx, dword [ebx + 8]
mov edi, esi
or ecx, 0xffffffff
add esp, 8
mov dword [edx + ebp + 0x10], eax
xor eax, eax
repne scasb al, byte es:[edi]
mov edx, dword [ebx + 8]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [edx + ebp + 0x14]
mov edx, dword [esp + 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov esi, dword [ebx + 8]
not ecx
sub edi, ecx
mov dword [esp + 0x28], esi
mov esi, edi
mov edi, dword [esp + 0x28]
mov eax, ecx
mov edi, dword [edi + ebp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebx + 0x118]
lea esi, [ebx + 0x351]
push ecx
push str._s_s
push esi
call fcn.005753d0
add esp, 0x10
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x40b5b2
push esi
push 9
mov ecx, 0x5aac10
call fcn.00404440
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xc
ret 8
mov edx, dword [ebx + 8]
push 0
push edi
mov dword [edx + ebp], edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [ebx + 8]
lea edx, [ebx + 0x55c]
push 0
push edx
mov dword [ecx + ebp + 0x1c], eax
lea eax, [esp + 0x18]
push 0xc
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [esp + 0x10]
push 0
push ecx
mov ecx, ebx
call fcn.0040b760
test al, al
jne 0x40b60a
push esi
push 0xa
mov ecx, 0x5aac10
call fcn.00404440
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xc
ret 8
mov edx, dword [esp + 0x20]
lea eax, [ebx + 0x21c]
push edx
push eax
push str._s_s
push esi
call fcn.005753d0
push 0x5980c4
push esi
call fcn.005765c0
mov edx, eax
mov edi, str._F.bin
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
mov dword [esp + 0x20], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 8]
lea esi, [ebx + 0x351]
lea edx, [ecx + ebp + 8]
mov ecx, ebx
push edx
push esi
call fcn.0040b820
test eax, eax
jne 0x40b68a
push esi
push 9
mov ecx, 0x5aac10
call fcn.00404440
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xc
ret 8
mov ecx, dword [ebx + 8]
lea eax, [esp + 0x10]
push eax
mov edx, dword [ecx + ebp + 8]
mov ecx, ebx
push edx
call fcn.0040b760
test al, al
jne 0x40b6bb
push esi
push 0xa
mov ecx, 0x5aac10
call fcn.00404440
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xc
ret 8
mov edi, str._D.bin
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 8]
lea esi, [ebx + 0x351]
lea edx, [ecx + ebp + 0xc]
mov ecx, ebx
push edx
push esi
call fcn.0040b820
test eax, eax
jne 0x40b712
push esi
push 9
mov ecx, 0x5aac10
call fcn.00404440
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xc
ret 8
mov ecx, dword [ebx + 8]
lea eax, [esp + 0x10]
push eax
mov edx, dword [ecx + ebp + 0xc]
mov ecx, ebx
push edx
call fcn.0040b760
test al, al
jne 0x40b743
push esi
push 0xa
mov ecx, 0x5aac10
call fcn.00404440
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xc
ret 8
mov eax, dword [ebx + 8]
add eax, ebp
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [eax + 0x18], edx
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0xc
ret 8