Function at 0x14003ec60
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 [0x14017a608]
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 [0x14017a048]
lea rdx, [0x14017a048]
lea esi, [rax + 1]
cmp rcx, rdx
je 0x14003ed11
test byte [rcx + 0x1c], sil
je 0x14003ed11
cmp byte [rcx + 0x19], 4
jb 0x14003ed11
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5e]
lea r8, [0x140155bf8]
call fcn.140004b70
xor eax, eax
lea rdx, [0x14017a048]
mov byte [rdi], al
mov rcx, qword [0x14017a048]
cmp rcx, rdx
je 0x14003ed88
test byte [rcx + 0x1c], sil
je 0x14003ed51
cmp byte [rcx + 0x19], 4
jb 0x14003ed51
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
mov edx, 0x5f
mov r9, r14
call fcn.140005c30
mov rcx, qword [0x14017a048]
lea rdx, [0x14017a048]
cmp rcx, rdx
je 0x14003ed88
test byte [rcx + 0x1c], sil
je 0x14003ed88
cmp byte [rcx + 0x19], 4
jb 0x14003ed88
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
mov edx, 0x60
mov r9d, ebx
call fcn.140004b9c
mov rcx, qword [0x14017a048]
lea rdx, [0x14017a048]
test r14, r14
jne 0x14003edcb
mov ebx, 0x80070057
cmp rcx, rdx
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
lea edi, [r14 + 2]
cmp byte [rcx + 0x19], dil
jb 0x14003f452
lea edx, [rdi + 0x5f]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
call fcn.140004b70
jmp 0x14003f452
mov edi, 2
cmp ebx, edi
je 0x14003ee09
lea eax, [rbx - 4]
cmp eax, edi
ja 0x14003ede0
mov r15b, sil
jmp 0x14003ee0e
mov ebx, 0x80070057
cmp rcx, rdx
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
mov edx, 0x62
jmp 0x14003edb6
mov byte [rsp + 0x30], sil
lea r8, [rsp + 0x32]
xor edx, edx
mov rcx, r14
call fcn.140087a5c
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003ee8f
cmp ebx, 0x8078011a
je 0x14003ef86
cmp ebx, 0x8078006f
je 0x14003ef86
cmp ebx, 0x80780071
je 0x14003ef86
mov rcx, qword [0x14017a048]
lea r8, [0x14017a048]
cmp rcx, r8
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
lea edx, [rax + 0x63]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
mov r9d, ebx
call fcn.140004b9c
jmp 0x14003f452
cmp byte [rsp + 0x32], al
jne 0x14003ef86
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 0x14003ef2e
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov esi, eax
mov rcx, qword [0x14017a048]
lea r8, [0x14017a048]
cmp rcx, r8
je 0x14003ef00
test byte [rcx + 0x1c], 1
je 0x14003ef00
cmp byte [rcx + 0x19], dil
jb 0x14003ef00
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
mov edx, 0x64
mov dword [rsp + 0x20], eax
mov r9, r14
call fcn.140005ca0
lea eax, [rsi - 2]
lea rdi, [0x14017a048]
cmp eax, 1
jbe 0x14003ef1f
movzx ebx, si
or ebx, 0x80070000
test esi, esi
cmovle ebx, esi
jmp 0x14003ef24
mov ebx, 0x80780057
mov esi, 1
jmp 0x14003f459
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
nop dword [rax + rax]
sub eax, edi
je 0x14003f44d
sub eax, esi
je 0x14003ef90
sub eax, esi
je 0x14003ef6e
lea rdi, [0x14017a048]
cmp eax, esi
je 0x14003ef64
mov ebx, 0x80780057
jmp 0x14003f459
mov ebx, 0x80780082
jmp 0x14003f459
lea r8, [0x140153164]
mov edx, 0x748
lea rcx, str.base_stor_blbengine_serviceengine.cpp
call fcn.1400876c8
mov ebx, 0x80780083
jmp 0x14003f452
lea rdx, [rsp + 0x31]
lea rcx, [rsp + 0x60]
call fcn.140134b40
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003f09e
cmp ebx, 0x80780076
jne 0x14003f057
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
cmp rcx, rax
je 0x14003efeb
test byte [rcx + 0x1c], sil
je 0x14003efeb
cmp byte [rcx + 0x19], 4
jb 0x14003efeb
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
mov edx, 0x65
call fcn.140004b70
lea r8, [rsp + 0x34]
mov dl, sil
lea rcx, [rsp + 0x60]
call fcn.14013603c
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14003f0eb
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
cmp rcx, rax
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
mov edx, 0x68
lea r9, [rsp + 0x60]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
mov dword [rsp + 0x20], ebx
call fcn.140005ca0
jmp 0x14003f452
cmp ebx, 0x80070003
jne 0x14003f069
mov ebx, 0x8078007c
jmp 0x14003f452
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
cmp rcx, rax
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
mov edx, 0x66
jmp 0x14003ee77
cmp byte [rsp + 0x31], al
je 0x14003efeb
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
cmp rcx, rax
je 0x14003f0e1
test byte [rcx + 0x1c], sil
je 0x14003f0e1
cmp byte [rcx + 0x19], dil
jb 0x14003f0e1
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x67
lea r8, [0x140155bf8]
call fcn.140005c30
mov ebx, 0x80780077
jmp 0x14003f452
mov eax, dword [rsp + 0x34]
bt eax, 0xb
jae 0x14003f142
mov rcx, qword [0x14017a048]
lea r8, [0x14017a048]
cmp rcx, r8
je 0x14003f13b
test byte [rcx + 0x1c], sil
je 0x14003f13b
cmp byte [rcx + 0x19], 4
jb 0x14003f13b
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x69
mov dword [rsp + 0x20], eax
lea r8, [0x140155bf8]
call fcn.140005ca0
mov rcx, qword [0x14017a048]
xor edx, edx
mov ebx, 0x807800c7
jmp 0x14003f149
mov rcx, qword [0x14017a048]
or rsi, 0xffffffffffffffff
test r15b, r15b
je 0x14003f20d
mov rax, rsi
inc rax
cmp word [r14 + rax*2], dx
jne 0x14003f159
cmp word [r14 + rax*2 - 2], 0x3a
jne 0x14003f1a9
lea rax, [0x14017a048]
mov esi, 1
cmp rcx, rax
je 0x14003f19f
test byte [rcx + 0x1c], sil
je 0x14003f19f
cmp byte [rcx + 0x19], dil
jb 0x14003f19f
mov rcx, qword [rcx + 0x10]
lea edx, [rsi + 0x69]
mov r9, r14
lea r8, [0x140155bf8]
call fcn.140005c30
mov ebx, 0x80780057
jmp 0x14003f452
mov byte [rsp + 0x31], dl
mov rcx, r14
lea rdx, [rsp + 0x31]
call fcn.1400fdf50
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14003f1f8
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
lea esi, [rdx + 1]
cmp rcx, rax
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
lea edx, [rsi + 0x6a]
jmp 0x14003ee77
cmp byte [rsp + 0x31], dl
jne 0x14003f20d
mov ebx, 0x80780057
mov esi, 1
jmp 0x14003f452
inc rsi
cmp word [r14 + rsi*2], dx
jne 0x14003f20d
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 0x14003f252
test sil, sil
jne 0x14003f252
mov ebx, 0x80780057
mov esi, eax
jmp 0x14003f452
test r15b, r15b
je 0x14003f440
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.14008efd4
mov ebx, eax
test eax, eax
jns 0x14003f2aa
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
mov esi, 1
cmp rcx, rax
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
lea edx, [rsi + 0x6b]
jmp 0x14003ee77
mov r15, qword [rsp + 0x40]
lea rdx, [rsp + 0x30]
mov rcx, r15
call fcn.1401349f0
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x14003f2fc
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
mov esi, 1
cmp rcx, rax
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
lea edx, [rsi + 0x6c]
jmp 0x14003ee77
cmp byte [rsp + 0x30], cl
jne 0x14003f30c
mov ebx, 0x80780084
jmp 0x14003f203
test r15, r15
je 0x14003f3a4
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.1401352f8
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x14003f372
mov rcx, qword [0x14017a048]
lea rdi, [0x14017a048]
cmp rcx, rdi
je 0x14003f368
test dword [rcx + 0x1c], 0x200
je 0x14003f368
cmp byte [rcx + 0x19], 3
jb 0x14003f368
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
mov edx, 0x6e
mov dword [rsp + 0x20], eax
mov r9, r15
call fcn.140005ca0
mov r13, qword [rsp + 0x38]
jmp 0x14003ef24
mov r13, qword [rsp + 0x38]
test sil, sil
je 0x14003f394
mov rcx, r13
call fcn.14008c504
xor ecx, ecx
test al, al
je 0x14003f394
mov ebx, 0x80780193
jmp 0x14003f203
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14003f3a4
mov qword [rax], r13
mov r13, rcx
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.1400fe03c
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003f3e9
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
mov esi, 1
cmp rcx, rax
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
lea edx, [rsi + 0x6e]
jmp 0x14003ee77
cmp byte [rsp + 0x30], al
je 0x14003f3f9
mov ebx, 0x80780085
jmp 0x14003f203
lea rdx, [rsp + 0x33]
mov rcx, r14
call fcn.1400fe0e4
mov ebx, eax
test eax, eax
jns 0x14003f43b
mov rcx, qword [0x14017a048]
lea rax, [0x14017a048]
mov esi, 1
cmp rcx, rax
je 0x14003f452
test byte [rcx + 0x1c], sil
je 0x14003f452
cmp byte [rcx + 0x19], dil
jb 0x14003f452
lea edx, [rsi + 0x6f]
mov r9, r14
jmp 0x14003f03e
mov r12b, byte [rsp + 0x33]
mov rax, qword [rsp + 0x50]
mov byte [rax], r12b
jmp 0x14003f203
mov ebx, 0x8078012f
lea rdi, [0x14017a048]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
test r13, r13
je 0x14003f47e
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14017a048]
cmp rcx, rdi
je 0x14003f4ab
test byte [rcx + 0x1c], sil
je 0x14003f4ab
cmp byte [rcx + 0x19], 4
jb 0x14003f4ab
mov rcx, qword [rcx + 0x10]
lea r8, [0x140155bf8]
mov edx, 0x71
call fcn.140004b70
mov eax, ebx
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.14014b700
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x280
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret