Function at 0x4cad50
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 0x4cb054
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.0045b160
lea eax, [ebp - 4]
call fcn.004c47b4
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0045b198
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cada7
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4cadcd
push 0
push 1
push 1
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e2544
jmp 0x4cb02c
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cadd9
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4cadea
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4cadec
xor eax, eax
test al, al
je 0x4cadfd
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4cadff
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4cae27
cmp byte [ebp - 9], 0
jne 0x4cae27
push 0
push 1
push 1
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e2544
jmp 0x4cb02c
test bl, bl
jne 0x4caed2
cmp byte [ebp - 0xa], 0
jne 0x4cae3c
mov edx, 4
jmp 0x4cae41
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cae4d
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4cae55
mov al, 1
jmp 0x4cae89
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4cae6e
mov eax, edx
and ax, 0xffdf
mov esi, 0x4cb068
cmp ax, 0x100
jae 0x4cae81
movzx eax, al
bt dword [esi], eax
jb 0x4cae85
xor eax, eax
jmp 0x4cae87
mov al, 1
xor al, 1
test al, al
je 0x4cae91
mov al, 1
jmp 0x4cae9c
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4caea4
mov al, 1
jmp 0x4caeaf
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4caf06
push 0
push 1
push 1
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e2544
jmp 0x4cb02c
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0047ebd4
cmp esi, eax
jb 0x4caf06
push 0
push 1
push 1
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e2544
jmp 0x4cb02c
mov eax, dword [ebp - 4]
call fcn.004c48fc
test al, al
jne 0x4caf2a
mov eax, dword [ebp - 4]
call fcn.004c4924
test al, al
jne 0x4caf2a
mov eax, dword [ebp - 4]
call fcn.004c4964
test al, al
je 0x4caf49
push 0
push 1
push 1
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e2544
jmp 0x4cb02c
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, 0x4cb094
call fcn.0047ea4c
test eax, eax
je 0x4cafa1
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4cb094
call fcn.004c49e8
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.004ac064
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e2544
jmp 0x4cb02c
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0047e970
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0047e46c
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0047ec60
mov eax, dword [ebp - 8]
call fcn.004cace4
mov eax, dword [ebp - 8]
call fcn.0047ed44
test al, al
jne 0x4caff2
push 0
push 1
push 1
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e2544
jmp 0x4cb02c
test bl, bl
jne 0x4cb028
cmp byte [ebp + 8], 0
jne 0x4cb028
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4cb028
push 0
push 1
push 1
mov eax, dword [0x505e5c]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e2544
jmp 0x4cb02c
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cb05b
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret