Function at 0x4cffe4
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 0x4d02e8
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.00462f54
lea eax, [ebp - 4]
call fcn.004c9b44
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.00462f8c
mov eax, dword [ebp - 4]
test eax, eax
je 0x4d003b
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4d0061
push 0
push 1
push 1
mov eax, dword [0x528e7c]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e83b8
jmp 0x4d02c0
mov eax, dword [ebp - 4]
test eax, eax
je 0x4d006d
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4d007e
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4d0080
xor eax, eax
test al, al
je 0x4d0091
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4d0093
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4d00bb
cmp byte [ebp - 9], 0
jne 0x4d00bb
push 0
push 1
push 1
mov eax, dword [0x528e7c]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e83b8
jmp 0x4d02c0
test bl, bl
jne 0x4d0166
cmp byte [ebp - 0xa], 0
jne 0x4d00d0
mov edx, 4
jmp 0x4d00d5
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4d00e1
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4d00e9
mov al, 1
jmp 0x4d011d
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4d0102
mov eax, edx
and ax, 0xffdf
mov esi, 0x4d02fc
cmp ax, 0x100
jae 0x4d0115
movzx eax, al
bt dword [esi], eax
jb 0x4d0119
xor eax, eax
jmp 0x4d011b
mov al, 1
xor al, 1
test al, al
je 0x4d0125
mov al, 1
jmp 0x4d0130
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4d0138
mov al, 1
jmp 0x4d0143
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4d019a
push 0
push 1
push 1
mov eax, dword [0x528e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e83b8
jmp 0x4d02c0
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.00486884
cmp esi, eax
jb 0x4d019a
push 0
push 1
push 1
mov eax, dword [0x528e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e83b8
jmp 0x4d02c0
mov eax, dword [ebp - 4]
call fcn.004c9c8c
test al, al
jne 0x4d01be
mov eax, dword [ebp - 4]
call fcn.004c9cb4
test al, al
jne 0x4d01be
mov eax, dword [ebp - 4]
call fcn.004c9cf4
test al, al
je 0x4d01dd
push 0
push 1
push 1
mov eax, dword [0x528e7c]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e83b8
jmp 0x4d02c0
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, 0x4d0328
call fcn.004866fc
test eax, eax
je 0x4d0235
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4d0328
call fcn.004c9d78
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.0048a440
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e83b8
jmp 0x4d02c0
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.00486620
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0048611c
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.00486910
mov eax, dword [ebp - 8]
call fcn.004cff78
mov eax, dword [ebp - 8]
call fcn.004869f4
test al, al
jne 0x4d0286
push 0
push 1
push 1
mov eax, dword [0x528e7c]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e83b8
jmp 0x4d02c0
test bl, bl
jne 0x4d02bc
cmp byte [ebp + 8], 0
jne 0x4d02bc
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4d02bc
push 0
push 1
push 1
mov eax, dword [0x528e7c]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e83b8
jmp 0x4d02c0
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d02ef
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret