Function at 0x4c96d0
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 0x4c99d4
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.0045aef8
lea eax, [ebp - 4]
call fcn.004c3200
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0045af30
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9727
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4c974d
push 0
push 1
push 1
mov eax, dword [0x502e20]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e05d0
jmp 0x4c99ac
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9759
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4c976a
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4c976c
xor eax, eax
test al, al
je 0x4c977d
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4c977f
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4c97a7
cmp byte [ebp - 9], 0
jne 0x4c97a7
push 0
push 1
push 1
mov eax, dword [0x502e20]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e05d0
jmp 0x4c99ac
test bl, bl
jne 0x4c9852
cmp byte [ebp - 0xa], 0
jne 0x4c97bc
mov edx, 4
jmp 0x4c97c1
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c97cd
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4c97d5
mov al, 1
jmp 0x4c9809
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4c97ee
mov eax, edx
and ax, 0xffdf
mov esi, 0x4c99e8
cmp ax, 0x100
jae 0x4c9801
movzx eax, al
bt dword [esi], eax
jb 0x4c9805
xor eax, eax
jmp 0x4c9807
mov al, 1
xor al, 1
test al, al
je 0x4c9811
mov al, 1
jmp 0x4c981c
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4c9824
mov al, 1
jmp 0x4c982f
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4c9886
push 0
push 1
push 1
mov eax, dword [0x502e20]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e05d0
jmp 0x4c99ac
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0047e828
cmp esi, eax
jb 0x4c9886
push 0
push 1
push 1
mov eax, dword [0x502e20]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e05d0
jmp 0x4c99ac
mov eax, dword [ebp - 4]
call fcn.004c3348
test al, al
jne 0x4c98aa
mov eax, dword [ebp - 4]
call fcn.004c3370
test al, al
jne 0x4c98aa
mov eax, dword [ebp - 4]
call fcn.004c33b0
test al, al
je 0x4c98c9
push 0
push 1
push 1
mov eax, dword [0x502e20]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e05d0
jmp 0x4c99ac
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, 0x4c9a14
call fcn.0047e6a0
test eax, eax
je 0x4c9921
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4c9a14
call fcn.004c3434
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.004ab628
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e05d0
jmp 0x4c99ac
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0047e5c4
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0047e0c0
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0047e8b4
mov eax, dword [ebp - 8]
call fcn.004c9664
mov eax, dword [ebp - 8]
call fcn.0047e998
test al, al
jne 0x4c9972
push 0
push 1
push 1
mov eax, dword [0x502e20]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e05d0
jmp 0x4c99ac
test bl, bl
jne 0x4c99a8
cmp byte [ebp + 8], 0
jne 0x4c99a8
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4c99a8
push 0
push 1
push 1
mov eax, dword [0x502e20]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e05d0
jmp 0x4c99ac
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c99db
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret