Function at 0x45f463
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x46700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov edx, 0x4060e0
mov esi, edi
mov dword [ebp - 0x1c], edi
call fcn.0045db8b
test al, al
jne 0x45f4a2
mov edx, 0x40606c
call fcn.0045db8b
mov edx, 0x800
test al, al
je 0x45f4a7
mov edx, 0x104
and dword [ebp - 0x18], 0
mov ecx, ebx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x18]
jne 0x45f4b0
sub ecx, esi
sar ecx, 1
cmp ecx, edx
jae 0x45f7f7
push dword [edi + 0x1c]
call fcn.00464790
movzx eax, ax
push 0x2e
mov dword [ebp - 0x14], eax
mov word [ebp - 0x10], ax
pop ecx
mov word [ebp - 0xa], ax
xor eax, eax
mov edx, 0x4060e0
mov esi, edi
mov word [ebp - 0xe], cx
mov word [ebp - 0xc], cx
mov word [ebp - 8], ax
call fcn.0045db8b
mov esi, dword [sym.imp.msvcrt.dll_wcsncmp]
test al, al
je 0x45f5ba
mov ecx, 0x41d95c
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45f536
test dx, dx
je 0x45f532
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45f536
add eax, 4
add ecx, 4
test dx, dx
jne 0x45f510
xor eax, eax
jmp 0x45f53b
sbb eax, eax
sbb eax, reloc.ADVAPI32.dll_TraceMessage
test eax, eax
je 0x45f5b0
push 3
lea eax, [ebp - 0xe]
push eax
push ebx
call esi
add esp, 0xc
test eax, eax
je 0x45f5b0
lea eax, [ebp - 0x10]
push eax
push ebx
call dword [sym.imp.msvcrt.dll_wcsstr]
pop ecx
pop ecx
test eax, eax
jne 0x45f5b0
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x18]
jne 0x45f565
sub ecx, edx
sar ecx, 1
cmp ecx, 3
jb 0x45f5a9
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x18]
jne 0x45f57f
push 3
lea eax, [ebp - 0x10]
push eax
sub ecx, edx
sar ecx, 1
lea eax, [ebx - 6]
lea eax, [eax + ecx*2]
push eax
call esi
add esp, 0xc
neg eax
sbb eax, eax
neg eax
jmp 0x45f5ac
xor eax, eax
inc eax
test eax, eax
jne 0x45f5ba
mov esi, 0xc00d132b
jmp 0x45f7fc
mov edx, 0x4060e0
mov esi, edi
call fcn.0045db8b
test al, al
je 0x45f5f6
mov eax, ebx
call fcn.00464814
test al, al
je 0x45f628
push 4
push 0x424810
push ebx
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
je 0x45f628
add ebx, 4
xor eax, eax
mov esi, eax
jmp 0x45f7e3
mov edx, 0x4060a8
call fcn.0045db8b
test al, al
je 0x45f657
mov esi, dword [sym.imp.msvcrt.dll_iswdigit]
jmp 0x45f60f
add ebx, 2
movzx eax, word [ebx]
push eax
call esi
pop ecx
test eax, eax
jne 0x45f60c
movzx eax, word [ebx]
cmp ax, word [ebp - 0x14]
je 0x45f632
test ax, ax
je 0x45f645
mov esi, 0xc00d1327
jmp 0x45f7fc
test ax, ax
je 0x45f645
add ebx, 2
movzx eax, word [ebx]
push eax
call esi
pop ecx
test eax, eax
jne 0x45f637
movzx esi, word [ebx]
neg esi
sbb esi, esi
and esi, 0xc00d1327
jmp 0x45f7df
mov edx, 0x4060b4
call fcn.0045db8b
test al, al
jne 0x45f5ed
mov edx, 0x40607c
call fcn.0045db8b
test al, al
je 0x45f6f1
movzx eax, word [ebx]
mov esi, 0xc00d1327
cmp eax, 0x41
jb 0x45f685
cmp eax, 0x5a
jbe 0x45f697
cmp eax, 0x61
jb 0x45f7fc
cmp eax, 0x7a
ja 0x45f7fc
movzx eax, word [ebx + 2]
cmp ax, word [ebp - 0x14]
jne 0x45f6e3
add ebx, 4
jmp 0x45f6a9
add ebx, 2
movzx eax, word [ebx]
push eax
call dword [sym.imp.msvcrt.dll_iswdigit]
pop ecx
test eax, eax
jne 0x45f6a6
movzx eax, word [ebx]
cmp ax, word [ebp - 0x14]
jne 0x45f6e3
add ebx, 2
movzx eax, word [ebx]
push eax
call dword [sym.imp.msvcrt.dll_iswdigit]
pop ecx
test eax, eax
jne 0x45f6c1
xor eax, eax
cmp word [ebx], ax
jne 0x45f7fc
jmp 0x45f5ef
test ax, ax
jne 0x45f7fc
jmp 0x45f5ed
mov edx, 0x40606c
call fcn.0045db8b
test al, al
je 0x45f794
lea ecx, [ebp - 0x34]
mov esi, 0xc00d1327
call fcn.004636d2
push ebx
push 3
pop eax
lea edi, [ebp - 0x34]
call fcn.004637f0
test eax, eax
js 0x45f787
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
jne 0x45f787
mov edi, 0x4050f8
push edi
lea eax, [ebp - 0x40]
call fcn.0046444f
push ebx
lea eax, [ebp - 0x28]
call fcn.0046444f
lea eax, [ebp - 0x40]
call fcn.00463eba
lea esi, [eax + 2]
lea eax, [ebp - 0x28]
call fcn.00463eba
cmp eax, esi
jne 0x45f772
push edi
push 2
pop edi
lea esi, [ebp - 0x28]
call fcn.004640be
cmp eax, edi
jne 0x45f772
xor eax, eax
mov esi, eax
jmp 0x45f777
mov esi, 0xc00d1327
lea eax, [ebp - 0x28]
call fcn.00463afc
lea eax, [ebp - 0x40]
call fcn.00463afc
lea eax, [ebp - 0x34]
call fcn.00463afc
mov edi, dword [ebp - 0x1c]
jmp 0x45f7df
mov edx, reloc.KERNEL32.dll_InitializeCriticalSection
call fcn.0045db8b
test al, al
jne 0x45f7c1
mov edx, reloc.KERNEL32.dll_InitializeCriticalSection
call fcn.0045db8b
test al, al
jne 0x45f7c1
mov eax, dword [ebp - 0x14]
cmp word [ebx], ax
jne 0x45f628
jmp 0x45f5ed
push 4
push 0x42481c
push ebx
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
je 0x45f5ed
mov esi, 0xc00d1327
test esi, esi
js 0x45f7fc
mov eax, ebx
mov ecx, edi
call fcn.0045f3f5
test eax, eax
je 0x45f7fc
mov esi, 0xc00d1325
jmp 0x45f7fc
mov esi, 0xc00d1331
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.004655f1
leave
ret