Function at 0x4c97e8
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 0x4c9aec
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.0045b5dc
lea eax, [ebp - 4]
call fcn.004c3348
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0045b614
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c983f
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4c9865
push 0
push 1
push 1
mov eax, dword [0x506e7c]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e1bbc
jmp 0x4c9ac4
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9871
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4c9882
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4c9884
xor eax, eax
test al, al
je 0x4c9895
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4c9897
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4c98bf
cmp byte [ebp - 9], 0
jne 0x4c98bf
push 0
push 1
push 1
mov eax, dword [0x506e7c]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e1bbc
jmp 0x4c9ac4
test bl, bl
jne 0x4c996a
cmp byte [ebp - 0xa], 0
jne 0x4c98d4
mov edx, 4
jmp 0x4c98d9
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c98e5
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4c98ed
mov al, 1
jmp 0x4c9921
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4c9906
mov eax, edx
and ax, 0xffdf
mov esi, 0x4c9b00
cmp ax, 0x100
jae 0x4c9919
movzx eax, al
bt dword [esi], eax
jb 0x4c991d
xor eax, eax
jmp 0x4c991f
mov al, 1
xor al, 1
test al, al
je 0x4c9929
mov al, 1
jmp 0x4c9934
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4c993c
mov al, 1
jmp 0x4c9947
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4c999e
push 0
push 1
push 1
mov eax, dword [0x506e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e1bbc
jmp 0x4c9ac4
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0047f7ac
cmp esi, eax
jb 0x4c999e
push 0
push 1
push 1
mov eax, dword [0x506e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e1bbc
jmp 0x4c9ac4
mov eax, dword [ebp - 4]
call fcn.004c3490
test al, al
jne 0x4c99c2
mov eax, dword [ebp - 4]
call fcn.004c34b8
test al, al
jne 0x4c99c2
mov eax, dword [ebp - 4]
call fcn.004c34f8
test al, al
je 0x4c99e1
push 0
push 1
push 1
mov eax, dword [0x506e7c]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e1bbc
jmp 0x4c9ac4
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, 0x4c9b2c
call fcn.0047f624
test eax, eax
je 0x4c9a39
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4c9b2c
call fcn.004c357c
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.00483130
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e1bbc
jmp 0x4c9ac4
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0047f548
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0047f044
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0047f838
mov eax, dword [ebp - 8]
call fcn.004c977c
mov eax, dword [ebp - 8]
call fcn.0047f91c
test al, al
jne 0x4c9a8a
push 0
push 1
push 1
mov eax, dword [0x506e7c]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e1bbc
jmp 0x4c9ac4
test bl, bl
jne 0x4c9ac0
cmp byte [ebp + 8], 0
jne 0x4c9ac0
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4c9ac0
push 0
push 1
push 1
mov eax, dword [0x506e7c]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e1bbc
jmp 0x4c9ac4
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c9af3
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret