Function at 0x40b670
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov dword [ebp - 0x40], ecx
push 3
lea eax, [ebp - 8]
push eax
mov ecx, dword [ebp + 8]
call fcn.00406e90
fldz
fstp qword [ebp - 0x20]
push 8
call fcn.004235a1
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x10], ecx
push 0
push 0
mov edx, dword [ebp - 0x10]
push edx
lea ecx, [ebp - 8]
call fcn.004140e0
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jne 0x40b6d8
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x44]
cmp dword [ecx + 4], 0
ja 0x40b6ec
jb 0x40b6d8
mov edx, dword [ebp - 0x44]
cmp dword [edx], 0
ja 0x40b6ec
mov byte [ebp - 0x2d], 0
lea ecx, [ebp - 8]
call fcn.00401860
mov al, byte [ebp - 0x2d]
jmp 0x40b890
mov ecx, dword [ebp + 8]
call fcn.0040bdd0
mov ecx, dword [ebp + 8]
call fcn.00401c10
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
sub eax, 1
push eax
mov ecx, dword [ebp + 8]
call fcn.0040bdb0
movzx ecx, ax
cmp ecx, 0x5c
jne 0x40b727
push 1
mov edx, dword [ebp - 0xc]
sub edx, 1
push edx
mov ecx, dword [ebp + 8]
call fcn.0040bf30
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x18]
call fcn.00401310
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00406d30
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.00406f90
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x40b76e
mov byte [ebp - 0x2e], 0
lea ecx, [ebp - 0x18]
call fcn.00401860
lea ecx, [ebp - 8]
call fcn.00401860
mov al, byte [ebp - 0x2e]
jmp 0x40b890
cmp dword [ebp - 4], 0xffffffff
je 0x40b879
mov edx, dword [ebp - 4]
add edx, 1
push edx
push 0
lea ecx, [ebp - 0x18]
call fcn.0040bf30
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x24]
call fcn.00401310
push 0x5c
lea ecx, [ebp - 0x24]
call fcn.00406f90
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
je 0x40b7fe
mov ecx, dword [ebp - 0x28]
push ecx
lea edx, [ebp - 0x34]
push edx
lea ecx, [ebp - 0x18]
call fcn.00406e90
push eax
lea ecx, [ebp - 0x24]
call fcn.00406d30
lea ecx, [ebp - 0x34]
call fcn.00401860
lea ecx, [ebp - 0x24]
call fcn.0040be60
lea ecx, [ebp - 0x24]
call fcn.0040bdd0
push 0x4348ac
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x38]
push ecx
call fcn.00406ae0
push eax
mov ecx, dword [ebp + 8]
call fcn.00406a90
lea ecx, [ebp - 0x38]
call fcn.00401860
jmp 0x40b81a
lea ecx, [ebp - 0x24]
call fcn.0040be60
lea ecx, [ebp - 0x24]
call fcn.0040bdd0
lea edx, [ebp - 0x24]
push edx
mov ecx, dword [ebp + 8]
call fcn.00406a90
push 0x4348b0
lea ecx, [ebp - 0x24]
call fcn.00403330
test eax, eax
je 0x40b83e
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x40]
call fcn.0040b8a0
movzx ecx, al
test ecx, ecx
je 0x40b85f
mov byte [ebp - 0x39], 0
lea ecx, [ebp - 0x24]
call fcn.00401860
lea ecx, [ebp - 0x18]
call fcn.00401860
lea ecx, [ebp - 8]
call fcn.00401860
mov al, byte [ebp - 0x39]
jmp 0x40b890
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.00406f90
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x24]
call fcn.00401860
jmp 0x40b76e
mov byte [ebp - 0x3a], 1
lea ecx, [ebp - 0x18]
call fcn.00401860
lea ecx, [ebp - 8]
call fcn.00401860
mov al, byte [ebp - 0x3a]
mov esp, ebp
pop ebp
ret 4