Function at 0x40a4b7
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 0x40a4be
call fcn.0042bdd0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
lea eax, [esp + 0xa0]
mov edx, 0x42f02e
push edx
push 3
push eax
call fcn.0042bd60
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push 0x28
call fcn.004295b0
lea eax, [esp + 0xac]
push 0x28
push eax
call fcn.0042bd20
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push 0
push 0
push dword [esp + 0x130]
call fcn.00419af0
call fcn.004163f2
add dword [esp], edx
call fcn.004296c0
call fcn.00416410
mov ebx, eax
and ebx, ebx
jle 0x40aa02
mov dword [esp + 0x94], 0
jmp 0x40a581
push dword [esp + 0x120]
call fcn.00419e3d
mov ebx, eax
dec ebx
cmp ebx, dword [esp + 0x94]
jl 0x40aa02
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push 0
push 0
push dword [esp + 0x12c]
call fcn.00419af0
call fcn.0042be90
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push 0
push dword [esp + 0xa4]
push dword [esp + 0x134]
call fcn.00419af0
call fcn.00416420
mov edx, eax
call fcn.00416420
mov ecx, eax
call fcn.00416430
je 0x40a9f5
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push 0
push 0
push dword [esp + 0x12c]
call fcn.00419af0
mov edx, 0x42fc22
push edx
call fcn.0042bcc0
lea eax, [esp + 0xa4]
push 3
push eax
call fcn.0042bd20
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push 0x104
call fcn.004295b0
lea eax, [esp + 0x9c]
push eax
call fcn.0042bc30
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push 0x104
call fcn.004295b0
lea eax, [esp + 0xa0]
push eax
call fcn.0042bc30
push edx
call fcn.0042bbf0
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.0042bbf0
pop edx
push eax
push 3
push edx
call fcn.0042bec0
call fcn.004163f2
add dword [esp], edx
call sub.KERNEL32.dll_GetVolumeInformationW
call fcn.00416410
mov dword [esp + 0x90], eax
push edx
call fcn.0042bbf0
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.0042bbf0
pop edx
push eax
push 3
push edx
call fcn.0042bec0
call fcn.004163f2
add dword [esp], edx
call sub.KERNEL32.dll_GetDiskFreeSpaceExW
call fcn.00416410
mov dword [esp + 0x90], eax
push edx
call fcn.0042bbf0
pop edx
push eax
lea eax, [esp + 4]
push eax
lea edx, [esp + 0xa8]
push edx
call fcn.0042bbf0
pop edx
push eax
push 3
push edx
call fcn.0042bec0
call fcn.004163f2
add dword [esp], edx
call fcn.0040bc43
call fcn.00416410
and eax, eax
je 0x40a870
lea ebp, [esp]
mov ebx, dword [ebp]
cmp ebx, 1
jne 0x40a870
push 6
mov eax, 0x4304b4
push eax
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.0041a088
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.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
lea edx, [esp + 0xb0]
push edx
call fcn.0042bbf0
pop edx
push eax
push 0x28
push edx
call fcn.0042bec0
call fcn.004163f2
add dword [esp], edx
call fcn.004296f0
call fcn.0042be90
mov edx, str.C12A7328_F81F_11D2_BA4B_00A0C93EC93B
call fcn.00416420
mov ecx, eax
call fcn.00416430
je 0x40a870
push 7
mov eax, 0x431c6a
push eax
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.0041a088
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
lea ebp, [esp + 8]
lea eax, [ebp + 0x48]
push eax
call fcn.0042acf0
lea eax, [esp + 0x9c]
push eax
call fcn.0042bc30
push edx
call fcn.0042bbf0
pop edx
push eax
push 3
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push dword [esp + 0xa8]
call fcn.004296a0
call fcn.0042be90
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.004163f2
add dword [esp + 8], edx
call fcn.0041a088
call fcn.00416410
push edx
call fcn.0042bbf0
pop edx
push eax
push 5
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push dword [esp + 0xac]
call fcn.004296a0
call fcn.0042be90
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.004163f2
add dword [esp + 8], edx
call fcn.0041a088
call fcn.00416410
push edx
call fcn.0042bbf0
pop edx
push eax
push 9
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
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.0042a3c0
call fcn.0042be90
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.004163f2
add dword [esp + 8], edx
call fcn.0041a088
call fcn.00416410
push edx
call fcn.0042bbf0
pop edx
push eax
push 0xa
push edx
call fcn.0042bbf0
pop edx
push eax
push edx
call fcn.0042bbf0
pop edx
push eax
push dword [esp + 0x11c]
push dword [esp + 0x11c]
call fcn.0042a3c0
call fcn.0042be90
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.004163f2
add dword [esp + 8], edx
call fcn.0041a088
call fcn.00416410
xor eax, eax
push eax
push 0
push dword [esp + 0x124]
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00403fb1
jmp 0x40aa02
inc dword [esp + 0x94]
jno 0x40a581
xor eax, eax
push dword [esp + 0x9c]
call fcn.0042be60
push dword [esp + 0x98]
call fcn.0042be60
add esp, 0x110
pop ebx
pop ebp
ret 8