Function at 0x4075d0
Capabilities:
Get file size
Write file on windows

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebp, dword [esp + 0x24]
push esi
test ebp, ebp
push edi
mov esi, ecx
je 0x4078f8
mov edi, dword [esp + 0x30]
test edi, edi
jle 0x4078f8
call fcn.00407590
test eax, eax
jne 0x407609
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x18
ret 0x10
mov eax, dword [esp + 0x34]
test eax, eax
je 0x407617
mov dword [eax], 0xffffffff
mov ebx, dword [esp + 0x38]
mov ecx, esi
push ebx
push eax
push edi
push ebp
call fcn.00407980
test eax, eax
jne 0x407634
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x10
mov eax, dword [esi + 0x28]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
jne 0x407658
pop edi
pop esi
pop ebp
mov eax, 0xfffffff7
pop ebx
add esp, 0x18
ret 0x10
mov ecx, dword [esi + 0x28]
push 0
push 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x407678
pop edi
pop esi
pop ebp
or eax, eax
pop ebx
add esp, 0x18
ret 0x10
push edi
call fcn.004072f0
mov ecx, dword [esi + 0x28]
add esp, 4
lea edx, [esp + 0x2c]
mov dword [esp + 0x18], eax
push 0
push edx
lea eax, [esp + 0x20]
push 0x10
mov dword [esp + 0x30], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
push eax
push ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 0
call ebx
test eax, eax
je 0x40771d
cmp dword [esp + 0x2c], 0x10
jne 0x40771d
mov eax, dword [esi + 0x28]
lea edx, [esp + 0x2c]
push 0
push edx
push edi
push ebp
push eax
mov dword [esp + 0x40], 0
call ebx
test eax, eax
je 0x40771d
cmp dword [esp + 0x2c], edi
jne 0x40771d
lea eax, [edi + 0xf]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
shl eax, 4
mov ebp, eax
sub ebp, edi
je 0x40772c
mov edx, dword [esi + 0x28]
lea ecx, [esp + 0x2c]
push 0
push ecx
push ebp
push 0x43729c
push edx
mov dword [esp + 0x40], 0
call ebx
test eax, eax
je 0x40771d
cmp dword [esp + 0x2c], ebp
je 0x40772c
pop edi
pop esi
pop ebp
mov eax, 0xfffffff9
pop ebx
add esp, 0x18
ret 0x10
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
test edx, edx
mov dword [esp + 0x14], ecx
je 0x407759
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x40774f
xor eax, eax
jmp 0x407757
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 3
mov dword [edx], eax
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub edx, eax
mov edi, eax
sar edx, 3
cmp edx, 1
jae 0x407832
mov edx, dword [esi + 4]
test edx, edx
je 0x407782
mov ecx, eax
sub ecx, edx
sar ecx, 3
cmp ecx, 1
ja 0x407787
mov ecx, 1
test edx, edx
jne 0x40778f
xor eax, eax
jmp 0x407794
sub eax, edx
sar eax, 3
add eax, ecx
test eax, eax
mov dword [esp + 0x30], eax
jge 0x4077a0
xor eax, eax
shl eax, 3
push eax
call fcn.0042829e
mov ebx, dword [esi + 4]
add esp, 4
cmp ebx, edi
mov dword [esp + 0x34], eax
mov ebp, eax
je 0x4077cd
push ebx
push ebp
call fcn.00408200
add ebx, 8
add esp, 8
add ebp, 8
cmp ebx, edi
jne 0x4077b9
lea ecx, [esp + 0x10]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.00408170
mov edx, dword [esi + 8]
add ebp, 8
push ebp
push edx
push edi
mov ecx, esi
call fcn.00408130
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
mov ecx, esi
call fcn.00408110
mov edx, dword [esi + 4]
push edx
call fcn.00427e82
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add esp, 4
lea ecx, [edi + eax*8]
mov dword [esi + 0xc], ecx
mov ecx, esi
call fcn.004080a0
lea edx, [edi + eax*8 + 8]
mov dword [esi + 4], edi
mov dword [esi + 8], edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret 0x10
mov ecx, eax
sub ecx, edi
sar ecx, 3
cmp ecx, 1
jae 0x40789a
lea edx, [edi + 8]
mov ecx, esi
push edx
push eax
push edi
call fcn.00408130
mov eax, dword [esi + 8]
lea ecx, [esp + 0x10]
mov edx, eax
push ecx
sub edx, edi
mov ecx, 1
sar edx, 3
sub ecx, edx
push ecx
push eax
mov ecx, esi
call fcn.00408170
mov eax, dword [esi + 8]
cmp edi, eax
je 0x4078e3
mov edx, dword [esp + 0x10]
mov dword [edi], edx
mov ecx, dword [esp + 0x14]
mov dword [edi + 4], ecx
add edi, 8
cmp edi, eax
jne 0x407871
mov eax, dword [esi + 8]
pop edi
add eax, 8
mov dword [esi + 8], eax
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret 0x10
push eax
push eax
add eax, 0xfffffff8
mov ecx, esi
push eax
call fcn.00408130
mov ecx, dword [esi + 8]
lea eax, [ecx - 8]
cmp edi, eax
je 0x4078c6
mov edx, dword [eax - 8]
sub eax, 8
sub ecx, 8
cmp eax, edi
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
jne 0x4078b1
lea ecx, [edi + 8]
mov eax, edi
cmp edi, ecx
je 0x4078e3
mov edx, dword [esp + 0x10]
mov dword [eax], edx
mov edx, dword [esp + 0x14]
mov dword [eax + 4], edx
add eax, 8
cmp eax, ecx
jne 0x4078cf
mov eax, dword [esi + 8]
pop edi
add eax, 8
mov dword [esi + 8], eax
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret 0x10
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x18
ret 0x10