Function at 0x42c8e0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44f606
mov eax, dword fs:[0]
push eax
mov eax, 0x31f4
call fcn.0044b8d0
mov eax, dword [0x4632c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x31c8], ecx
mov al, byte [0x4546ef]
mov byte [ebp - 0x1014], al
push 0xfff
push 0
lea ecx, [ebp - 0x1013]
push ecx
call sub.MSVCR90.dll_memset
add esp, 0xc
lea edx, [ebp - 0x1014]
push edx
push 0x1000
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov dword [ebp - 0x101c], eax
push 0xbf
push 0xa9
call fcn.00445200
add esp, 8
cmp eax, 0x5f
jne 0x42c973
call fcn.004013b0
test eax, eax
je 0x42c973
call fcn.00402d20
call fcn.0041ee30
mov dword [ebp - 0x31cc], eax
cmp dword [ebp - 0x31cc], 1
je 0x42c989
jmp 0x42c993
call fcn.00426060
call fcn.00422060
cmp dword [ebp - 0x101c], 0
je 0x42c9ac
cmp dword [ebp - 0x101c], 0x1000
jbe 0x42ca62
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x312c]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x3110], esp
push 0x25
push str.0WRUH
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___unsigned_int_]
mov dword [ebp - 0x31d0], eax
lea ecx, [ebp - 0x310c]
call fcn.004034e0
mov dword [ebp - 0x31d4], eax
mov ecx, dword [ebp - 0x31d4]
mov dword [ebp - 0x31d8], ecx
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x31d8]
call fcn.00403a60
mov dword [ebp - 0x31dc], eax
mov edx, dword [ebp - 0x31dc]
mov dword [ebp - 0x31e0], edx
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x31e0]
call dword [sym.imp.MSVCP90.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
push 1
mov eax, dword [ebp - 0x31c8]
push eax
call fcn.0042a3d0
add esp, 0x10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x312c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x310c]
call fcn.004050e0
jmp 0x42cc74
lea ecx, [ebp - 0x1014]
mov dword [ebp - 0x1018], ecx
mov edx, dword [ebp - 0x1018]
push edx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x42cc15
mov al, byte [0x4546f6]
mov byte [ebp - 0x302c], al
push 0xfff
push 0
lea ecx, [ebp - 0x302b]
push ecx
call sub.MSVCR90.dll_memset
add esp, 0xc
mov dl, byte [0x4546f7]
mov byte [ebp - 0x2024], dl
push 0xfff
push 0
lea eax, [ebp - 0x2023]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
mov dword [ebp - 0x1020], 0
call fcn.0041ee00
test eax, eax
je 0x42cae4
call fcn.00422190
call fcn.00422220
mov dword [ebp - 0x2028], 0
push 0x1000
lea ecx, [ebp - 0x2024]
push ecx
push 0
push 0
lea edx, [ebp - 0x1020]
push edx
push 0x1000
lea eax, [ebp - 0x302c]
push eax
mov ecx, dword [ebp - 0x1018]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov dword [ebp - 0x2028], eax
cmp dword [ebp - 0x2028], 1
jne 0x42cc15
push 1
push 3
lea ecx, [ebp - 0x30b4]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
mov dword [ebp - 4], 2
mov edx, dword [ebp - 0x1020]
push edx
lea ecx, [ebp - 0x30ac]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
call fcn.0041ed90
test eax, eax
je 0x42cb69
call fcn.00402d20
lea eax, [ebp - 0x3148]
push eax
lea ecx, [ebp - 0x30b4]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
mov dword [ebp - 0x31e4], eax
mov ecx, dword [ebp - 0x31e4]
mov dword [ebp - 0x31e8], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x31e8]
push edx
mov ecx, dword [ebp - 0x31c8]
add ecx, 0x1d8
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3148]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [ebp - 0x31c8]
mov ecx, dword [ebp - 0x1020]
mov dword [eax + 0x1d4], ecx
call fcn.0041ed20
mov dword [ebp - 0x31ec], eax
cmp dword [ebp - 0x31ec], 1
je 0x42cbe3
jmp 0x42cbed
call fcn.00426060
call fcn.00422360
mov dword [ebp - 0x314c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30b4]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::vbase_dtor_void_]
mov eax, dword [ebp - 0x314c]
jmp 0x42cd92
mov edx, dword [ebp - 0x1018]
push edx
call sub.MSVCR90.dll_strlen
add esp, 4
mov ecx, dword [ebp - 0x1018]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x1018], edx
mov eax, dword [ebp - 0x1018]
push eax
call sub.MSVCR90.dll_strlen
add esp, 4
test eax, eax
jne 0x42cc49
jmp 0x42cc4e
jmp 0x42ca6e
jmp 0x42cc74
lea ecx, [ebp - 0x31c4]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x31a8], esp
push 0x19
push str.0P_v__6_nR_t_L_
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___unsigned_int_]
mov dword [ebp - 0x31f0], eax
lea ecx, [ebp - 0x31a4]
call fcn.004034e0
mov dword [ebp - 0x31f4], eax
mov edx, dword [ebp - 0x31f4]
mov dword [ebp - 0x31f8], edx
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x31f8]
call fcn.004038b0
mov dword [ebp - 0x31fc], eax
mov eax, dword [ebp - 0x31fc]
mov dword [ebp - 0x3200], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x3200]
call dword [sym.imp.MSVCP90.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
push 1
mov ecx, dword [ebp - 0x31c8]
push ecx
call fcn.0042a3d0
add esp, 0xc
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x31c4]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x31a4]
call fcn.004050e0
mov edx, dword [ebp - 0x31c8]
add edx, 0x1f8
push edx
mov ecx, dword [ebp - 0x31c8]
add ecx, 0x1d8
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push 0xa5
push 0xb
call fcn.00445200
add esp, 8
cmp eax, 0x14a
jne 0x42cd55
jmp 0x42cd63
call fcn.004226b0
call fcn.00402aa0
jmp 0x42cd63
mov eax, dword [ebp - 0x31c8]
mov ecx, dword [ebp - 0x31c8]
mov edx, dword [ecx + 0x1f4]
mov dword [eax + 0x1d4], edx
xor eax, eax
jmp 0x42cd92
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044b84a
mov esp, ebp
pop ebp
ret