Function at 0x14002db30
Capabilities:
Get common file path
Get disk information
Get storage device properties

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov rax, qword [0x1402fa010]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
xor r15d, r15d
mov qword [rsp + 0x58], r15
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14002dfe7
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x58], rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x14002dbbb
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140018ec0
mov rbx, qword [rsp + 0x58]
mov edx, 0x104
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401fa6e8
test eax, eax
js 0x14002dfdc
cmp eax, dword [rbx - 0xc]
jg 0x14002dfdc
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r15w
mov qword [rbp - 0x70], r15
mov r8d, 2
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x58]
call fcn.1400290e0
nop
mov qword [rbp - 0x78], r15
mov r8d, 3
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x58]
call fcn.1400290e0
nop
mov qword [rbp - 0x80], r15
lea r8, [rbp - 0x70]
lea rdx, [0x14028fb10]
lea rcx, [rbp - 0x80]
call fcn.140028f40
nop
mov qword [rsp + 0x70], r15
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14002dff2
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 3]
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
mov rsi, 0xffffffffffffffff
cmp rax, rsi
je 0x14002dd81
mov dword [rsp + 0x60], r15d
mov qword [rbp - 0x64], r15
mov dword [rbp - 0x68], r15d
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 8
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea r9d, [rsi + 0xd]
lea r8, [rbp - 0x68]
mov edx, 0x2d1400
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x14002dd78
mov ecx, dword [rsp + 0x4c]
call fcn.140203268
mov rdi, rax
test rax, rax
je 0x14002dd78
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x4c]
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rdi
lea r9d, [rsi + 0xd]
lea r8, [rbp - 0x68]
mov edx, 0x2d1400
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x14002dd70
mov ecx, dword [rdi + 0x18]
lea eax, [rcx - 1]
cmp eax, 0xfffffffd
ja 0x14002dd70
mov edx, ecx
add rdx, rdi
je 0x14002dd70
mov rax, rsi
nop dword [rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x14002dd50
test rax, rax
je 0x14002dd70
mov r8d, eax
lea rcx, [rsp + 0x70]
call fcn.140029a40
mov rbx, qword [rsp + 0x70]
mov rcx, rdi
call fcn.140203254
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x68], r15
call fcn.1400195b0
mov rcx, rax
test rax, rax
je 0x14002dfd1
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038716.0]
add rax, 0x18
mov qword [rsp + 0x68], rax
lea rdi, str.Hello
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.140029850
test al, al
jne 0x14002dde8
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x14002ddd0
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.140029a40
nop
mov dword [rsp + 0x50], r15d
movsxd rax, dword [rbx - 0x10]
test eax, eax
je 0x14002de0c
mov r8, rax
mov rdx, rbx
xor ecx, ecx
call fcn.140021d30
mov edi, eax
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x14002de3d
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x50]
mov r8d, 0x105
lea rdx, [rbp - 0x50]
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov edi, dword [rsp + 0x50]
test edi, edi
jne 0x14002dec5
call fcn.14002d870
mov edi, eax
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x14002dec5
mov qword [rsp + 0x78], r15
lea rcx, [rsp + 0x78]
call fcn.14002d770
nop
mov rdx, qword [rsp + 0x78]
movsxd r8, dword [rdx - 0x10]
xor ecx, ecx
call fcn.140021d30
mov edi, eax
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002de9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
mov dword [rsp + 0x50], edi
test edi, edi
jne 0x14002dec5
mov rbx, qword [rsp + 0x68]
movsxd rax, dword [rbx - 0x10]
test eax, eax
je 0x14002deca
mov r8, rax
mov rdx, rbx
xor ecx, ecx
call fcn.140021d30
mov edi, eax
mov dword [rsp + 0x50], eax
jmp 0x14002deca
mov rbx, qword [rsp + 0x68]
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002deeb
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002df11
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002df36
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002df5b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002df80
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038716.0]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x14002dfa3
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x140038716.0]
mov eax, edi
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.1401f3bf0
lea r11, [rsp + 0x2d0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80070057
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
nop
mov ecx, 0x80004005
call fcn.140019320
int3