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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x34c
mov dword [esp + 4], 0x8000
lea eax, [esp + 0x12c]
mov dword [esp], eax
call fcn.004195d4
mov dword [esp], 1
call sub.KERNEL32.dll_SetErrorMode
sub esp, 4
lea eax, [esp + 0xac]
mov dword [esp + 4], eax
mov dword [esp], pe_nt_image_headers32
call sub.KERNEL32.dll_GetLogicalDriveStringsA
sub esp, 8
test eax, eax
je 0x40947c
mov dword [esp + 0x33c], 0
jmp 0x409461
mov dword [esp + 8], 0x40
mov dword [esp + 4], 0
lea eax, [esp + 0x6c]
mov dword [esp], eax
call fcn.0041a59f
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
lea eax, [esp + 0x5c]
mov dword [esp], eax
call fcn.0041a59f
mov dword [esp + 0x44], 0
lea edx, [esp + 0xac]
mov eax, dword [esp + 0x33c]
add edx, eax
mov dword [esp + 0x1c], 0x10
lea eax, [esp + 0x5c]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x40
lea eax, [esp + 0x6c]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetVolumeInformationA
sub esp, 0x20
test eax, eax
jne 0x40930d
mov dword [esp + 8], 0x40
mov dword [esp + 4], 0
lea eax, [esp + 0x6c]
mov dword [esp], eax
call fcn.0041a59f
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
lea eax, [esp + 0x5c]
mov dword [esp], eax
call fcn.0041a59f
lea edx, [esp + 0xac]
mov eax, dword [esp + 0x33c]
add edx, eax
mov dword [esp + 0xc], 0
lea eax, [esp + 0x48]
mov dword [esp + 8], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_GetDiskFreeSpaceExA
sub esp, 0x10
test eax, eax
jne 0x409364
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
movzx eax, byte [esp + 0x6c]
test al, al
jne 0x409391
mov dword [esp], str.mWYCi_a46w
call fcn.0040b60e
mov dword [esp + 8], 0x40
mov dword [esp + 4], eax
lea eax, [esp + 0x6c]
mov dword [esp], eax
call fcn.00419918
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
lea edx, [esp + 0xac]
mov eax, dword [esp + 0x33c]
add eax, edx
mov dword [esp], eax
call sub.KERNEL32.dll_GetDriveTypeA
sub esp, 4
lea ecx, [esp + 0xac]
mov edx, dword [esp + 0x33c]
add edx, ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
lea eax, [esp + 0x6c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._s___s__a_s_a_d_a_d_a_I64d_a_I64d_a
mov dword [esp + 4], 0x200
lea eax, [esp + 0x138]
mov dword [esp], eax
call fcn.00419fa8
mov dword [esp + 0x338], eax
cmp dword [esp + 0x338], 0
jle 0x409459
mov eax, dword [esp + 0x338]
mov dword [esp + 8], eax
lea eax, [esp + 0x138]
mov dword [esp + 4], eax
lea eax, [esp + 0x12c]
mov dword [esp], eax
call fcn.0041972e
add dword [esp + 0x33c], 4
lea edx, [esp + 0xac]
mov eax, dword [esp + 0x33c]
add eax, edx
movzx eax, byte [eax]
test al, al
jne 0x40923e
lea eax, [esp + 0x12c]
mov dword [esp], eax
call fcn.00419910
test eax, eax
jle 0x4094c6
lea eax, [esp + 0x12c]
mov dword [esp], eax
call fcn.00419910
mov edx, dword [esp + 0x12c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], 0xe8
mov eax, dword [esp + 0x360]
mov dword [esp], eax
call fcn.00408b8f
jmp 0x4094ed
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xe9
mov eax, dword [esp + 0x360]
mov dword [esp], eax
call fcn.00408b8f
lea eax, [esp + 0x12c]
mov dword [esp], eax
call fcn.00419639
nop
add esp, 0x34c
pop ebx
pop esi
pop edi
pop ebp
ret