Function at 0x609fa0
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 0x60a29f
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xb], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.004f0d50
lea eax, [ebp - 4]
call fcn.00603070
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004f0da4
mov eax, dword [ebp - 4]
test eax, eax
je 0x609ff7
sub eax, 4
mov eax, dword [eax]
cmp eax, 0xf0
jle 0x60a01d
push 0
push 1
push 1
mov eax, dword [0x65d45c]
mov eax, dword [eax + 0xc8]
mov cl, 2
xor edx, edx
call fcn.00642144
jmp 0x60a277
mov eax, dword [ebp - 4]
test eax, eax
je 0x60a029
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jl 0x60a03a
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
sete al
jmp 0x60a03c
xor eax, eax
test al, al
je 0x60a04d
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x5c
sete al
jmp 0x60a04f
xor eax, eax
mov ebx, eax
test bl, bl
je 0x60a077
cmp byte [ebp - 9], 0
jne 0x60a077
push 0
push 1
push 1
mov eax, dword [0x65d45c]
mov eax, dword [eax + 0x7c]
mov cl, 2
xor edx, edx
call fcn.00642144
jmp 0x60a277
test bl, bl
jne 0x60a11d
cmp byte [ebp - 0xa], 0
jne 0x60a08c
mov edx, 4
jmp 0x60a091
mov edx, 3
mov eax, dword [ebp - 4]
test eax, eax
je 0x60a09d
sub eax, 4
mov eax, dword [eax]
cmp edx, eax
jle 0x60a0a5
mov al, 1
jmp 0x60a0d4
mov eax, dword [ebp - 4]
movzx edx, word [eax]
mov eax, edx
mov ecx, edx
add ecx, 0xffffff9f
sub cx, 0x1a
jae 0x60a0be
mov eax, edx
and ax, 0xffdf
mov esi, 0x60a2b4
cmp ax, 0xff
ja 0x60a0cf
movzx eax, ax
bt dword [esi], eax
setb al
xor al, 1
test al, al
je 0x60a0dc
mov al, 1
jmp 0x60a0e7
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
setne al
test al, al
je 0x60a0ef
mov al, 1
jmp 0x60a0fa
mov eax, dword [ebp - 4]
cmp word [eax + 4], 0x5c
setne al
test al, al
je 0x60a151
push 0
push 1
push 1
mov eax, dword [0x65d45c]
mov eax, dword [eax + 0x1bc]
mov cl, 2
xor edx, edx
call fcn.00642144
jmp 0x60a277
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
mov dx, 0x5c
mov eax, esi
call fcn.0059a490
cmp esi, eax
jb 0x60a151
push 0
push 1
push 1
mov eax, dword [0x65d45c]
mov eax, dword [eax + 0x1bc]
mov cl, 2
xor edx, edx
call fcn.00642144
jmp 0x60a277
mov eax, dword [ebp - 4]
call fcn.006031b8
test al, al
jne 0x60a175
mov eax, dword [ebp - 4]
call fcn.006031e0
test al, al
jne 0x60a175
mov eax, dword [ebp - 4]
call fcn.00603224
test al, al
je 0x60a194
push 0
push 1
push 1
mov eax, dword [0x65d45c]
mov eax, dword [eax + 0x1ac]
mov cl, 2
xor edx, edx
call fcn.00642144
jmp 0x60a277
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, 0x60a2e0
call fcn.0059a2f8
test eax, eax
je 0x60a1ec
push 0
push 1
push 1
lea edx, [ebp - 0x18]
mov eax, 0x60a2e0
call fcn.006032a8
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
mov al, 0xb
call fcn.005a1448
mov eax, dword [ebp - 0x14]
mov cl, 2
xor edx, edx
call fcn.00642144
jmp 0x60a277
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.0059a210
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.00599cd0
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 8]
call fcn.0059a528
mov eax, dword [ebp - 8]
call fcn.00609f34
mov eax, dword [ebp - 8]
call fcn.0059a658
test al, al
jne 0x60a23d
push 0
push 1
push 1
mov eax, dword [0x65d45c]
mov eax, dword [eax + 0x1b0]
mov cl, 2
xor edx, edx
call fcn.00642144
jmp 0x60a277
test bl, bl
jne 0x60a273
cmp byte [ebp + 8], 0
jne 0x60a273
mov eax, dword [ebp - 8]
call fcn.00408d1c
push eax
call sub.kernel32.dll_GetDriveTypeW
cmp eax, 4
jne 0x60a273
push 0
push 1
push 1
mov eax, dword [0x65d45c]
mov eax, dword [eax + 0x78]
mov cl, 2
xor edx, edx
call fcn.00642144
jmp 0x60a277
mov byte [ebp - 0xb], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x60a2a6
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00407cb8
lea eax, [ebp - 8]
mov edx, 2
call fcn.00407cb8
ret