Function at 0x4c9c84
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 0x4c9f88
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.0045aff4
lea eax, [ebp - 4]
call fcn.004c37e4
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0045b02c
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9cdb
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4c9d01
push 0
push 1
push 1
mov eax, dword [0x505e80]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e1f40
jmp 0x4c9f60
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9d0d
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4c9d1e
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4c9d20
xor eax, eax
test al, al
je 0x4c9d31
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4c9d33
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4c9d5b
cmp byte [ebp - 9], 0
jne 0x4c9d5b
push 0
push 1
push 1
mov eax, dword [0x505e80]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e1f40
jmp 0x4c9f60
test bl, bl
jne 0x4c9e06
cmp byte [ebp - 0xa], 0
jne 0x4c9d70
mov edx, 4
jmp 0x4c9d75
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9d81
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4c9d89
mov al, 1
jmp 0x4c9dbd
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4c9da2
mov eax, edx
and ax, 0xffdf
mov esi, 0x4c9f9c
cmp ax, 0x100
jae 0x4c9db5
movzx eax, al
bt dword [esi], eax
jb 0x4c9db9
xor eax, eax
jmp 0x4c9dbb
mov al, 1
xor al, 1
test al, al
je 0x4c9dc5
mov al, 1
jmp 0x4c9dd0
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4c9dd8
mov al, 1
jmp 0x4c9de3
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4c9e3a
push 0
push 1
push 1
mov eax, dword [0x505e80]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e1f40
jmp 0x4c9f60
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0047e924
cmp esi, eax
jb 0x4c9e3a
push 0
push 1
push 1
mov eax, dword [0x505e80]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e1f40
jmp 0x4c9f60
mov eax, dword [ebp - 4]
call fcn.004c392c
test al, al
jne 0x4c9e5e
mov eax, dword [ebp - 4]
call fcn.004c3954
test al, al
jne 0x4c9e5e
mov eax, dword [ebp - 4]
call fcn.004c3994
test al, al
je 0x4c9e7d
push 0
push 1
push 1
mov eax, dword [0x505e80]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e1f40
jmp 0x4c9f60
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, 0x4c9fc8
call fcn.0047e79c
test eax, eax
je 0x4c9ed5
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4c9fc8
call fcn.004c3a18
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.004ab7d4
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e1f40
jmp 0x4c9f60
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0047e6c0
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0047e1bc
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0047e9b0
mov eax, dword [ebp - 8]
call fcn.004c9c18
mov eax, dword [ebp - 8]
call fcn.0047ea94
test al, al
jne 0x4c9f26
push 0
push 1
push 1
mov eax, dword [0x505e80]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e1f40
jmp 0x4c9f60
test bl, bl
jne 0x4c9f5c
cmp byte [ebp + 8], 0
jne 0x4c9f5c
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4c9f5c
push 0
push 1
push 1
mov eax, dword [0x505e80]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e1f40
jmp 0x4c9f60
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c9f8f
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret