Function at 0x4cfc58
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push esi
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], dl
mov ebx, eax
xor eax, eax
push ebp
push 0x4cff5c
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.00462bc8
lea eax, [ebp - 4]
call fcn.004c97b8
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.00462c00
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cfcaf
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4cfcd5
push 0
push 1
push 1
mov eax, dword [0x526e7c]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e802c
jmp 0x4cff34
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cfce1
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4cfcf2
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4cfcf4
xor eax, eax
test al, al
je 0x4cfd05
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4cfd07
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4cfd2f
cmp byte [ebp - 9], 0
jne 0x4cfd2f
push 0
push 1
push 1
mov eax, dword [0x526e7c]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e802c
jmp 0x4cff34
test bl, bl
jne 0x4cfdda
cmp byte [ebp - 0xa], 0
jne 0x4cfd44
mov edx, 4
jmp 0x4cfd49
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cfd55
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4cfd5d
mov al, 1
jmp 0x4cfd91
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4cfd76
mov eax, edx
and ax, 0xffdf
mov esi, 0x4cff70
cmp ax, 0x100
jae 0x4cfd89
movzx eax, al
bt dword [esi], eax
jb 0x4cfd8d
xor eax, eax
jmp 0x4cfd8f
mov al, 1
xor al, 1
test al, al
je 0x4cfd99
mov al, 1
jmp 0x4cfda4
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4cfdac
mov al, 1
jmp 0x4cfdb7
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4cfe0e
push 0
push 1
push 1
mov eax, dword [0x526e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e802c
jmp 0x4cff34
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.004864f8
cmp esi, eax
jb 0x4cfe0e
push 0
push 1
push 1
mov eax, dword [0x526e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e802c
jmp 0x4cff34
mov eax, dword [ebp - 4]
call fcn.004c9900
test al, al
jne 0x4cfe32
mov eax, dword [ebp - 4]
call fcn.004c9928
test al, al
jne 0x4cfe32
mov eax, dword [ebp - 4]
call fcn.004c9968
test al, al
je 0x4cfe51
push 0
push 1
push 1
mov eax, dword [0x526e7c]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e802c
jmp 0x4cff34
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x7fffffff
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00406bec
mov edx, dword [ebp - 0x10]
mov eax, 0x4cff9c
call fcn.00486370
test eax, eax
je 0x4cfea9
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4cff9c
call fcn.004c99ec
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.0048a0b4
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e802c
jmp 0x4cff34
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.00486294
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.00485d90
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.00486584
mov eax, dword [ebp - 8]
call fcn.004cfbec
mov eax, dword [ebp - 8]
call fcn.00486668
test al, al
jne 0x4cfefa
push 0
push 1
push 1
mov eax, dword [0x526e7c]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e802c
jmp 0x4cff34
test bl, bl
jne 0x4cff30
cmp byte [ebp + 8], 0
jne 0x4cff30
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4cff30
push 0
push 1
push 1
mov eax, dword [0x526e7c]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e802c
jmp 0x4cff34
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cff63
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret