Function at 0x42e645
Capabilities:
Get disk information

Disassembly:
push 0x634
mov eax, 0x4634a3
call fcn.00446255
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x640]
call fcn.0042e8f9
xor ebx, ebx
xor eax, eax
mov dword [ebp - 4], ebx
push 0x206
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
jle 0x42e8d4
xor eax, eax
mov dword [ebp - 0x62c], ebx
push 0x206
mov word [ebp - 0x420], ax
mov esi, ebx
lea eax, [ebp - 0x41e]
push ebx
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push 0x206
mov word [ebp - 0x628], ax
lea eax, [ebp - 0x626]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0x18
cmp word [ebp - 0x218], bx
je 0x42e8d4
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 2
jne 0x42e857
mov ecx, dword [ebp - 0x218]
lea edx, [ebp - 0x62c]
call fcn.00440ef2
test eax, eax
js 0x42e857
cmp dword [ebp - 0x62c], ebx
je 0x42e857
push 0x104
lea eax, [ebp - 0x420]
push ebx
push eax
call sub.msvcrt.dll_memset
push 0x104
lea eax, [ebp - 0x628]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0x18
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40d250
push 0x40d180
push 0x75
push ebx
push 0x406890
push 0xa4000
lea eax, [ebp - 0x218]
push eax
push 0x40d2ec
push 0x4000000
call fcn.00420037
add esp, 0xc
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
mov ecx, 0x104
lea eax, [ebp - 0x628]
push ecx
push eax
push ebx
push ebx
push ebx
push ecx
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x640]
call dword [0x46a524]
mov ax, word [ebp - 0x218]
lea ecx, [ebp - 0x638]
mov word [ebp - 0x630], ax
lea eax, [ebp - 0x628]
push eax
call dword [0x46a524]
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x63c]
call dword [0x46a524]
mov eax, dword [ebp - 0x63c]
cmp dword [eax - 8], ebx
jne 0x42e826
lea eax, [ebp - 0x63c]
mov ecx, 0x468450
push eax
push 0x6d
call fcn.0042458a
mov eax, dword [ebp - 0x63c]
push eax
movzx eax, word [ebp - 0x630]
push eax
lea eax, [ebp - 0x634]
push 0x40d314
push eax
call dword [0x46a514]
add esp, 0x10
lea eax, [ebp - 0x640]
mov ecx, edi
push eax
push dword [edi + 4]
call fcn.0042ed18
jmp 0x42e8a1
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call dword [sym.imp.WDSCORE.dll_CurrentIP]
push eax
push 0x40d250
push 0x40d180
push 0x87
push ebx
push 0x406890
push 0xa4000
lea eax, [ebp - 0x218]
push eax
push 0x40d328
push 0x4000000
call fcn.00420037
add esp, 0xc
push eax
call dword [sym.imp.WDSCORE.dll_WdsSetupLogMessageW]
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x42e8aa
sub ecx, edx
inc esi
sar ecx, 1
add esi, ecx
mov ax, word [ebp + esi*2 - 0x218]
mov word [ebp - 0x218], ax
test ax, ax
jne 0x42e6ed
xor ecx, ecx
call fcn.0041b049
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x640]
call fcn.0042e50b
xor eax, eax
call fcn.00446209
ret 4