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

Disassembly:
mov eax, 0x4ea802
call fcn.004e6580
sub esp, 0x74
push ebx
push esi
push edi
mov esi, ecx
mov edi, 0x4feb50
push edi
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x64]
xor ebx, ebx
push eax
mov ecx, esi
mov dword [ebp - 4], ebx
call fcn.004257e1
cmp al, 1
mov byte [ebp - 0xd], al
jne 0x427f2f
cmp dword [ebp - 0x14], ebx
jle 0x427f2f
push edi
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
xor esi, esi
cmp dword [ebp - 0x14], ebx
mov byte [ebp - 4], 1
jl 0x427f23
cmp dword [ebp - 0x4c], 8
mov eax, dword [ebp - 0x60]
jae 0x427e1f
lea eax, [ebp - 0x60]
cmp word [eax + esi*2], bx
jne 0x427eff
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x427e35
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, dword [ebp + 8]
jne 0x427ef3
cmp dword [ebp + 8], 2
jne 0x427ee7
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x427e5b
lea eax, [ebp - 0x44]
push 0x503da0
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
je 0x427ee7
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x427e77
lea eax, [ebp - 0x44]
push 0x503d98
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
je 0x427ee7
cmp dword [ebp - 0x30], 8
mov eax, dword [ebp - 0x44]
jae 0x427e93
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
cmp eax, 1
jne 0x427ef3
cmp dword [ebp - 0x18], ebx
ja 0x427eb5
cmp dword [ebp - 0x1c], ebx
jbe 0x427ef3
mov eax, dword [ebp - 0x34]
dec eax
cmp eax, ebx
jle 0x427ee7
push eax
push ebx
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_]
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x48]
push eax
call fcn.00417b62
push edi
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
jmp 0x427f19
cmp dword [ebp - 0x4c], 8
mov eax, dword [ebp - 0x60]
jae 0x427f0b
lea eax, [ebp - 0x60]
movzx eax, word [eax + esi*2]
push eax
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_]
inc esi
cmp esi, dword [ebp - 0x14]
jle 0x427e13
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], bl
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x64]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0xd]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8