Function at 0x40a405
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 0x40a40c
call fcn.00428a90
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
lea eax, [esp + 0xa0]
mov edx, 0x42c02e
push edx
push 3
push eax
call fcn.00428a20
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push 0x28
call fcn.00426280
lea eax, [esp + 0xac]
push 0x28
push eax
call fcn.004289e0
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push 0
push 0
push dword [esp + 0x130]
call fcn.00418c40
call fcn.004153e2
add dword [esp], edx
call fcn.00426390
call fcn.00415400
mov ebx, eax
and ebx, ebx
jle 0x40a950
mov dword [esp + 0x94], 0
jmp 0x40a4cf
push dword [esp + 0x120]
call fcn.00418f8d
mov ebx, eax
dec ebx
cmp ebx, dword [esp + 0x94]
jl 0x40a950
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push 0
push 0
push dword [esp + 0x12c]
call fcn.00418c40
call fcn.00428b50
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push 0
push dword [esp + 0xa4]
push dword [esp + 0x134]
call fcn.00418c40
call fcn.00415410
mov edx, eax
call fcn.00415410
mov ecx, eax
call fcn.00415420
je 0x40a943
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push 0
push 0
push dword [esp + 0x12c]
call fcn.00418c40
mov edx, 0x42cc44
push edx
call fcn.00428980
lea eax, [esp + 0xa4]
push 3
push eax
call fcn.004289e0
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push 0x104
call fcn.00426280
lea eax, [esp + 0x9c]
push eax
call fcn.004288f0
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push 0x104
call fcn.00426280
lea eax, [esp + 0xa0]
push eax
call fcn.004288f0
push edx
call fcn.004288b0
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.004288b0
pop edx
push eax
push 3
push edx
call fcn.00428b80
call fcn.004153e2
add dword [esp], edx
call sub.KERNEL32.dll_GetVolumeInformationW
call fcn.00415400
mov dword [esp + 0x90], eax
push edx
call fcn.004288b0
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.004288b0
pop edx
push eax
push 3
push edx
call fcn.00428b80
call fcn.004153e2
add dword [esp], edx
call sub.KERNEL32.dll_GetDiskFreeSpaceExW
call fcn.00415400
mov dword [esp + 0x90], eax
push edx
call fcn.004288b0
pop edx
push eax
lea eax, [esp + 4]
push eax
lea edx, [esp + 0xa8]
push edx
call fcn.004288b0
pop edx
push eax
push 3
push edx
call fcn.00428b80
call fcn.004153e2
add dword [esp], edx
call fcn.0040bb31
call fcn.00415400
and eax, eax
je 0x40a7be
lea ebp, [esp]
mov ebx, dword [ebp]
cmp ebx, 1
jne 0x40a7be
push 6
mov eax, 0x42d4e0
push eax
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.004191d8
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.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
lea edx, [esp + 0xb0]
push edx
call fcn.004288b0
pop edx
push eax
push 0x28
push edx
call fcn.00428b80
call fcn.004153e2
add dword [esp], edx
call fcn.004263c0
call fcn.00428b50
mov edx, 0x42db34
call fcn.00415410
mov ecx, eax
call fcn.00415420
je 0x40a7be
push 7
mov eax, 0x42eccc
push eax
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.004191d8
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
lea ebp, [esp + 8]
lea eax, [ebp + 0x48]
push eax
call fcn.004279c0
lea eax, [esp + 0x9c]
push eax
call fcn.004288f0
push edx
call fcn.004288b0
pop edx
push eax
push 3
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push dword [esp + 0xa8]
call fcn.00426370
call fcn.00428b50
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.004153e2
add dword [esp + 8], edx
call fcn.004191d8
call fcn.00415400
push edx
call fcn.004288b0
pop edx
push eax
push 5
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push dword [esp + 0xac]
call fcn.00426370
call fcn.00428b50
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.004153e2
add dword [esp + 8], edx
call fcn.004191d8
call fcn.00415400
push edx
call fcn.004288b0
pop edx
push eax
push 9
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
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.00427090
call fcn.00428b50
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.004153e2
add dword [esp + 8], edx
call fcn.004191d8
call fcn.00415400
push edx
call fcn.004288b0
pop edx
push eax
push 0xa
push edx
call fcn.004288b0
pop edx
push eax
push edx
call fcn.004288b0
pop edx
push eax
push dword [esp + 0x11c]
push dword [esp + 0x11c]
call fcn.00427090
call fcn.00428b50
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.004153e2
add dword [esp + 8], edx
call fcn.004191d8
call fcn.00415400
xor eax, eax
push eax
push 0
push dword [esp + 0x124]
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00403f7c
jmp 0x40a950
inc dword [esp + 0x94]
jno 0x40a4cf
xor eax, eax
push dword [esp + 0x9c]
call fcn.00428b20
push dword [esp + 0x98]
call fcn.00428b20
add esp, 0x110
pop ebx
pop ebp
ret 8