Function at 0x608390
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 0x60868f
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.004f0c70
lea eax, [ebp - 4]
call fcn.006014f4
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004f0cc4
mov eax, dword [ebp - 4]
test eax, eax
je 0x6083e7
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x60840d
push 0
push 1
push 1
mov eax, dword [0x65b454]
mov eax, dword [eax + 0xc8]
mov cl, 2
xor edx, edx
call fcn.0064006c
jmp 0x608667
mov eax, dword [ebp - 4]
test eax, eax
je 0x608419
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x60842a
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x60842c
xor eax, eax
test al, al
je 0x60843d
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x60843f
xor eax, eax
mov ebx, eax
test bl, bl
je 0x608467
cmp byte [ebp - 9], 0
jne 0x608467
push 0
push 1
push 1
mov eax, dword [0x65b454]
mov eax, dword [eax + 0x7c]
mov cl, 2
xor edx, edx
call fcn.0064006c
jmp 0x608667
test bl, bl
jne 0x60850d
cmp byte [ebp - 0xa], 0
jne 0x60847c
mov edx, 4
jmp 0x608481
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x60848d
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x608495
mov al, 1
jmp 0x6084c4
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x6084ae
mov eax, edx
and ax, 0xffdf
mov esi, 0x6086a4
cmp ax, 0xff
ja 0x6084bf
movzx eax, ax
bt dword [esi], eax
setb al
xor al, 1
test al, al
je 0x6084cc
mov al, 1
jmp 0x6084d7
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x6084df
mov al, 1
jmp 0x6084ea
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x608541
push 0
push 1
push 1
mov eax, dword [0x65b454]
mov eax, dword [eax + 0x1bc]
mov cl, 2
xor edx, edx
call fcn.0064006c
jmp 0x608667
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0059a348
cmp esi, eax
jb 0x608541
push 0
push 1
push 1
mov eax, dword [0x65b454]
mov eax, dword [eax + 0x1bc]
mov cl, 2
xor edx, edx
call fcn.0064006c
jmp 0x608667
mov eax, dword [ebp - 4]
call fcn.0060163c
test al, al
jne 0x608565
mov eax, dword [ebp - 4]
call fcn.00601664
test al, al
jne 0x608565
mov eax, dword [ebp - 4]
call fcn.006016a4
test al, al
je 0x608584
push 0
push 1
push 1
mov eax, dword [0x65b454]
mov eax, dword [eax + 0x1ac]
mov cl, 2
xor edx, edx
call fcn.0064006c
jmp 0x608667
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x7fffffff
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00409140
mov edx, dword [ebp - 0x10]
mov eax, 0x6086d0
call fcn.0059a1c8
test eax, eax
je 0x6085dc
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x6086d0
call fcn.00601728
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 0xb
call fcn.005a1198
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.0064006c
jmp 0x608667
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0059a0f4
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.00599bf0
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0059a3d4
mov eax, dword [ebp - 8]
call fcn.00608324
mov eax, dword [ebp - 8]
call fcn.0059a4f8
test al, al
jne 0x60862d
push 0
push 1
push 1
mov eax, dword [0x65b454]
mov eax, dword [eax + 0x1b0]
mov cl, 2
xor edx, edx
call fcn.0064006c
jmp 0x608667
test bl, bl
jne 0x608663
cmp byte [ebp + 8], 0
jne 0x608663
mov eax, dword [ebp - 8]
call fcn.00408d1c
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x608663
push 0
push 1
push 1
mov eax, dword [0x65b454]
mov eax, dword [eax + 0x78]
mov cl, 2
xor edx, edx
call fcn.0064006c
jmp 0x608667
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x608696
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00407cb8
lea eax, [ebp - 8]
mov edx, 2
call fcn.00407cb8
ret