Function at 0x4c9eb8
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 0x4ca1bc
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.0045bcac
lea eax, [ebp - 4]
call fcn.004c3a18
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0045bce4
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9f0f
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4c9f35
push 0
push 1
push 1
mov eax, dword [0x507e7c]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e228c
jmp 0x4ca194
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9f41
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4c9f52
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4c9f54
xor eax, eax
test al, al
je 0x4c9f65
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4c9f67
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4c9f8f
cmp byte [ebp - 9], 0
jne 0x4c9f8f
push 0
push 1
push 1
mov eax, dword [0x507e7c]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e228c
jmp 0x4ca194
test bl, bl
jne 0x4ca03a
cmp byte [ebp - 0xa], 0
jne 0x4c9fa4
mov edx, 4
jmp 0x4c9fa9
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4c9fb5
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4c9fbd
mov al, 1
jmp 0x4c9ff1
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4c9fd6
mov eax, edx
and ax, 0xffdf
mov esi, 0x4ca1d0
cmp ax, 0x100
jae 0x4c9fe9
movzx eax, al
bt dword [esi], eax
jb 0x4c9fed
xor eax, eax
jmp 0x4c9fef
mov al, 1
xor al, 1
test al, al
je 0x4c9ff9
mov al, 1
jmp 0x4ca004
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4ca00c
mov al, 1
jmp 0x4ca017
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4ca06e
push 0
push 1
push 1
mov eax, dword [0x507e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e228c
jmp 0x4ca194
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0047fe7c
cmp esi, eax
jb 0x4ca06e
push 0
push 1
push 1
mov eax, dword [0x507e7c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e228c
jmp 0x4ca194
mov eax, dword [ebp - 4]
call fcn.004c3b60
test al, al
jne 0x4ca092
mov eax, dword [ebp - 4]
call fcn.004c3b88
test al, al
jne 0x4ca092
mov eax, dword [ebp - 4]
call fcn.004c3bc8
test al, al
je 0x4ca0b1
push 0
push 1
push 1
mov eax, dword [0x507e7c]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e228c
jmp 0x4ca194
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, 0x4ca1fc
call fcn.0047fcf4
test eax, eax
je 0x4ca109
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4ca1fc
call fcn.004c3c4c
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.00483800
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e228c
jmp 0x4ca194
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0047fc18
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0047f714
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0047ff08
mov eax, dword [ebp - 8]
call fcn.004c9e4c
mov eax, dword [ebp - 8]
call fcn.0047ffec
test al, al
jne 0x4ca15a
push 0
push 1
push 1
mov eax, dword [0x507e7c]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e228c
jmp 0x4ca194
test bl, bl
jne 0x4ca190
cmp byte [ebp + 8], 0
jne 0x4ca190
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4ca190
push 0
push 1
push 1
mov eax, dword [0x507e7c]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e228c
jmp 0x4ca194
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ca1c3
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret