Function at 0x4656c0
Capabilities:
Get disk information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
push ebx
push esi
push edi
call fcn.0041f527
lea eax, [esp + 0x78]
push eax
call fcn.00443850
mov esi, dword [esp + 0x7c]
add esp, 4
push 0x2c
push esi
call dword [sym.imp.SHLWAPI.dll_StrChrW]
xor edi, edi
cmp eax, edi
mov byte [esp + 0x78], 0
je 0x465744
mov word [eax], di
lea ecx, [esp + 0x10]
add eax, 2
push ecx
mov dword [esp + 0x14], eax
call fcn.00443850
mov edx, dword [esp + 0x14]
xor eax, eax
mov ax, word [edx]
add esp, 4
and eax, 0xffdf
cmp eax, 0x52
jne 0x465721
mov byte [esp + 0x78], 2
jmp 0x465744
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x14], edi
call fcn.0044ce90
mov eax, dword [esp + 0x14]
add esp, 8
cmp eax, edi
je 0x465744
mov byte [esp + 0x78], 1
mov ax, word [esi]
xor ebx, ebx
cmp ax, 0x43
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edi
mov ecx, 0x2d
jne 0x46576c
cmp word [esi + 2], cx
jne 0x46576c
mov dword [esp + 0x10], 1
jmp 0x465790
cmp ax, 0x55
jne 0x465782
cmp word [esi + 2], cx
jne 0x465782
mov dword [esp + 0xc], 1
jmp 0x465790
cmp ax, di
je 0x465790
cmp word [esi + 2], 0x3a
jne 0x465790
mov ebx, eax
cmp bx, di
mov eax, dword [0x4f94d0]
mov ecx, dword [0x4f94d4]
mov edx, dword [0x4f94d8]
mov dword [esp + 0x30], eax
mov eax, dword [0x4f94dc]
mov dword [esp + 0x34], ecx
mov ecx, dword [0x4f94e0]
mov dword [esp + 0x38], edx
mov edx, dword [0x4f4c44]
mov dword [esp + 0x3c], eax
mov eax, dword [0x4f4c48]
mov dword [esp + 0x40], ecx
mov ecx, dword [0x4f4c4c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
je 0x46584d
movsx dx, bl
lea eax, [esp + 0x18]
push eax
mov word [esp + 0x1c], bx
mov word [esp + 0x3c], dx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
lea ecx, [esp + 0x30]
push edi
push ecx
mov esi, eax
call fcn.0044b680
add esp, 8
cmp esi, 5
jne 0x46583b
mov cl, byte [esp + 0x78]
cmp cl, 2
jne 0x46581e
cmp eax, 7
je 0x46583b
xor edx, edx
cmp cl, 1
setne dl
push edx
push ebx
call fcn.004552e0
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 4
mov esi, ebx
call fcn.00465630
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 4
cmp word [esp + 0x10], di
jne 0x465864
cmp word [esp + 0xc], di
je 0x465a06
mov byte [esp + 0x78], 0
push ebp
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ebp, dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x5d], eax
mov dword [esp + 0x61], eax
mov dword [esp + 0x65], eax
mov dword [esp + 0x69], eax
mov dword [esp + 0x6d], eax
mov dword [esp + 0x71], eax
mov byte [esp + 0x5c], 0
mov byte [esp + 0x75], al
xor bl, bl
lea ebx, [ebx]
mov eax, dword [esp + 0x18]
mov edx, 1
mov ecx, edi
shl edx, cl
test eax, edx
je 0x4659a9
mov eax, dword [0x4f94d8]
mov ecx, dword [0x4f94d0]
mov edx, dword [0x4f94d4]
mov dword [esp + 0x50], eax
mov eax, dword [0x4f4c44]
mov dword [esp + 0x28], eax
movsx ax, bl
mov dword [esp + 0x48], ecx
mov ecx, dword [0x4f94dc]
mov dword [esp + 0x4c], edx
mov edx, dword [0x4f94e0]
mov dword [esp + 0x54], ecx
mov ecx, dword [0x4f4c48]
add eax, 0x41
mov word [esp + 0x50], ax
mov word [esp + 0x28], ax
mov dword [esp + 0x58], edx
mov edx, dword [0x4f4c4c]
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
call ebp
cmp bl, 2
mov esi, eax
jge 0x46592b
cmp esi, 2
je 0x4659a9
cmp word [esp + 0x10], 0
je 0x46593f
cmp esi, 5
jne 0x465944
cmp byte [esp + 0x7c], 2
jmp 0x46594c
cmp esi, 5
je 0x46594e
cmp esi, 2
je 0x46594e
cmp esi, 3
jne 0x4659a9
cmp word [esp + 0x14], 0
je 0x46595b
cmp esi, 5
jne 0x4659a9
lea ecx, [esp + 0x48]
push 0
push ecx
call fcn.0044b680
add esp, 8
cmp word [esp + 0x10], 0
je 0x465988
cmp eax, 7
jne 0x4659a9
cmp esi, 5
jne 0x465983
cmp byte [esp + 0x7c], 2
jne 0x4659a9
mov byte [esp + edi + 0x5c], 0x45
cmp word [esp + 0x14], 0
je 0x4659a9
cmp esi, 5
jne 0x4659a9
cmp byte [esp + 0x7c], 2
jne 0x4659a3
cmp eax, 7
mov al, 0x45
je 0x4659a5
mov al, 0x43
mov byte [esp + edi + 0x5c], al
inc bl
inc edi
cmp bl, 0x1a
jl 0x4658a0
xor bl, bl
lea edi, [esp + 0x5c]
pop ebp
lea esp, [esp]
mov al, byte [edi]
cmp al, 0x43
jne 0x4659ee
mov cl, byte [esp + 0x78]
movsx dx, bl
xor eax, eax
add edx, 0x41
cmp cl, 1
setne al
mov word [esp + 0x38], dx
mov ecx, dword [esp + 0x38]
push eax
push ecx
call fcn.004552e0
add esp, 8
jmp 0x4659fe
cmp al, 0x45
jne 0x4659fe
movsx si, bl
add esi, 0x41
call fcn.00465630
inc bl
inc edi
cmp bl, 0x1a
jl 0x4659c0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 4