Function at 0x403f80
Capabilities:
Get disk size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x6209c
call fcn.0040c020
push ebx
push esi
push edi
lea eax, [ebp - 0x1c]
push 0
push eax
lea eax, [ebp - 0xc]
mov esi, ecx
push eax
push 0x41aff8
push 1
call fcn.00408cb1
pop ecx
pop ecx
push eax
call dword [sym.imp.kernel32.dll_GetDiskFreeSpaceExA]
mov eax, dword [esi + 0x28]
mov edx, dword [ebp - 8]
xor ecx, ecx
cmp edx, ecx
lea eax, [eax + eax*4]
ja 0x403fed
jb 0x403fc7
cmp dword [ebp - 0xc], eax
jae 0x403fed
push dword [ebp - 0xc]
movzx eax, word [esi + 0x20]
push esi
push eax
push esi
push 0x41afb8
push 0x3d
call fcn.00408cb1
pop ecx
pop ecx
push eax
call fcn.00407d76
add esp, 0x14
jmp 0x404287
lea eax, [esi + 0x30]
push eax
push 0x41afb0
push 6
call fcn.00408cb1
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0040ba39
mov edi, 0x30d40
lea eax, [ebp - 0x3135c]
push edi
push 0
push eax
call fcn.0040bc80
add esp, 0x18
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntryA]
lea eax, [ebp - 0x3135c]
push edi
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00407f7a
mov ebx, eax
test ebx, ebx
jl 0x404269
cmp ebx, 0x44
jb 0x404269
lea eax, [ebp - 0x3135c]
push ebx
push eax
mov ecx, esi
call fcn.00403c78
test eax, eax
jne 0x40407b
movzx eax, word [esi + 0x20]
push ebx
push eax
push esi
push 0x41af80
jmp 0x404275
xor ebx, ebx
cmp dword [ebp - 0x31320], ebx
jbe 0x40423a
mov eax, dword [ebp - 0x3132c]
push 0
push eax
imul eax, ebx
lea eax, [ebp + eax - 0x31318]
mov ecx, esi
push eax
push ebx
call fcn.00403d9a
test eax, eax
jne 0x40419a
lea eax, [esi + 0x30]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0040bb60
pop ecx
pop ecx
push ebx
push 0x41af78
push 5
call fcn.00408cb1
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0040c050
pop ecx
lea eax, [ebp + eax - 0x21c]
push eax
call fcn.0040ba39
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntryA]
lea eax, [ebp - 0x6209c]
push edi
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00407f7a
test eax, eax
mov dword [ebp - 0x10], eax
jle 0x4041ac
lea eax, [ebp - 0x61c]
mov ecx, esi
push eax
push ebx
call fcn.00403acd
push 0
push 0x80
push 2
push 0
push 1
lea eax, [ebp - 0x61c]
push 0x40000000
push eax
call dword [sym.imp.kernel32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 4], eax
je 0x4041cc
lea ecx, [ebp - 0x14]
push 0
push ecx
lea ecx, [ebp - 0x6209c]
push dword [ebp - 0x10]
push ecx
push eax
call dword [sym.imp.kernel32.dll_WriteFile]
test eax, eax
je 0x4041fc
push dword [ebp - 4]
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, dword [ebp - 0x3132c]
push 1
push eax
imul eax, ebx
lea eax, [ebp + eax - 0x31318]
mov ecx, esi
push eax
push ebx
call fcn.00403d9a
test eax, eax
je 0x40423a
inc ebx
cmp ebx, dword [ebp - 0x31320]
jb 0x404089
jmp 0x40423a
push eax
movzx eax, word [esi + 0x20]
push eax
push esi
push 0x41af54
push 0x20
call fcn.00408cb1
pop ecx
pop ecx
push eax
call fcn.00407d76
add esp, 0x10
jmp 0x40423a
lea eax, [ebp - 0x41c]
push 0x200
push eax
call fcn.004087ec
pop ecx
lea eax, [ebp - 0x41c]
pop ecx
push eax
lea eax, [ebp - 0x61c]
push eax
movzx eax, word [esi + 0x20]
push eax
push esi
push 0x41af28
push 0x28
jmp 0x40422a
lea eax, [ebp - 0x41c]
push 0x200
push eax
call fcn.004087ec
pop ecx
lea eax, [ebp - 0x41c]
pop ecx
push eax
lea eax, [ebp - 0x61c]
push eax
movzx eax, word [esi + 0x20]
push eax
push esi
push 0x41aef8
push 0x2c
call fcn.00408cb1
pop ecx
pop ecx
push eax
call fcn.00407d76
add esp, 0x14
cmp ebx, dword [ebp - 0x31320]
jne 0x404287
lea eax, [ebp - 0x3135c]
mov ecx, esi
push eax
call fcn.00404702
test eax, eax
jne 0x404264
movzx eax, word [esi + 0x20]
push esi
push eax
push esi
push 0x41aed0
push 0x26
jmp 0x404277
push 1
pop eax
jmp 0x404289
movzx eax, word [esi + 0x20]
push ebx
push eax
push esi
push 0x41aea0
push 0x2f
call fcn.00408cb1
pop ecx
pop ecx
push eax
call fcn.00407d76
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret