Function at 0x40c930
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.00408770
push 8
call fcn.00423e61
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.00403550
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jne 0x40c993
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx + 4], 0
ja 0x40c9a7
jb 0x40c993
mov edx, dword [ebp - 0x3c]
cmp dword [edx], 0
ja 0x40c9a7
mov byte [ebp - 0x25], 0
lea ecx, [ebp - 8]
call fcn.00403180
mov al, byte [ebp - 0x25]
jmp 0x40cb4b
mov ecx, dword [ebp + 8]
call fcn.0040d190
mov ecx, dword [ebp + 8]
call fcn.00403530
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
sub eax, 1
push eax
mov ecx, dword [ebp + 8]
call fcn.0040d170
movzx ecx, ax
cmp ecx, 0x5c
jne 0x40c9e2
push 1
mov edx, dword [ebp - 0xc]
sub edx, 1
push edx
mov ecx, dword [ebp + 8]
call fcn.0040d2f0
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.00408610
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.00408870
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x40ca29
mov byte [ebp - 0x26], 0
lea ecx, [ebp - 0x18]
call fcn.00403180
lea ecx, [ebp - 8]
call fcn.00403180
mov al, byte [ebp - 0x26]
jmp 0x40cb4b
cmp dword [ebp - 4], 0xffffffff
je 0x40cb34
mov edx, dword [ebp - 4]
add edx, 1
push edx
push 0
lea ecx, [ebp - 0x18]
call fcn.0040d2f0
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402c10
push 0x5c
lea ecx, [ebp - 0x1c]
call fcn.00408870
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xffffffff
je 0x40cab9
mov ecx, dword [ebp - 0x20]
push ecx
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x18]
call fcn.00408770
push eax
lea ecx, [ebp - 0x1c]
call fcn.00408610
lea ecx, [ebp - 0x2c]
call fcn.00403180
lea ecx, [ebp - 0x1c]
call fcn.0040d220
lea ecx, [ebp - 0x1c]
call fcn.0040d190
push 0x436d4c
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x30]
push ecx
call fcn.004083c0
push eax
mov ecx, dword [ebp + 8]
call fcn.00408390
lea ecx, [ebp - 0x30]
call fcn.00403180
jmp 0x40cad5
lea ecx, [ebp - 0x1c]
call fcn.0040d220
lea ecx, [ebp - 0x1c]
call fcn.0040d190
lea edx, [ebp - 0x1c]
push edx
mov ecx, dword [ebp + 8]
call fcn.00408390
push 0x436d50
lea ecx, [ebp - 0x1c]
call fcn.00404b70
test eax, eax
je 0x40caf9
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x38]
call fcn.0040cb60
movzx ecx, al
test ecx, ecx
je 0x40cb1a
mov byte [ebp - 0x31], 0
lea ecx, [ebp - 0x1c]
call fcn.00403180
lea ecx, [ebp - 0x18]
call fcn.00403180
lea ecx, [ebp - 8]
call fcn.00403180
mov al, byte [ebp - 0x31]
jmp 0x40cb4b
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.00408870
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x1c]
call fcn.00403180
jmp 0x40ca29
mov byte [ebp - 0x32], 1
lea ecx, [ebp - 0x18]
call fcn.00403180
lea ecx, [ebp - 8]
call fcn.00403180
mov al, byte [ebp - 0x32]
mov esp, ebp
pop ebp
ret 4