Function at 0x14003edd0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x14017b608]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov rax, qword [rbp + 0x1e0]
mov rdi, r9
mov qword [rsp + 0x48], rax
mov ebx, r8d
xor eax, eax
mov qword [rsp + 0x50], r9
mov r15b, al
mov byte [rsp + 0x30], al
mov qword [rsp + 0x40], rax
mov r12b, al
mov byte [rsp + 0x32], al
mov r13d, eax
mov byte [rsp + 0x33], al
mov r14, rdx
mov byte [rsp + 0x31], al
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x38], rax
mov rcx, qword [0x14017b048]
lea rdx, [0x14017b048]
lea esi, [rax + 1]
cmp rcx, rdx
je 0x14003ee81
test byte [rcx + 0x1c], sil
je 0x14003ee81
cmp byte [rcx + 0x19], 4
jb 0x14003ee81
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5e]
lea r8, [0x140156d68]
call fcn.140004c10
xor eax, eax
lea rdx, [0x14017b048]
mov byte [rdi], al
mov rcx, qword [0x14017b048]
cmp rcx, rdx
je 0x14003eef8
test byte [rcx + 0x1c], sil
je 0x14003eec1
cmp byte [rcx + 0x19], 4
jb 0x14003eec1
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
mov edx, 0x5f
mov r9, r14
call fcn.140005cd0
mov rcx, qword [0x14017b048]
lea rdx, [0x14017b048]
cmp rcx, rdx
je 0x14003eef8
test byte [rcx + 0x1c], sil
je 0x14003eef8
cmp byte [rcx + 0x19], 4
jb 0x14003eef8
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
mov edx, 0x60
mov r9d, ebx
call fcn.140004c3c
mov rcx, qword [0x14017b048]
lea rdx, [0x14017b048]
test r14, r14
jne 0x14003ef3b
mov ebx, 0x80070057
cmp rcx, rdx
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
lea edi, [r14 + 2]
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
lea edx, [rdi + 0x5f]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
call fcn.140004c10
jmp 0x14003f5c2
mov edi, 2
cmp ebx, edi
je 0x14003ef79
lea eax, [rbx - 4]
cmp eax, edi
ja 0x14003ef50
mov r15b, sil
jmp 0x14003ef7e
mov ebx, 0x80070057
cmp rcx, rdx
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
mov edx, 0x62
jmp 0x14003ef26
mov byte [rsp + 0x30], sil
lea r8, [rsp + 0x32]
xor edx, edx
mov rcx, r14
call fcn.140087e9c
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003efff
cmp ebx, 0x8078011a
je 0x14003f0f6
cmp ebx, 0x8078006f
je 0x14003f0f6
cmp ebx, 0x80780071
je 0x14003f0f6
mov rcx, qword [0x14017b048]
lea r8, [0x14017b048]
cmp rcx, r8
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
lea edx, [rax + 0x63]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
mov r9d, ebx
call fcn.140004c3c
jmp 0x14003f5c2
cmp byte [rsp + 0x32], al
jne 0x14003f0f6
mov r8d, 0x104
lea rdx, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
nop dword [rax + rax]
test eax, eax
jne 0x14003f09e
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov esi, eax
mov rcx, qword [0x14017b048]
lea r8, [0x14017b048]
cmp rcx, r8
je 0x14003f070
test byte [rcx + 0x1c], 1
je 0x14003f070
cmp byte [rcx + 0x19], dil
jb 0x14003f070
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
mov edx, 0x64
mov dword [rsp + 0x20], eax
mov r9, r14
call fcn.140005d40
lea eax, [rsi - 2]
lea rdi, [0x14017b048]
cmp eax, 1
jbe 0x14003f08f
movzx ebx, si
or ebx, 0x80070000
test esi, esi
cmovle ebx, esi
jmp 0x14003f094
mov ebx, 0x80780057
mov esi, 1
jmp 0x14003f5c9
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
nop dword [rax + rax]
sub eax, edi
je 0x14003f5bd
sub eax, esi
je 0x14003f100
sub eax, esi
je 0x14003f0de
lea rdi, [0x14017b048]
cmp eax, esi
je 0x14003f0d4
mov ebx, 0x80780057
jmp 0x14003f5c9
mov ebx, 0x80780082
jmp 0x14003f5c9
lea r8, [0x1401542d4]
mov edx, 0x748
lea rcx, str.base_stor_blbengine_serviceengine.cpp
call fcn.140087b08
mov ebx, 0x80780083
jmp 0x14003f5c2
lea rdx, [rsp + 0x31]
lea rcx, [rsp + 0x60]
call fcn.140134fa0
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003f20e
cmp ebx, 0x80780076
jne 0x14003f1c7
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
cmp rcx, rax
je 0x14003f15b
test byte [rcx + 0x1c], sil
je 0x14003f15b
cmp byte [rcx + 0x19], 4
jb 0x14003f15b
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
mov edx, 0x65
call fcn.140004c10
lea r8, [rsp + 0x34]
mov dl, sil
lea rcx, [rsp + 0x60]
call fcn.14013649c
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14003f25b
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
cmp rcx, rax
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
mov edx, 0x68
lea r9, [rsp + 0x60]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
mov dword [rsp + 0x20], ebx
call fcn.140005d40
jmp 0x14003f5c2
cmp ebx, 0x80070003
jne 0x14003f1d9
mov ebx, 0x8078007c
jmp 0x14003f5c2
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
cmp rcx, rax
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
mov edx, 0x66
jmp 0x14003efe7
cmp byte [rsp + 0x31], al
je 0x14003f15b
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
cmp rcx, rax
je 0x14003f251
test byte [rcx + 0x1c], sil
je 0x14003f251
cmp byte [rcx + 0x19], dil
jb 0x14003f251
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x67
lea r8, [0x140156d68]
call fcn.140005cd0
mov ebx, 0x80780077
jmp 0x14003f5c2
mov eax, dword [rsp + 0x34]
bt eax, 0xb
jae 0x14003f2b2
mov rcx, qword [0x14017b048]
lea r8, [0x14017b048]
cmp rcx, r8
je 0x14003f2ab
test byte [rcx + 0x1c], sil
je 0x14003f2ab
cmp byte [rcx + 0x19], 4
jb 0x14003f2ab
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x69
mov dword [rsp + 0x20], eax
lea r8, [0x140156d68]
call fcn.140005d40
mov rcx, qword [0x14017b048]
xor edx, edx
mov ebx, 0x807800c7
jmp 0x14003f2b9
mov rcx, qword [0x14017b048]
or rsi, 0xffffffffffffffff
test r15b, r15b
je 0x14003f37d
mov rax, rsi
inc rax
cmp word [r14 + rax*2], dx
jne 0x14003f2c9
cmp word [r14 + rax*2 - 2], 0x3a
jne 0x14003f319
lea rax, [0x14017b048]
mov esi, 1
cmp rcx, rax
je 0x14003f30f
test byte [rcx + 0x1c], sil
je 0x14003f30f
cmp byte [rcx + 0x19], dil
jb 0x14003f30f
mov rcx, qword [rcx + 0x10]
lea edx, [rsi + 0x69]
mov r9, r14
lea r8, [0x140156d68]
call fcn.140005cd0
mov ebx, 0x80780057
jmp 0x14003f5c2
mov byte [rsp + 0x31], dl
mov rcx, r14
lea rdx, [rsp + 0x31]
call fcn.1400fe390
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14003f368
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
lea esi, [rdx + 1]
cmp rcx, rax
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
lea edx, [rsi + 0x6a]
jmp 0x14003efe7
cmp byte [rsp + 0x31], dl
jne 0x14003f37d
mov ebx, 0x80780057
mov esi, 1
jmp 0x14003f5c2
inc rsi
cmp word [r14 + rsi*2], dx
jne 0x14003f37d
mov r8, rsi
lea rdx, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.msvcrt.dll__wcsnicmp]
nop dword [rax + rax]
xor ecx, ecx
test eax, eax
movzx esi, cl
lea eax, [rcx + 1]
cmove esi, eax
cmp byte [rsp + 0x30], cl
je 0x14003f3c2
test sil, sil
jne 0x14003f3c2
mov ebx, 0x80780057
mov esi, eax
jmp 0x14003f5c2
test r15b, r15b
je 0x14003f5b0
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.14008f414
mov ebx, eax
test eax, eax
jns 0x14003f41a
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
mov esi, 1
cmp rcx, rax
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
lea edx, [rsi + 0x6b]
jmp 0x14003efe7
mov r15, qword [rsp + 0x40]
lea rdx, [rsp + 0x30]
mov rcx, r15
call fcn.140134e50
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x14003f46c
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
mov esi, 1
cmp rcx, rax
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
lea edx, [rsi + 0x6c]
jmp 0x14003efe7
cmp byte [rsp + 0x30], cl
jne 0x14003f47c
mov ebx, 0x80780084
jmp 0x14003f373
test r15, r15
je 0x14003f514
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.140135758
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x14003f4e2
mov rcx, qword [0x14017b048]
lea rdi, [0x14017b048]
cmp rcx, rdi
je 0x14003f4d8
test dword [rcx + 0x1c], 0x200
je 0x14003f4d8
cmp byte [rcx + 0x19], 3
jb 0x14003f4d8
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
mov edx, 0x6e
mov dword [rsp + 0x20], eax
mov r9, r15
call fcn.140005d40
mov r13, qword [rsp + 0x38]
jmp 0x14003f094
mov r13, qword [rsp + 0x38]
test sil, sil
je 0x14003f504
mov rcx, r13
call fcn.14008c944
xor ecx, ecx
test al, al
je 0x14003f504
mov ebx, 0x80780193
jmp 0x14003f373
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14003f514
mov qword [rax], r13
mov r13, rcx
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.1400fe47c
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003f559
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
mov esi, 1
cmp rcx, rax
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
lea edx, [rsi + 0x6e]
jmp 0x14003efe7
cmp byte [rsp + 0x30], al
je 0x14003f569
mov ebx, 0x80780085
jmp 0x14003f373
lea rdx, [rsp + 0x33]
mov rcx, r14
call fcn.1400fe524
mov ebx, eax
test eax, eax
jns 0x14003f5ab
mov rcx, qword [0x14017b048]
lea rax, [0x14017b048]
mov esi, 1
cmp rcx, rax
je 0x14003f5c2
test byte [rcx + 0x1c], sil
je 0x14003f5c2
cmp byte [rcx + 0x19], dil
jb 0x14003f5c2
lea edx, [rsi + 0x6f]
mov r9, r14
jmp 0x14003f1ae
mov r12b, byte [rsp + 0x33]
mov rax, qword [rsp + 0x50]
mov byte [rax], r12b
jmp 0x14003f373
mov ebx, 0x8078012f
lea rdi, [0x14017b048]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
test r13, r13
je 0x14003f5ee
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14017b048]
cmp rcx, rdi
je 0x14003f61b
test byte [rcx + 0x1c], sil
je 0x14003f61b
cmp byte [rcx + 0x19], 4
jb 0x14003f61b
mov rcx, qword [rcx + 0x10]
lea r8, [0x140156d68]
mov edx, 0x71
call fcn.140004c10
mov eax, ebx
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.14014bb60
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x280
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret