Function at 0x41022a
Capabilities:
Get disk information

Disassembly:
push 0x7ac
mov eax, 0x4173fe
call fcn.004159bb
push 0x10140
call sub.mfc90u.dll_new
xor esi, esi
pop ecx
cmp eax, esi
je 0x410255
mov ecx, eax
call fcn.004016e4
mov edi, eax
jmp 0x410257
xor edi, edi
push edi
call fcn.00401121
mov eax, dword [0x420a7c]
push dword [0x42de4c]
mov dword [ebp - 0x18], eax
mov eax, dword [0x420a80]
mov dword [ebp - 0x14], eax
mov ax, word [0x42de48]
mov word [ebp - 0x18], ax
call fcn.00403d19
movzx eax, word [0x42de48]
push 1
push eax
lea ecx, [ebp - 0x79c]
call dword [0x41a614]
lea ecx, [ebp - 0x7b4]
mov dword [ebp - 4], esi
call dword [0x41a85c]
mov eax, 0x100
push eax
lea ecx, [ebp - 0x718]
push ecx
push esi
push esi
push esi
push eax
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea ecx, [ebp - 0x780]
call dword [0x41a85c]
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x780]
mov byte [ebp - 4], 2
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov eax, dword [ebp - 0x780]
mov esi, dword [eax - 0xc]
test esi, esi
jne 0x410336
push 0x4209a0
push str.IDS_LOCAL_DISK
lea eax, [ebp - 0x76c]
push eax
mov ecx, 0x42dce0
call dword [sym.imp.ASOHelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSystweakApp::LoadStringW_wchar_t_const___wchar_t_const__]
push eax
lea ecx, [ebp - 0x780]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 2
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp esi, 8
jle 0x4103a9
push 8
push 0
lea eax, [ebp - 0x76c]
push eax
lea ecx, [ebp - 0x780]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid]
push eax
lea ecx, [ebp - 0x780]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 2
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp - 0x76c]
push 0x41b748
push eax
lea esi, [ebp - 0x780]
call fcn.00406396
pop ecx
pop ecx
push eax
mov ecx, esi
mov byte [ebp - 4], 5
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 2
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push dword [ebp - 0x79c]
mov eax, dword [0x42de4c]
push dword [ebp - 0x780]
mov esi, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add eax, 0x14fc
push str._s___s:_
push eax
call esi
mov eax, dword [0x42de4c]
add esp, 0x10
add eax, 0x14fc
push eax
lea ecx, [ebx + 0x524]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
mov ecx, dword [0x42de4c]
call fcn.00403f2a
lea eax, [ebp - 0x218]
push eax
push dword [edi + 0x24]
push dword [edi + 0x20]
call fcn.00402444
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x7ac]
call dword [0x41a924]
lea eax, [ebp - 0x218]
push eax
mov byte [ebp - 4], 6
push dword [edi + 0x2c]
push dword [edi + 0x28]
call fcn.00402444
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x7b8]
call dword [0x41a924]
lea eax, [ebp - 0x218]
push eax
mov byte [ebp - 4], 7
push dword [edi + 0x3c]
push dword [edi + 0x38]
call fcn.00402444
mov eax, dword [edi + 0x38]
mov ecx, dword [0x42de4c]
mov dword [ecx + 0x1508], eax
mov eax, dword [edi + 0x3c]
mov ecx, dword [0x42de4c]
mov dword [ecx + 0x150c], eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x7b0]
call dword [0x41a924]
lea eax, [ebp - 0x218]
push eax
mov byte [ebp - 4], 8
push dword [edi + 0x4c]
push dword [edi + 0x48]
call fcn.00402444
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x7a4]
call dword [0x41a924]
lea eax, [ebp - 0x794]
push eax
mov byte [ebp - 4], 9
call fcn.00401166
xor edx, edx
mov dword [ebp - 0x768], edx
mov dword [ebp - 0x764], edx
mov dword [ebp - 0x778], edx
mov dword [ebp - 0x774], edx
mov dword [ebp - 0x76c], edx
cmp dword [ebp - 0x794], edx
jbe 0x410579
lea esi, [ebp - 0x760]
call fcn.004016b9
mov byte [ebp - 4], 0xa
push dword [ebp - 0x76c]
mov ecx, esi
call fcn.004011a0
cmp dword [ebp - 0x740], 1
mov ecx, dword [ebp - 0x734]
mov eax, dword [ebp - 0x738]
ja 0x410528
cmp dword [ebp - 0x73c], 1
jbe 0x410549
jmp 0x410534
add dword [ebp - 0x768], eax
adc dword [ebp - 0x764], ecx
cmp dword [ebp - 0x73c], 1
jbe 0x410549
add dword [ebp - 0x778], eax
adc dword [ebp - 0x774], ecx
lea ecx, [ebp - 0x760]
mov byte [ebp - 4], 9
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
inc dword [ebp - 0x76c]
mov eax, dword [ebp - 0x76c]
cmp eax, dword [ebp - 0x794]
jb 0x4104ec
mov esi, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
xor edx, edx
fldz
fst qword [ebx + 0x538]
fst qword [ebx + 0x548]
fst qword [ebx + 0x540]
fstp qword [ebx + 0x550]
cmp dword [edi + 0x64], edx
ja 0x4105a1
cmp dword [edi + 0x60], edx
jbe 0x410744
cmp dword [edi + 0x6c], edx
ja 0x4105af
cmp dword [edi + 0x68], edx
jbe 0x410744
mov eax, dword [ebp - 0x768]
mov esi, dword [edi + 0x60]
mov dword [ebp - 0x768], edx
mov edx, dword [edi + 0x64]
mov dword [ebp - 0x770], eax
mov eax, dword [ebp - 0x764]
mov dword [ebp - 0x764], eax
mov ecx, SysReAllocString
and eax, ecx
mov dword [ebp - 0x76c], eax
fild qword [ebp - 0x770]
mov eax, SysReAllocString
and dword [ebp - 0x764], eax
fild qword [ebp - 0x768]
and dword [ebp - 0x768], 0
mov dword [ebp - 0x764], edx
and dword [ebp - 0x764], eax
fchs
and edx, ecx
faddp st(1)
mov dword [ebp - 0x76c], edx
fld qword [0x424298]
mov dword [ebp - 0x770], esi
fmul st(1), st(0)
fild qword [ebp - 0x770]
fild qword [ebp - 0x768]
and dword [ebp - 0x768], 0
fchs
faddp st(1)
fld st(2)
fdivrp st(1)
fstp qword [ebx + 0x538]
mov edx, dword [edi + 0x6c]
mov esi, dword [edi + 0x68]
mov dword [ebp - 0x764], edx
and dword [ebp - 0x764], eax
and edx, ecx
mov dword [ebp - 0x76c], edx
mov dword [ebp - 0x770], esi
fild qword [ebp - 0x770]
fild qword [ebp - 0x768]
mov edx, dword [ebp - 0x778]
and dword [ebp - 0x778], 0
mov dword [ebp - 0x768], edx
fchs
mov edx, dword [ebp - 0x774]
faddp st(1)
mov dword [ebp - 0x774], edx
and dword [ebp - 0x774], eax
and edx, ecx
fdivp st(2)
mov dword [ebp - 0x764], edx
fxch st(1)
fstp qword [ebx + 0x548]
fild qword [ebp - 0x768]
fild qword [ebp - 0x778]
mov edx, dword [edi + 0x64]
mov esi, dword [edi + 0x60]
and dword [ebp - 0x778], 0
mov dword [ebp - 0x774], edx
and dword [ebp - 0x774], eax
fchs
and edx, ecx
faddp st(1)
mov dword [ebp - 0x764], edx
mov dword [ebp - 0x768], esi
fmulp st(1)
fild qword [ebp - 0x768]
fild qword [ebp - 0x778]
fchs
faddp st(1)
fld st(1)
fdivrp st(1)
fstp qword [ebx + 0x540]
mov edx, dword [edi + 0x6c]
mov esi, dword [edi + 0x68]
mov dword [ebp - 0x774], edx
and edx, ecx
mov dword [ebp - 0x768], esi
mov dword [ebp - 0x764], edx
fild qword [ebp - 0x768]
and dword [ebp - 0x774], eax
and dword [ebp - 0x778], 0
fild qword [ebp - 0x778]
mov esi, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
fchs
faddp st(1)
fdivp st(1)
fstp qword [ebx + 0x550]
lea ecx, [ebp - 0x77c]
call dword [0x41a85c]
push ecx
mov byte [ebp - 4], 0xb
fld qword [ebx + 0x538]
push ecx
fstp qword [esp]
lea eax, [ebp - 0x77c]
push str._0.2f__
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x77c]
push eax
lea ecx, [ebp - 0x78c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push ecx
mov byte [ebp - 4], 0xc
fld qword [ebx + 0x540]
push ecx
fstp qword [esp]
lea eax, [ebp - 0x77c]
push str._0.2f__
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x77c]
push eax
lea ecx, [ebp - 0x7a0]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea ecx, [ebp - 0x784]
call dword [0x41a85c]
push 0x4209a0
push str.IDS_FRAGMENTATION_RES
lea eax, [ebp - 0x76c]
push eax
mov ecx, 0x42dce0
mov byte [ebp - 4], 0xe
call dword [sym.imp.ASOHelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSystweakApp::LoadStringW_wchar_t_const___wchar_t_const__]
mov byte [ebp - 4], 0xf
push dword [ebp - 0x7a0]
mov eax, dword [eax]
push dword [ebp - 0x78c]
push eax
lea eax, [ebp - 0x784]
push eax
call esi
add esp, 0x10
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 0xe
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [0x42de4c]
lea eax, [ebp - 0x784]
push eax
add ecx, 0x1500
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
mov ecx, dword [0x42de4c]
call fcn.0040411c
fld qword [ebx + 0x548]
push ecx
push ecx
fstp qword [esp]
lea eax, [ebp - 0x77c]
push str._0.2f__
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x77c]
push eax
lea ecx, [ebp - 0x798]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push ecx
mov byte [ebp - 4], 0x10
fld qword [ebx + 0x550]
push ecx
fstp qword [esp]
lea eax, [ebp - 0x77c]
push str._0.2f__
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x77c]
push eax
lea ecx, [ebp - 0x790]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea ecx, [ebp - 0x788]
call dword [0x41a85c]
push 0x4209a0
push str.IDS_FRAGMENTATION_RES
lea eax, [ebp - 0x76c]
push eax
mov ecx, 0x42dce0
mov byte [ebp - 4], 0x12
call dword [sym.imp.ASOHelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSystweakApp::LoadStringW_wchar_t_const___wchar_t_const__]
mov byte [ebp - 4], 0x13
push dword [ebp - 0x790]
mov eax, dword [eax]
push dword [ebp - 0x798]
push eax
lea eax, [ebp - 0x788]
push eax
call esi
add esp, 0x10
lea ecx, [ebp - 0x76c]
mov byte [ebp - 4], 0x12
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [0x42de4c]
lea eax, [ebp - 0x788]
push eax
add ecx, 0x1504
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
mov ecx, dword [0x42de4c]
call fcn.0040430e
push 0x80
lea eax, [ebp - 0x318]
push eax
mov eax, dword [edi + 0x8c]
mul dword [edi + 0x88]
push 0x400
push dword [edi + 0xac]
push dword [edi + 0xa8]
push edx
push eax
call fcn.00415b70
push edx
push eax
call dword [sym.imp.ASOHelper.dll_int___cdecl_BytesToString_unsigned_long_long_unsigned___int64___unsigned_int__wchar_t___unsigned_int_]
add esp, 0x14
lea eax, [ebp - 0x318]
push eax
lea ecx, [ebp - 0x7a8]
call dword [0x41a924]
push edi
call sub.mfc90u.dll_delete
pop ecx
lea ecx, [ebp - 0x7a8]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x788]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x790]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x798]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x784]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x7a0]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x78c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x77c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x7a4]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x7b0]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x7b8]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x7ac]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x780]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x7b4]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x79c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
call fcn.00415a3e
ret