Function at 0x4c91b8
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 0x4c94bc
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.0045ab9c
lea eax, [ebp - 4]
call fcn.004c2d40
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0045abd4
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c920f
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4c9235
push 0
push 1
push 1
mov eax, dword [0x502e18]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004dfbb0
jmp 0x4c9494
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9241
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4c9252
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4c9254
xor eax, eax
test al, al
je 0x4c9265
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4c9267
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4c928f
cmp byte [ebp - 9], 0
jne 0x4c928f
push 0
push 1
push 1
mov eax, dword [0x502e18]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004dfbb0
jmp 0x4c9494
test bl, bl
jne 0x4c933a
cmp byte [ebp - 0xa], 0
jne 0x4c92a4
mov edx, 4
jmp 0x4c92a9
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c92b5
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4c92bd
mov al, 1
jmp 0x4c92f1
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4c92d6
mov eax, edx
and ax, 0xffdf
mov esi, 0x4c94d0
cmp ax, 0x100
jae 0x4c92e9
movzx eax, al
bt dword [esi], eax
jb 0x4c92ed
xor eax, eax
jmp 0x4c92ef
mov al, 1
xor al, 1
test al, al
je 0x4c92f9
mov al, 1
jmp 0x4c9304
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4c930c
mov al, 1
jmp 0x4c9317
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4c936e
push 0
push 1
push 1
mov eax, dword [0x502e18]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004dfbb0
jmp 0x4c9494
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0047e4cc
cmp esi, eax
jb 0x4c936e
push 0
push 1
push 1
mov eax, dword [0x502e18]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004dfbb0
jmp 0x4c9494
mov eax, dword [ebp - 4]
call fcn.004c2e88
test al, al
jne 0x4c9392
mov eax, dword [ebp - 4]
call fcn.004c2eb0
test al, al
jne 0x4c9392
mov eax, dword [ebp - 4]
call fcn.004c2ef0
test al, al
je 0x4c93b1
push 0
push 1
push 1
mov eax, dword [0x502e18]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004dfbb0
jmp 0x4c9494
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x7fffffff
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00406bdc
mov edx, dword [ebp - 0x10]
mov eax, 0x4c94fc
call fcn.0047e344
test eax, eax
je 0x4c9409
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4c94fc
call fcn.004c2f74
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.004ab168
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004dfbb0
jmp 0x4c9494
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0047e268
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0047dd64
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0047e558
mov eax, dword [ebp - 8]
call fcn.004c914c
mov eax, dword [ebp - 8]
call fcn.0047e63c
test al, al
jne 0x4c945a
push 0
push 1
push 1
mov eax, dword [0x502e18]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004dfbb0
jmp 0x4c9494
test bl, bl
jne 0x4c9490
cmp byte [ebp + 8], 0
jne 0x4c9490
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4c9490
push 0
push 1
push 1
mov eax, dword [0x502e18]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004dfbb0
jmp 0x4c9494
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c94c3
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret