Function at 0x441300
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x1004]
mov eax, 0x1004
call fcn.00435870
push 0xffffffffffffffff
push 0x4ae32f
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x4e8008]
xor eax, ebp
mov dword [ebp + 0x1000], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x18], esi
mov eax, dword [esi + 0x424]
lea ecx, [esi + 8]
mov ebx, dword [ebp + 0x100c]
test eax, eax
js 0x44135f
push eax
call fcn.00439a00
mov ecx, eax
jmp 0x441361
xor ecx, ecx
test ecx, ecx
jne 0x44136c
xor eax, eax
jmp 0x441749
mov eax, dword [0x4e8960]
and dword [ebp - 0x38], 0
mov dword [ebp - 0x10], eax
and dword [ebp - 4], 0
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
lea eax, [ebp - 0x34]
push eax
call fcn.0043acd5
mov byte [ebp - 4], 2
lea eax, [ebx + 4]
push dword [eax]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x10]
push 0x4bae90
push eax
call fcn.0040240b
add esp, 0xc
lea eax, [ebp - 0x10]
lea edi, [esi + 0x430]
push 0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push eax
call fcn.0040180b
mov byte [ebp - 4], 3
mov byte [ebp - 4], 2
mov ecx, edi
call fcn.00437bfa
xor eax, eax
push eax
push eax
push 3
push eax
push 3
push connect
push dword [ebx + 4]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x441453
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x14]
call fcn.004372a0
mov byte [ebp - 4], 4
lea ecx, [ebx + 0x14]
push eax
call fcn.00402d8e
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.004019df
push dword [ebx + 4]
lea eax, [ebp - 0x10]
push 0x4baef0
push eax
call fcn.0040240b
add esp, 0xc
lea eax, [ebp - 0x10]
push 0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.0040180b
mov byte [ebp - 4], 5
mov byte [ebp - 4], 2
mov ecx, edi
call fcn.00437bfa
jmp 0x441722
cmp dword [ebx + 0xc], 0
je 0x441700
push dword [ebx + 4]
lea eax, [ebp - 0x10]
push 0x4baf70
push eax
call fcn.0040240b
add esp, 0xc
lea eax, [ebp - 0x10]
push 0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push eax
call fcn.0040180b
mov byte [ebp - 4], 6
mov byte [ebp - 4], 2
mov ecx, edi
call fcn.00437bfa
lea eax, [ebp - 0x40]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x441507
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x14]
call fcn.004372a0
mov byte [ebp - 4], 7
lea ecx, [ebx + 0x14]
push eax
call fcn.00402d8e
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.004019df
push dword [ebx + 4]
lea eax, [ebp - 0x10]
push 0x4baf94
push eax
call fcn.0040240b
add esp, 0xc
lea eax, [ebp - 0x10]
push 0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.0040180b
mov byte [ebp - 4], 8
mov byte [ebp - 4], 2
mov ecx, edi
call fcn.00437bfa
push esi
jmp 0x44171c
push 0x4b91e8
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x20]
call fcn.00401f34
mov byte [ebp - 4], 9
mov edx, eax
push ebx
lea ecx, [ebp - 0x14]
call fcn.00405797
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x1c]
push eax
call fcn.00402d8e
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x14]
call fcn.004019df
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call fcn.004019df
push dword [ebp - 0x1c]
lea eax, [ebp - 0x10]
push dword [ebx + 4]
push 0x4bafd0
push eax
call fcn.0040240b
add esp, 0x10
lea eax, [ebp - 0x10]
push 0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push eax
call fcn.0040180b
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 2
mov ecx, edi
call fcn.00437bfa
xor eax, eax
push eax
push eax
push 2
push eax
push 1
push 0x40000000
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x441608
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x14]
call fcn.004372a0
mov byte [ebp - 4], 0xc
lea ecx, [ebx + 0x14]
push eax
call fcn.00402d8e
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call fcn.004019df
push dword [ebp - 0x1c]
lea eax, [ebp - 0x10]
push 0x4baff8
push eax
call fcn.0040240b
add esp, 0xc
lea eax, [ebp - 0x10]
push 0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.0040180b
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx + 0x430]
jmp 0x4414fc
mov ebx, dword [ebp - 0x18]
xorps xmm0, xmm0
add ebx, 0x430
movlpd qword [ebp - 0x2c], xmm0
mov ecx, ebx
call fcn.00437ae6
test al, al
jne 0x44170a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x18]
push 0
push eax
push 0x400
lea eax, [ebp]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4416e3
cmp dword [ebp - 0x18], 0
je 0x4416e3
and dword [ebp - 0x30], 0
lea eax, [ebp - 0x30]
push 0
push eax
push dword [ebp - 0x18]
lea eax, [ebp]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4416e3
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x18], eax
jne 0x4416e3
mov ecx, dword [ebp - 0x20]
add ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
adc eax, 0
mov edx, eax
mov dword [ebp - 0x14], eax
call fcn.004a7d30
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x4d73f4]
movss dword [ebp - 0x28], xmm0
call fcn.004a7d30
movss xmm1, dword [ebp - 0x28]
cvtsd2ss xmm0, xmm0
push ecx
mov ecx, ebx
divss xmm1, xmm0
cvttss2si eax, xmm1
push eax
call fcn.00437bde
mov ecx, ebx
call fcn.00437ae6
test al, al
je 0x441634
jmp 0x44170a
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
or esi, 0xffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
push eax
call fcn.00402d8e
mov dword [ebp - 0x38], 1
or edi, 0xffffffff
cmp esi, 0xffffffff
je 0x441716
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edi, 0xffffffff
je 0x441722
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x34]
call fcn.004019df
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.004019df
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004019df
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1000]
xor ecx, ebp
call fcn.00413912
add ebp, 0x1004
leave
ret 4