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

Disassembly:
push 0xffffffffffffffff
push 0x4b5b88
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x64
push ebx
push ebp
push esi
push edi
lea ecx, [esp + 0x10]
call sub.MFC42u.DLL_CString::CString_1
lea ecx, [esp + 0x14]
mov dword [esp + 0x7c], 0
call sub.MFC42u.DLL_CString::CString_1
mov bl, 1
xor esi, esi
mov byte [esp + 0x7c], bl
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
test eax, eax
je 0x42b061
test bl, al
je 0x42b05d
inc esi
shr eax, 1
jne 0x42b058
push esi
lea eax, [esp + 0x18]
push 0x4d0314
push eax
call sub.MFC42u.DLL_CString::Format
lea ecx, [esp + 0x30]
push 0x74
push ecx
call fcn.00422460
add esp, 0x14
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 2
call fcn.004b0394
lea ecx, [esp + 0x24]
mov byte [esp + 0x7c], bl
call sub.MFC42u.DLL_CString::CString
lea edx, [esp + 0x14]
lea ecx, [esp + 0x10]
push edx
call fcn.004b0394
mov ecx, dword [esp + 0x84]
lea edx, [esp + 0x10]
push edx
mov eax, dword [ecx + 8]
push eax
call sub.MFC42u.DLL_CStringArray::SetAtGrow
mov ebp, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
push 0
push 0
call ebp
mov esi, eax
lea eax, [esi + esi]
push eax
call sub.MFC42u.DLL_operatornew
add esp, 4
mov edi, eax
push edi
push esi
call ebp
mov eax, esi
xor ebp, ebp
cdq
and edx, 3
xor ecx, ecx
add eax, edx
mov dword [esp + 0x18], ecx
sar eax, 2
cmp eax, ebp
mov dword [esp + 0x20], ebp
jle 0x42b4eb
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], eax
mov cx, word [edi]
lea edx, [esp + 0x54]
mov word [esp + 0x54], cx
mov word [esp + 0x5a], bp
push edx
lea ecx, [esp + 0x14]
mov word [esp + 0x5a], 0x3a
mov word [esp + 0x5c], 0x5c
mov word [esp + 0x5e], bp
call fcn.004b0454
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30060
call sub.MFC42u.DLL_CString::CString_4
lea eax, [esp + 0x2c]
push 0x4e2a30
push eax
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 3
call fcn.004b0394
lea ecx, [esp + 0x28]
mov byte [esp + 0x7c], bl
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov esi, eax
cmp esi, 3
jne 0x42b1cd
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30032
call sub.MFC42u.DLL_CString::CString_4
lea edx, [esp + 0x30]
push 0x4e2a30
push edx
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 4
call fcn.004b0394
mov byte [esp + 0x7c], bl
lea ecx, [esp + 0x2c]
jmp 0x42b327
cmp esi, 5
jne 0x42b214
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30036
call sub.MFC42u.DLL_CString::CString_4
lea eax, [esp + 0x34]
push 0x4e2a30
push eax
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 5
call fcn.004b0394
mov byte [esp + 0x7c], bl
lea ecx, [esp + 0x30]
jmp 0x42b327
cmp esi, 2
jne 0x42b25b
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30034
call sub.MFC42u.DLL_CString::CString_4
lea ecx, [esp + 0x38]
push 0x4e2a30
push ecx
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 6
call fcn.004b0394
mov byte [esp + 0x7c], bl
lea ecx, [esp + 0x34]
jmp 0x42b327
cmp esi, 4
jne 0x42b2a2
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30035
call sub.MFC42u.DLL_CString::CString_4
lea edx, [esp + 0x3c]
push 0x4e2a30
push edx
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 7
call fcn.004b0394
mov byte [esp + 0x7c], bl
lea ecx, [esp + 0x38]
jmp 0x42b327
cmp esi, 6
jne 0x42b2e6
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30037
call sub.MFC42u.DLL_CString::CString_4
lea eax, [esp + 0x40]
push 0x4e2a30
push eax
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 8
call fcn.004b0394
mov byte [esp + 0x7c], bl
lea ecx, [esp + 0x3c]
jmp 0x42b327
cmp esi, ebp
jne 0x42b32c
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30053
call sub.MFC42u.DLL_CString::CString_4
lea ecx, [esp + 0x44]
push 0x4e2a30
push ecx
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 9
call fcn.004b0394
mov byte [esp + 0x7c], bl
lea ecx, [esp + 0x40]
call sub.MFC42u.DLL_CString::CString
lea edx, [esp + 0x6c]
lea eax, [esp + 0x5c]
push edx
lea ecx, [esp + 0x68]
push eax
lea edx, [esp + 0x5c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
cmp eax, ebp
je 0x42b473
cmp esi, 3
jne 0x42b385
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ecx, 0x14
call fcn.004b0c40
mov edx, dword [esp + 0x18]
mov ecx, 0x14
add edx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x68]
call fcn.004b0c40
add dword [esp + 0x20], eax
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30061
call sub.MFC42u.DLL_CString::CString_4
lea eax, [esp + 0x48]
push 0x4e2a30
push eax
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 0xa
call fcn.004b0394
lea ecx, [esp + 0x44]
mov byte [esp + 0x7c], bl
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ecx, 0x14
call fcn.004b0c40
push edx
push eax
lea ecx, [esp + 0x1c]
push str._dMB_
push ecx
call sub.MFC42u.DLL_CString::Format
add esp, 0x10
lea edx, [esp + 0x14]
lea ecx, [esp + 0x10]
push edx
call fcn.004b0394
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30062
call sub.MFC42u.DLL_CString::CString_4
lea eax, [esp + 0x4c]
push 0x4e2a30
push eax
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 0xb
call fcn.004b0394
lea ecx, [esp + 0x48]
mov byte [esp + 0x7c], bl
call sub.MFC42u.DLL_CString::CString
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ecx, 0x14
call fcn.004b0c40
push edx
push eax
lea ecx, [esp + 0x1c]
push 0x4d4068
push ecx
call sub.MFC42u.DLL_CString::Format
add esp, 0x10
lea edx, [esp + 0x14]
lea ecx, [esp + 0x10]
push edx
call fcn.004b0394
jmp 0x42b4b5
push ecx
mov ecx, esp
mov dword [esp + 0x54], esp
push str.IMONITOR_ID_30063
call sub.MFC42u.DLL_CString::CString_4
lea eax, [esp + 0x50]
push 0x4e2a30
push eax
call fcn.004285b0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x80], 0xc
call fcn.004b0394
lea ecx, [esp + 0x4c]
mov byte [esp + 0x7c], bl
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x84]
lea edx, [esp + 0x10]
push edx
mov eax, dword [ecx + 8]
push eax
call sub.MFC42u.DLL_CStringArray::SetAtGrow
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add edi, 8
add ecx, 8
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
jne 0x42b109
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
fild dword [esp + 0x84]
fidiv dword [esp + 0x18]
fmul qword [0x4bc978]
call sub.MSVCRT.dll__ftol
push eax
lea eax, [esp + 0x14]
push 0x4d0314
push eax
call sub.MFC42u.DLL_CString::Format
add esp, 8
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x88], esp
push edx
call sub.MFC42u.DLL_CString::CString_3
push ecx
mov byte [esp + 0x84], 0xd
mov ecx, esp
mov dword [esp + 0x58], esp
push str.disk_usage
call sub.MFC42u.DLL_CString::CString_2
push ecx
mov byte [esp + 0x88], 0xe
mov ecx, esp
mov dword [esp + 0x54], esp
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerTHCTermSetting
call sub.MFC42u.DLL_CString::CString_2
mov byte [esp + 0x88], bl
call fcn.00423e30
add esp, 0xc
lea ecx, [esp + 0x14]
mov byte [esp + 0x7c], 0
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x7c], 0xffffffff
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x74]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x70
ret