Function at 0x40917a
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 0x409181
call fcn.00427280
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
lea eax, [esp + 0xa0]
mov edx, 0x42b02e
push edx
push 3
push eax
call fcn.004271b0
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push 0x28
call fcn.00424e80
lea eax, [esp + 0xac]
push 0x28
push eax
call fcn.00427170
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push 0
push 0
push dword [esp + 0x130]
call fcn.00417b47
call fcn.00414362
add dword [esp], edx
call fcn.00424ed0
call fcn.00414380
mov ebx, eax
and ebx, ebx
jle 0x4096c5
mov dword [esp + 0x94], 0
jmp 0x409244
push dword [esp + 0x120]
call fcn.00417ce1
mov ebx, eax
dec ebx
cmp ebx, dword [esp + 0x94]
jl 0x4096c5
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push 0
push 0
push dword [esp + 0x12c]
call fcn.00417b47
call fcn.00427340
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push 0
push dword [esp + 0xa4]
push dword [esp + 0x134]
call fcn.00417b47
call fcn.00414390
mov edx, eax
call fcn.00414390
mov ecx, eax
call fcn.004143a0
je 0x4096b8
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push 0
push 0
push dword [esp + 0x12c]
call fcn.00417b47
mov edx, 0x42b2b6
push edx
call fcn.004271e0
lea eax, [esp + 0xa4]
push 3
push eax
call fcn.00427170
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push 0x104
call fcn.00424e80
lea eax, [esp + 0x9c]
push eax
call fcn.004270e0
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push 0x104
call fcn.00424e80
lea eax, [esp + 0xa0]
push eax
call fcn.004270e0
push edx
call fcn.004270a0
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.004270a0
pop edx
push eax
push 3
push edx
call fcn.00427370
call fcn.00414362
add dword [esp], edx
call sub.KERNEL32.dll_GetVolumeInformationW
call fcn.00414380
mov dword [esp + 0x90], eax
push edx
call fcn.004270a0
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.004270a0
pop edx
push eax
push 3
push edx
call fcn.00427370
call fcn.00414362
add dword [esp], edx
call sub.KERNEL32.dll_GetDiskFreeSpaceExW
call fcn.00414380
mov dword [esp + 0x90], eax
push edx
call fcn.004270a0
pop edx
push eax
lea eax, [esp + 4]
push eax
lea edx, [esp + 0xa8]
push edx
call fcn.004270a0
pop edx
push eax
push 3
push edx
call fcn.00427370
call fcn.00414362
add dword [esp], edx
call fcn.0040a96c
call fcn.00414380
and eax, eax
je 0x409533
lea ebp, [esp]
mov ebx, dword [ebp]
cmp ebx, 1
jne 0x409533
push 6
mov eax, 0x42ba62
push eax
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.00417ee1
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.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
lea edx, [esp + 0xb0]
push edx
call fcn.004270a0
pop edx
push eax
push 0x28
push edx
call fcn.00427370
call fcn.00414362
add dword [esp], edx
call fcn.00424f00
call fcn.00427340
mov edx, str.C12A7328_F81F_11D2_BA4B_00A0C93EC93B
call fcn.00414390
mov ecx, eax
call fcn.004143a0
je 0x409533
push 7
mov eax, 0x42d0ea
push eax
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.00417ee1
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
lea ebp, [esp + 8]
lea eax, [ebp + 0x48]
push eax
call fcn.004261b0
lea eax, [esp + 0x9c]
push eax
call fcn.004270e0
push edx
call fcn.004270a0
pop edx
push eax
push 3
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push dword [esp + 0xa8]
call fcn.00424d20
call fcn.00427340
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00414362
add dword [esp + 8], edx
call fcn.00417ee1
call fcn.00414380
push edx
call fcn.004270a0
pop edx
push eax
push 5
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push dword [esp + 0xac]
call fcn.00424d20
call fcn.00427340
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00414362
add dword [esp + 8], edx
call fcn.00417ee1
call fcn.00414380
push edx
call fcn.004270a0
pop edx
push eax
push 9
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
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.00424b20
call fcn.00427340
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00414362
add dword [esp + 8], edx
call fcn.00417ee1
call fcn.00414380
push edx
call fcn.004270a0
pop edx
push eax
push 0xa
push edx
call fcn.004270a0
pop edx
push eax
push edx
call fcn.004270a0
pop edx
push eax
push dword [esp + 0x11c]
push dword [esp + 0x11c]
call fcn.00424b20
call fcn.00427340
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00414362
add dword [esp + 8], edx
call fcn.00417ee1
call fcn.00414380
xor eax, eax
push eax
push 0
push dword [esp + 0x124]
push dword [esp + 0xa0]
push dword [esp + 0x130]
call fcn.00403a5a
jmp 0x4096c5
inc dword [esp + 0x94]
jno 0x409244
xor eax, eax
push dword [esp + 0x9c]
call fcn.00427310
push dword [esp + 0x98]
call fcn.00427310
add esp, 0x110
pop ebx
pop ebp
ret 8