Function at 0x40c680
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov dword [ebp - 0x38], ecx
push 3
lea eax, [ebp - 8]
push eax
mov ecx, dword [ebp + 8]
call fcn.00408650
push 8
call fcn.00423b51
add esp, 4
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x10], ecx
push 0
push 0
mov edx, dword [ebp - 0x10]
push edx
lea ecx, [ebp - 8]
call fcn.00412ea0
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jne 0x40c6e3
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx + 4], 0
ja 0x40c6f7
jb 0x40c6e3
mov edx, dword [ebp - 0x3c]
cmp dword [edx], 0
ja 0x40c6f7
mov byte [ebp - 0x25], 0
lea ecx, [ebp - 8]
call fcn.00403160
mov al, byte [ebp - 0x25]
jmp 0x40c89b
mov ecx, dword [ebp + 8]
call fcn.0040cf10
mov ecx, dword [ebp + 8]
call fcn.00403510
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
sub eax, 1
push eax
mov ecx, dword [ebp + 8]
call fcn.0040cef0
movzx ecx, ax
cmp ecx, 0x5c
jne 0x40c732
push 1
mov edx, dword [ebp - 0xc]
sub edx, 1
push edx
mov ecx, dword [ebp + 8]
call fcn.0040d070
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x18]
call fcn.00402c10
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [ebp + 8]
call fcn.004084f0
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.00408750
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x40c779
mov byte [ebp - 0x26], 0
lea ecx, [ebp - 0x18]
call fcn.00403160
lea ecx, [ebp - 8]
call fcn.00403160
mov al, byte [ebp - 0x26]
jmp 0x40c89b
cmp dword [ebp - 4], 0xffffffff
je 0x40c884
mov edx, dword [ebp - 4]
add edx, 1
push edx
push 0
lea ecx, [ebp - 0x18]
call fcn.0040d070
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402c10
push 0x5c
lea ecx, [ebp - 0x1c]
call fcn.00408750
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xffffffff
je 0x40c809
mov ecx, dword [ebp - 0x20]
push ecx
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x18]
call fcn.00408650
push eax
lea ecx, [ebp - 0x1c]
call fcn.004084f0
lea ecx, [ebp - 0x2c]
call fcn.00403160
lea ecx, [ebp - 0x1c]
call fcn.0040cfa0
lea ecx, [ebp - 0x1c]
call fcn.0040cf10
push 0x436c14
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x30]
push ecx
call fcn.00408280
push eax
mov ecx, dword [ebp + 8]
call fcn.00408230
lea ecx, [ebp - 0x30]
call fcn.00403160
jmp 0x40c825
lea ecx, [ebp - 0x1c]
call fcn.0040cfa0
lea ecx, [ebp - 0x1c]
call fcn.0040cf10
lea edx, [ebp - 0x1c]
push edx
mov ecx, dword [ebp + 8]
call fcn.00408230
push 0x436c18
lea ecx, [ebp - 0x1c]
call fcn.00404ae0
test eax, eax
je 0x40c849
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x38]
call fcn.0040c8b0
movzx ecx, al
test ecx, ecx
je 0x40c86a
mov byte [ebp - 0x31], 0
lea ecx, [ebp - 0x1c]
call fcn.00403160
lea ecx, [ebp - 0x18]
call fcn.00403160
lea ecx, [ebp - 8]
call fcn.00403160
mov al, byte [ebp - 0x31]
jmp 0x40c89b
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.00408750
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x1c]
call fcn.00403160
jmp 0x40c779
mov byte [ebp - 0x32], 1
lea ecx, [ebp - 0x18]
call fcn.00403160
lea ecx, [ebp - 8]
call fcn.00403160
mov al, byte [ebp - 0x32]
mov esp, ebp
pop ebp
ret 4