Function at 0x4cab94
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 0x4cae98
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.004c45f8
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0045b198
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cabeb
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x4cac11
push 0
push 1
push 1
mov eax, dword [0x505e6c]
mov eax, dword [eax + 0xb4]
mov cl, 2
xor edx, edx
call fcn.004e2734
jmp 0x4cae70
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cac1d
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x4cac2e
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x4cac30
xor eax, eax
test al, al
je 0x4cac41
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x4cac43
xor eax, eax
mov ebx, eax
test bl, bl
je 0x4cac6b
cmp byte [ebp - 9], 0
jne 0x4cac6b
push 0
push 1
push 1
mov eax, dword [0x505e6c]
mov eax, dword [eax + 0x6c]
mov cl, 2
xor edx, edx
call fcn.004e2734
jmp 0x4cae70
test bl, bl
jne 0x4cad16
cmp byte [ebp - 0xa], 0
jne 0x4cac80
mov edx, 4
jmp 0x4cac85
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x4cac91
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x4cac99
mov al, 1
jmp 0x4caccd
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x4cacb2
mov eax, edx
and ax, 0xffdf
mov esi, 0x4caeac
cmp ax, 0x100
jae 0x4cacc5
movzx eax, al
bt dword [esi], eax
jb 0x4cacc9
xor eax, eax
jmp 0x4caccb
mov al, 1
xor al, 1
test al, al
je 0x4cacd5
mov al, 1
jmp 0x4cace0
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x4cace8
mov al, 1
jmp 0x4cacf3
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x4cad4a
push 0
push 1
push 1
mov eax, dword [0x505e6c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e2734
jmp 0x4cae70
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0047ea90
cmp esi, eax
jb 0x4cad4a
push 0
push 1
push 1
mov eax, dword [0x505e6c]
mov eax, dword [eax + 0x19c]
mov cl, 2
xor edx, edx
call fcn.004e2734
jmp 0x4cae70
mov eax, dword [ebp - 4]
call fcn.004c4740
test al, al
jne 0x4cad6e
mov eax, dword [ebp - 4]
call fcn.004c4768
test al, al
jne 0x4cad6e
mov eax, dword [ebp - 4]
call fcn.004c47a8
test al, al
je 0x4cad8d
push 0
push 1
push 1
mov eax, dword [0x505e6c]
mov eax, dword [eax + 0x18c]
mov cl, 2
xor edx, edx
call fcn.004e2734
jmp 0x4cae70
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, 0x4caed8
call fcn.0047e908
test eax, eax
je 0x4cade5
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x4caed8
call fcn.004c482c
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 7
call fcn.004abea8
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.004e2734
jmp 0x4cae70
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0047e82c
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.0047e328
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0047eb1c
mov eax, dword [ebp - 8]
call fcn.004cab28
mov eax, dword [ebp - 8]
call fcn.0047ec00
test al, al
jne 0x4cae36
push 0
push 1
push 1
mov eax, dword [0x505e6c]
mov eax, dword [eax + 0x190]
mov cl, 2
xor edx, edx
call fcn.004e2734
jmp 0x4cae70
test bl, bl
jne 0x4cae6c
cmp byte [ebp + 8], 0
jne 0x4cae6c
mov eax, dword [ebp - 8]
call fcn.004064d4
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x4cae6c
push 0
push 1
push 1
mov eax, dword [0x505e6c]
mov eax, dword [eax + 0x68]
mov cl, 2
xor edx, edx
call fcn.004e2734
jmp 0x4cae70
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cae9f
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00406440
lea eax, [ebp - 8]
mov edx, 2
call fcn.00406440
ret