Function at 0x14003d3e0
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 [0x140170608]
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 r12b, al
mov byte [rsp + 0x30], al
mov qword [rsp + 0x40], rax
mov r13b, al
mov byte [rsp + 0x32], al
mov r15d, 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 [0x140170048]
lea rdx, [0x140170048]
lea esi, [rax + 1]
cmp rcx, rdx
je 0x14003d491
test byte [rcx + 0x1c], sil
je 0x14003d491
cmp byte [rcx + 0x19], 4
jb 0x14003d491
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5e]
lea r8, [0x14014bb48]
call fcn.140004c54
xor eax, eax
lea rdx, [0x140170048]
mov byte [rdi], al
mov rcx, qword [0x140170048]
cmp rcx, rdx
je 0x14003d508
test byte [rcx + 0x1c], sil
je 0x14003d4d1
cmp byte [rcx + 0x19], 4
jb 0x14003d4d1
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
mov edx, 0x5f
mov r9, r14
call fcn.140005bdc
mov rcx, qword [0x140170048]
lea rdx, [0x140170048]
cmp rcx, rdx
je 0x14003d508
test byte [rcx + 0x1c], sil
je 0x14003d508
cmp byte [rcx + 0x19], 4
jb 0x14003d508
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
mov edx, 0x60
mov r9d, ebx
call fcn.140004c78
mov rcx, qword [0x140170048]
lea rdx, [0x140170048]
test r14, r14
jne 0x14003d54b
mov ebx, 0x80070057
cmp rcx, rdx
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
lea edi, [r14 + 2]
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
lea edx, [rdi + 0x5f]
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
call fcn.140004c54
jmp 0x14003dbc7
mov edi, 2
cmp ebx, edi
je 0x14003d589
lea eax, [rbx - 4]
cmp eax, edi
ja 0x14003d560
mov r12b, sil
jmp 0x14003d58e
mov ebx, 0x80070057
cmp rcx, rdx
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
mov edx, 0x62
jmp 0x14003d536
mov byte [rsp + 0x30], sil
lea r8, [rsp + 0x32]
xor edx, edx
mov rcx, r14
call fcn.140083be4
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003d60f
cmp ebx, 0x8078011a
je 0x14003d6f4
cmp ebx, 0x8078006f
je 0x14003d6f4
cmp ebx, 0x80780071
je 0x14003d6f4
mov rcx, qword [0x140170048]
lea r8, [0x140170048]
cmp rcx, r8
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
lea edx, [rax + 0x63]
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
mov r9d, ebx
call fcn.140004c78
jmp 0x14003dbc7
cmp byte [rsp + 0x32], al
jne 0x14003d6f4
mov r8d, 0x104
lea rdx, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
test eax, eax
jne 0x14003d6a2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov rcx, qword [0x140170048]
lea r8, [0x140170048]
cmp rcx, r8
je 0x14003d674
test byte [rcx + 0x1c], 1
je 0x14003d674
cmp byte [rcx + 0x19], dil
jb 0x14003d674
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
mov edx, 0x64
mov dword [rsp + 0x20], eax
mov r9, r14
call fcn.140005c44
lea eax, [rsi - 2]
lea rdi, [0x140170048]
cmp eax, 1
jbe 0x14003d693
movzx ebx, si
or ebx, 0x80070000
test esi, esi
cmovle ebx, esi
jmp 0x14003d698
mov ebx, 0x80780057
mov esi, 1
jmp 0x14003dbce
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
sub eax, edi
je 0x14003dbc2
sub eax, esi
je 0x14003d6fe
sub eax, esi
je 0x14003d6dc
lea rdi, [0x140170048]
cmp eax, esi
je 0x14003d6d2
mov ebx, 0x80780057
jmp 0x14003dbce
mov ebx, 0x80780082
jmp 0x14003dbce
lea r8, [0x1401490cc]
mov edx, 0x748
lea rcx, str.base_stor_blbengine_serviceengine.cpp
call fcn.14008388c
mov ebx, 0x80780083
jmp 0x14003dbc7
lea rdx, [rsp + 0x31]
lea rcx, [rsp + 0x60]
call fcn.14012b490
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003d80c
cmp ebx, 0x80780076
jne 0x14003d7c5
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
cmp rcx, rax
je 0x14003d759
test byte [rcx + 0x1c], sil
je 0x14003d759
cmp byte [rcx + 0x19], 4
jb 0x14003d759
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
mov edx, 0x65
call fcn.140004c54
lea r8, [rsp + 0x34]
mov dl, sil
lea rcx, [rsp + 0x60]
call fcn.14012c890
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14003d859
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
cmp rcx, rax
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
mov edx, 0x68
lea r9, [rsp + 0x60]
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
mov dword [rsp + 0x20], ebx
call fcn.140005c44
jmp 0x14003dbc7
cmp ebx, 0x80070003
jne 0x14003d7d7
mov ebx, 0x8078007c
jmp 0x14003dbc7
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
cmp rcx, rax
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
mov edx, 0x66
jmp 0x14003d5f7
cmp byte [rsp + 0x31], al
je 0x14003d759
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
cmp rcx, rax
je 0x14003d84f
test byte [rcx + 0x1c], sil
je 0x14003d84f
cmp byte [rcx + 0x19], dil
jb 0x14003d84f
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x67
lea r8, [0x14014bb48]
call fcn.140005bdc
mov ebx, 0x80780077
jmp 0x14003dbc7
mov eax, dword [rsp + 0x34]
bt eax, 0xb
jae 0x14003d8b0
mov rcx, qword [0x140170048]
lea r8, [0x140170048]
cmp rcx, r8
je 0x14003d8a9
test byte [rcx + 0x1c], sil
je 0x14003d8a9
cmp byte [rcx + 0x19], 4
jb 0x14003d8a9
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x69
mov dword [rsp + 0x20], eax
lea r8, [0x14014bb48]
call fcn.140005c44
mov rcx, qword [0x140170048]
xor edx, edx
mov ebx, 0x807800c7
jmp 0x14003d8b7
mov rcx, qword [0x140170048]
or rsi, 0xffffffffffffffff
test r12b, r12b
je 0x14003d97b
mov rax, rsi
inc rax
cmp word [r14 + rax*2], dx
jne 0x14003d8c7
cmp word [r14 + rax*2 - 2], 0x3a
jne 0x14003d917
lea rax, [0x140170048]
mov esi, 1
cmp rcx, rax
je 0x14003d90d
test byte [rcx + 0x1c], sil
je 0x14003d90d
cmp byte [rcx + 0x19], dil
jb 0x14003d90d
mov rcx, qword [rcx + 0x10]
lea edx, [rsi + 0x69]
mov r9, r14
lea r8, [0x14014bb48]
call fcn.140005bdc
mov ebx, 0x80780057
jmp 0x14003dbc7
mov byte [rsp + 0x31], dl
mov rcx, r14
lea rdx, [rsp + 0x31]
call fcn.1400f6644
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14003d966
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
lea esi, [rdx + 1]
cmp rcx, rax
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
lea edx, [rsi + 0x6a]
jmp 0x14003d5f7
cmp byte [rsp + 0x31], dl
jne 0x14003d97b
mov ebx, 0x80780057
mov esi, 1
jmp 0x14003dbc7
inc rsi
cmp word [r14 + rsi*2], dx
jne 0x14003d97b
mov r8, rsi
lea rdx, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.msvcrt.dll__wcsnicmp]
xor ecx, ecx
test eax, eax
movzx esi, cl
lea eax, [rcx + 1]
cmove esi, eax
cmp byte [rsp + 0x30], cl
je 0x14003d9ba
test sil, sil
jne 0x14003d9ba
mov ebx, 0x80780057
mov esi, eax
jmp 0x14003dbc7
test r12b, r12b
je 0x14003dbb5
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.14008ab80
mov ebx, eax
test eax, eax
jns 0x14003da12
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
mov esi, 1
cmp rcx, rax
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
lea edx, [rsi + 0x6b]
jmp 0x14003d5f7
mov r12, qword [rsp + 0x40]
lea rdx, [rsp + 0x30]
mov rcx, r12
call fcn.14012b364
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x14003da64
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
mov esi, 1
cmp rcx, rax
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
lea edx, [rsi + 0x6c]
jmp 0x14003d5f7
cmp byte [rsp + 0x30], cl
jne 0x14003da74
mov ebx, 0x80780084
jmp 0x14003d971
test r12, r12
je 0x14003db19
lea rdx, [rsp + 0x38]
mov rcx, r12
call fcn.14012bbbc
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x14003dada
mov rcx, qword [0x140170048]
lea rdi, [0x140170048]
cmp rcx, rdi
je 0x14003dad0
test dword [rcx + 0x1c], 0x200
je 0x14003dad0
cmp byte [rcx + 0x19], 3
jb 0x14003dad0
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
mov edx, 0x6e
mov dword [rsp + 0x20], eax
mov r9, r12
call fcn.140005c44
mov r15, qword [rsp + 0x38]
jmp 0x14003d698
mov r15, qword [rsp + 0x38]
test sil, sil
je 0x14003db09
test r15, r15
je 0x14003db09
lea rdx, str.CSVFS
mov rcx, r15
call qword [sym.imp.msvcrt.dll__wcsicmp]
xor ecx, ecx
test eax, eax
jne 0x14003db09
mov ebx, 0x80780193
jmp 0x14003d971
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14003db19
mov qword [rax], r15
mov r15, rcx
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.1400f6720
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003db5e
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
mov esi, 1
cmp rcx, rax
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
lea edx, [rsi + 0x6e]
jmp 0x14003d5f7
cmp byte [rsp + 0x30], al
je 0x14003db6e
mov ebx, 0x80780085
jmp 0x14003d971
lea rdx, [rsp + 0x33]
mov rcx, r14
call fcn.1400f67b8
mov ebx, eax
test eax, eax
jns 0x14003dbb0
mov rcx, qword [0x140170048]
lea rax, [0x140170048]
mov esi, 1
cmp rcx, rax
je 0x14003dbc7
test byte [rcx + 0x1c], sil
je 0x14003dbc7
cmp byte [rcx + 0x19], dil
jb 0x14003dbc7
lea edx, [rsi + 0x6f]
mov r9, r14
jmp 0x14003d7ac
mov r13b, byte [rsp + 0x33]
mov rax, qword [rsp + 0x50]
mov byte [rax], r13b
jmp 0x14003d971
mov ebx, 0x8078012f
lea rdi, [0x140170048]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r15, r15
je 0x14003dbe7
mov rcx, r15
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x140170048]
cmp rcx, rdi
je 0x14003dc14
test byte [rcx + 0x1c], sil
je 0x14003dc14
cmp byte [rcx + 0x19], 4
jb 0x14003dc14
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014bb48]
mov edx, 0x71
call fcn.140004c54
mov eax, ebx
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.140141340
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x280
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret