Function at 0x100099cf4
Capabilities:
Get disk information
Get disk size

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x30
mov r12, r8
mov r13b, dl
mov rbx, rcx
test rcx, rcx
jne 0x100099d30
lea r8, [0x100009be0]
lea rcx, [0x100009b90]
mov edx, 0xe5
call fcn.100099ad8
and qword [rsp + 0x60], 0
or rsi, 0xffffffffffffffff
xor eax, eax
mov rdi, rbx
mov rcx, rsi
mov byte [r12], 0
repne scasw ax, word [rdi]
xor bpl, bpl
not rcx
dec rcx
cmp rcx, 5
jb 0x100099dcf
lea r8d, [rax + 2]
lea rdx, [0x100009bfc]
mov rcx, rbx
call sub.msvcrt.dll__wcsnicmp
test eax, eax
jne 0x100099dcf
cmp word [rbx + 4], 0x2e
je 0x100099d8f
cmp word [rbx + 4], 0x3f
je 0x100099d8f
lea edx, [rsi + 0x5d]
lea rcx, [rbx + 6]
call sub.msvcrt.dll_wcschr
test rax, rax
jne 0x100099dcc
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp rcx, 8
jbe 0x100099dcf
cmp word [rbx + 4], 0x2e
je 0x100099dcc
cmp word [rbx + 4], 0x3f
jne 0x100099dcf
lea rcx, [rbx + 6]
lea r8d, [rax + 5]
lea rdx, [0x10000a1c8]
call sub.msvcrt.dll__wcsnicmp
test eax, eax
jne 0x100099dcf
mov bpl, 1
mov rcx, qword [0x1001653b8]
lea r15, [0x1001653b8]
cmp rcx, r15
je 0x100099e20
test byte [rcx + 0x1c], 1
je 0x100099e20
cmp byte [rcx + 0x19], 5
jb 0x100099e20
mov rcx, qword [rcx + 0x10]
lea rdx, [0x10000a1d4]
test bpl, bpl
lea rax, [0x10000a1d8]
lea r8, [0x100003ae8]
mov r9, rbx
cmovne rax, rdx
mov edx, 0x3d
mov qword [rsp + 0x20], rax
call fcn.10001df38
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.10009b37c
mov rsi, qword [rsp + 0x60]
mov edi, eax
test eax, eax
js 0x10009a017
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 4
jne 0x100099eed
mov rcx, qword [0x1001653b8]
cmp rcx, r15
je 0x100099e7c
test byte [rcx + 0x1c], 1
je 0x100099e7c
cmp byte [rcx + 0x19], 5
jb 0x100099e7c
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 6]
lea r8, [0x100003b28]
mov r9, rbx
call fcn.10001da24
test bpl, bpl
jne 0x100099e8b
mov edi, 0x8078011a
jmp 0x10009a017
test r13b, r13b
je 0x100099ee3
mov rcx, rsi
call fcn.100099bac
mov edi, eax
test eax, eax
jns 0x100099ee3
mov rcx, qword [0x1001653b8]
cmp rcx, r15
je 0x10009a017
test byte [rcx + 0x1c], 1
je 0x10009a017
cmp byte [rcx + 0x19], 4
jb 0x10009a017
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003b28]
mov edx, 0xf
mov r9, rsi
mov dword [rsp + 0x20], eax
call fcn.10001daa4
jmp 0x10009a017
mov byte [r12], 1
jmp 0x10009a017
cmp eax, 1
jne 0x100099fe3
test bpl, bpl
jne 0x100099f2a
mov rcx, qword [0x1001653b8]
cmp rcx, r15
je 0x10009a017
test byte [rcx + 0x1c], al
je 0x10009a017
cmp byte [rcx + 0x19], 5
jb 0x10009a017
lea edx, [rax + 0xa]
mov dword [rsp + 0x20], eax
jmp 0x10009a004
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x100099fac
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x100099fa5
cmp eax, 0x52e
je 0x100099fa5
cmp eax, 0x43
je 0x100099f9e
cmp eax, 0x35
je 0x100099f9e
cmp eax, 3
je 0x100099f9e
mov rcx, qword [0x1001653b8]
cmp rcx, r15
je 0x10009a017
test byte [rcx + 0x1c], 1
je 0x10009a017
cmp byte [rcx + 0x19], 4
jb 0x10009a017
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003b28]
mov edx, 0xc
mov r9d, eax
call fcn.10001c7dc
jmp 0x10009a017
mov edi, 0x80780071
jmp 0x10009a017
mov edi, 0x8078006f
jmp 0x10009a017
mov rcx, qword [0x1001653b8]
cmp rcx, r15
je 0x100099fdc
test byte [rcx + 0x1c], 1
je 0x100099fdc
cmp byte [rcx + 0x19], 2
jb 0x100099fdc
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003b28]
mov edx, 0xd
mov r9, rsi
call fcn.10001da24
mov edi, 0x8000ffff
jmp 0x10009a017
mov rcx, qword [0x1001653b8]
cmp rcx, r15
je 0x10009a017
test byte [rcx + 0x1c], 1
je 0x10009a017
cmp byte [rcx + 0x19], 5
jb 0x10009a017
mov edx, 0xe
mov dword [rsp + 0x20], eax
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003b28]
mov r9, rbx
call fcn.10001daa4
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov eax, edi
add rsp, 0x30
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret