Function at 0x4c9cbc
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 0x4c9fc0
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.0045ca58
lea eax, [ebp - 4]
call fcn.004c381c
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0045ca90
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9d13
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4c9d39
push 0
push 1
push 1
mov eax, dword [0x508e7c]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e2090
jmp 0x4c9f98
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9d45
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4c9d56
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4c9d58
xor eax, eax
test al, al
je 0x4c9d69
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4c9d6b
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4c9d93
cmp byte [ebp - 9], 0
jne 0x4c9d93
push 0
push 1
push 1
mov eax, dword [0x508e7c]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e2090
jmp 0x4c9f98
test bl, bl
jne 0x4c9e3e
cmp byte [ebp - 0xa], 0
jne 0x4c9da8
mov edx, 4
jmp 0x4c9dad
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9db9
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4c9dc1
mov al, 1
jmp 0x4c9df5
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4c9dda
mov eax, edx
and ax, 0xffdf
mov esi, 0x4c9fd4
cmp ax, 0x100
jae 0x4c9ded
movzx eax, al
bt dword [esi], eax
jb 0x4c9df1
xor eax, eax
jmp 0x4c9df3
mov al, 1
xor al, 1
test al, al
je 0x4c9dfd
mov al, 1
jmp 0x4c9e08
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4c9e10
mov al, 1
jmp 0x4c9e1b
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4c9e72
push 0
push 1
push 1
mov eax, dword [0x508e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e2090
jmp 0x4c9f98
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.00480388
cmp esi, eax
jb 0x4c9e72
push 0
push 1
push 1
mov eax, dword [0x508e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e2090
jmp 0x4c9f98
mov eax, dword [ebp - 4]
call fcn.004c3964
test al, al
jne 0x4c9e96
mov eax, dword [ebp - 4]
call fcn.004c398c
test al, al
jne 0x4c9e96
mov eax, dword [ebp - 4]
call fcn.004c39cc
test al, al
je 0x4c9eb5
push 0
push 1
push 1
mov eax, dword [0x508e7c]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e2090
jmp 0x4c9f98
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, 0x4ca000
call fcn.00480200
test eax, eax
je 0x4c9f0d
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4ca000
call fcn.004c3a50
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.00484118
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e2090
jmp 0x4c9f98
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.00480124
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0047fc20
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.00480414
mov eax, dword [ebp - 8]
call fcn.004c9c50
mov eax, dword [ebp - 8]
call fcn.004804f8
test al, al
jne 0x4c9f5e
push 0
push 1
push 1
mov eax, dword [0x508e7c]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e2090
jmp 0x4c9f98
test bl, bl
jne 0x4c9f94
cmp byte [ebp + 8], 0
jne 0x4c9f94
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4c9f94
push 0
push 1
push 1
mov eax, dword [0x508e7c]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e2090
jmp 0x4c9f98
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c9fc7
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret