Function at 0x408e66
Capabilities:
Get disk information
Get disk size

Disassembly:
push ebp
push ebx
mov edx, 0x44
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x408e6d
call fcn.00426dd0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
lea eax, [esp + 0xa0]
mov edx, 0x42a02e
push edx
push 3
push eax
call fcn.00426d00
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push 0x28
call fcn.004249d0
lea eax, [esp + 0xac]
push 0x28
push eax
call fcn.00426cc0
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push 0
push 0
push dword [esp + 0x130]
call fcn.00417b51
call fcn.00414322
add dword [esp], edx
call fcn.00424a20
call fcn.00414340
mov ebx, eax
and ebx, ebx
jle 0x4093b5
mov dword [esp + 0x94], 0
jmp 0x408f30
push dword [esp + 0x120]
call fcn.00417c85
mov ebx, eax
dec ebx
cmp ebx, dword [esp + 0x94]
jl 0x4093b5
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push 0
push 0
push dword [esp + 0x12c]
call fcn.00417b51
call fcn.00426e90
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push 0
push dword [esp + 0xa4]
push dword [esp + 0x134]
call fcn.00417b51
call fcn.00414350
mov edx, eax
pop ecx
push ecx
call fcn.00414350
mov ecx, eax
call fcn.00414360
je 0x4093a8
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push 0
push 0
push dword [esp + 0x12c]
call fcn.00417b51
mov edx, 0x42a2a0
push edx
call fcn.00426d30
lea eax, [esp + 0xa4]
push 3
push eax
call fcn.00426cc0
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push 0x104
call fcn.004249d0
lea eax, [esp + 0x9c]
push eax
call fcn.00426c30
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push 0x104
call fcn.004249d0
lea eax, [esp + 0xa0]
push eax
call fcn.00426c30
push edx
call fcn.00426bf0
pop edx
push eax
push 0x104
mov eax, dword [esp + 0xa4]
push eax
push 0
push 0
push 0
push 0x104
mov eax, dword [esp + 0xb4]
push eax
lea edx, [esp + 0xc0]
push edx
call fcn.00426bf0
pop edx
push eax
push 3
push edx
call fcn.00426ec0
call fcn.00414322
add dword [esp], edx
call sub.KERNEL32.dll_GetVolumeInformationW
call fcn.00414340
mov dword [esp + 0x90], eax
push edx
call fcn.00426bf0
pop edx
push eax
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x104]
push eax
lea edx, [esp + 0xb0]
push edx
call fcn.00426bf0
pop edx
push eax
push 3
push edx
call fcn.00426ec0
call fcn.00414322
add dword [esp], edx
call sub.KERNEL32.dll_GetDiskFreeSpaceExW
call fcn.00414340
mov dword [esp + 0x90], eax
push edx
call fcn.00426bf0
pop edx
push eax
lea eax, [esp + 4]
push eax
lea edx, [esp + 0xa8]
push edx
call fcn.00426bf0
pop edx
push eax
push 3
push edx
call fcn.00426ec0
call fcn.00414322
add dword [esp], edx
call fcn.0040a66a
call fcn.00414340
and eax, eax
je 0x409223
lea ebp, [esp]
mov ebx, dword [ebp]
cmp ebx, 1
jne 0x409223
push 6
mov eax, 0x42aa40
push eax
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.00417e85
push 0x28
lea eax, [esp + 0xac]
push eax
lea ebp, [esp + 8]
lea eax, [ebp + 0x20]
push eax
call sub.ole32.dll_StringFromGUID2
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
lea edx, [esp + 0xb0]
push edx
call fcn.00426bf0
pop edx
push eax
push 0x28
push edx
call fcn.00426ec0
call fcn.00414322
add dword [esp], edx
call fcn.00424a50
call fcn.00426e90
mov edx, str.C12A7328_F81F_11D2_BA4B_00A0C93EC93B
pop ecx
push ecx
call fcn.00414350
mov ecx, eax
call fcn.00414360
je 0x409223
push 7
mov eax, 0x42c05c
push eax
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.00417e85
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
lea ebp, [esp + 8]
lea eax, [ebp + 0x48]
push eax
call fcn.00425d00
lea eax, [esp + 0x9c]
push eax
call fcn.00426c30
push edx
call fcn.00426bf0
pop edx
push eax
push 3
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push dword [esp + 0xa8]
call fcn.004247c0
call fcn.00426e90
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00414322
add dword [esp + 8], edx
call fcn.00417e85
call fcn.00414340
push edx
call fcn.00426bf0
pop edx
push eax
push 5
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push dword [esp + 0xac]
call fcn.004247c0
call fcn.00426e90
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00414322
add dword [esp + 8], edx
call fcn.00417e85
call fcn.00414340
push edx
call fcn.00426bf0
pop edx
push eax
push 9
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push dword [esp + 0x114]
push dword [esp + 0x114]
lea eax, [esp + 0x120]
mov edx, dword [eax]
sub dword [esp], edx
mov edx, dword [eax + 4]
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.004245c0
call fcn.00426e90
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00414322
add dword [esp + 8], edx
call fcn.00417e85
call fcn.00414340
push edx
call fcn.00426bf0
pop edx
push eax
push 0xa
push edx
call fcn.00426bf0
pop edx
push eax
push edx
call fcn.00426bf0
pop edx
push eax
push dword [esp + 0x11c]
push dword [esp + 0x11c]
call fcn.004245c0
call fcn.00426e90
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00414322
add dword [esp + 8], edx
call fcn.00417e85
call fcn.00414340
xor eax, eax
push eax
push 0
push dword [esp + 0x124]
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00403975
jmp 0x4093b5
inc dword [esp + 0x94]
jno 0x408f30
xor eax, eax
push dword [esp + 0x9c]
call fcn.00426e60
push dword [esp + 0x98]
call fcn.00426e60
add esp, 0x110
pop ebx
pop ebp
ret 8