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

Disassembly:
push 0x498
mov eax, 0x437599
call fcn.00435021
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x464], eax
mov dword [ebp - 0x460], ebx
mov dword [ebp - 0x45c], ebx
mov dword [ebp - 0x458], ebx
mov dword [ebp - 0x454], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x44c], ebx
mov dword [ebp - 0x448], ebx
mov dword [ebp - 0x444], ebx
mov byte [ebp - 4], 1
mov eax, dword [0x44b724]
mov edi, 0x44b724
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x438], eax
mov esi, 0x208
push esi
lea eax, [ebp - 0x222]
push ebx
mov byte [ebp - 4], 2
push eax
mov word [ebp - 0x224], bx
call sub.MSVCR80.dll_memset
add esp, 0xc
push esi
lea eax, [ebp - 0x432]
push ebx
push eax
mov word [ebp - 0x434], bx
call sub.MSVCR80.dll_memset
add esp, 0xc
mov ecx, edi
lea esi, [ebp - 0x490]
call fcn.004025a7
push 0x8001
mov byte [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
lea eax, [ebp - 0x460]
call fcn.00422743
mov esi, dword [ebp - 0x45c]
mov edi, dword [ebp - 0x460]
lea eax, [esi + esi]
push eax
push ebx
push edi
call sub.MSVCR80.dll_memset
add esp, 0xc
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov esi, eax
cmp esi, 2
jbe 0x421fec
push edi
lea eax, [ebp - 0x438]
push eax
call fcn.00402c06
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x450]
call fcn.0041a0f6
cmp esi, 3
jbe 0x421fec
add edi, 6
add esi, 0xfffffffd
cmp word [edi], bx
je 0x421fe7
cmp word [edi - 2], bx
jne 0x421fe7
push edi
lea eax, [ebp - 0x438]
push eax
call fcn.00402c06
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x450]
call fcn.0041a0f6
inc edi
inc edi
dec esi
jne 0x421fbd
mov dword [ebp - 0x43c], ebx
cmp dword [ebp - 0x44c], ebx
je 0x4221d2
mov eax, dword [ebp - 0x448]
sub eax, dword [ebp - 0x44c]
mov esi, dword [ebp - 0x43c]
sar eax, 2
cmp esi, eax
jae 0x4221d2
lea edi, [ebp - 0x450]
call fcn.0041a0de
mov eax, dword [eax]
sub eax, 0x10
call fcn.00405755
lea edi, [eax + 0x10]
mov dword [ebp - 0x498], edi
mov byte [ebp - 4], 4
mov esi, dword [sym.imp.MSVCR80.dll__wcsicmp]
push 0x43e970
push edi
mov dword [ebp - 0x440], ebx
call esi
test eax, eax
pop ecx
pop ecx
je 0x4221b1
push 0x43e978
push edi
call esi
test eax, eax
pop ecx
pop ecx
je 0x4221b1
push edi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
je 0x42208c
cmp eax, 2
jne 0x4221b1
mov dword [ebp - 0x440], 1
mov esi, 0x20a
push esi
lea eax, [ebp - 0x224]
push ebx
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
push esi
lea eax, [ebp - 0x434]
push ebx
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
mov eax, 0x105
push eax
lea ecx, [ebp - 0x434]
push ecx
push ebx
push ebx
push ebx
push eax
lea eax, [ebp - 0x224]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
cmp eax, ebx
je 0x4221b1
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x46c]
push eax
lea eax, [ebp - 0x474]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
cmp eax, ebx
je 0x4221b1
cmp dword [edi - 0xc], ebx
jl 0x4221c8
movzx eax, word [edi]
mov byte [ebp - 0x494], al
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x490]
push eax
call fcn.00402c06
mov eax, dword [ebp - 0x490]
cmp dword [eax - 0xc], ebx
jne 0x422146
push str._g0W
lea eax, [ebp - 0x490]
push eax
call fcn.00402c06
mov eax, dword [ebp - 0x474]
mul dword [ebp - 0x46c]
push edx
mov esi, eax
push esi
push ebx
push dword [ebp - 0x468]
mov dword [ebp - 0x4a0], edx
call fcn.004351e0
push dword [ebp - 0x4a0]
mov dword [ebp - 0x48c], eax
push esi
push ebx
push dword [ebp - 0x470]
mov dword [ebp - 0x488], edx
call fcn.004351e0
mov esi, dword [ebp - 0x464]
mov dword [ebp - 0x484], eax
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x494]
push eax
mov dword [ebp - 0x480], edx
call fcn.00422328
lea eax, [edi - 0x10]
mov byte [ebp - 4], 3
call fcn.00401a71
inc dword [ebp - 0x43c]
jmp 0x421ff2
push 0x80070057
call fcn.00402877
mov eax, dword [ebp - 0x490]
add eax, 0xfffffff0
call fcn.00401a71
mov eax, dword [ebp - 0x438]
add eax, 0xfffffff0
call fcn.00401a71
lea esi, [ebp - 0x450]
call fcn.0041a09e
cmp dword [ebp - 0x460], ebx
je 0x42220e
push dword [ebp - 0x460]
call dword [sym.imp.MSVCR80.dll_free]
pop ecx
xor eax, eax
inc eax
call fcn.004350a4
ret