Function at 0x14002dc40
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 [0x140300040]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
xor r15d, r15d
mov qword [rsp + 0x58], r15
call fcn.140019590
mov rcx, rax
test rax, rax
je 0x14002e0f7
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038ca6.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 0x14002dccb
mov edx, 0x104
lea rcx, [rsp + 0x58]
call fcn.140018ea0
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.1401fe5d0
test eax, eax
js 0x14002e0ec
cmp eax, dword [rbx - 0xc]
jg 0x14002e0ec
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.140029210
nop
mov qword [rbp - 0x78], r15
mov r8d, 3
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x58]
call fcn.140029210
nop
mov qword [rbp - 0x80], r15
lea r8, [rbp - 0x70]
lea rdx, [0x1402953d0]
lea rcx, [rbp - 0x80]
call fcn.140029070
nop
mov qword [rsp + 0x70], r15
call fcn.140019590
mov rcx, rax
test rax, rax
je 0x14002e102
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038ca6.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 0x14002de91
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 0x14002de88
mov ecx, dword [rsp + 0x4c]
call fcn.140207158
mov rdi, rax
test rax, rax
je 0x14002de88
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 0x14002de80
mov ecx, dword [rdi + 0x18]
lea eax, [rcx - 1]
cmp eax, 0xfffffffd
ja 0x14002de80
mov edx, ecx
add rdx, rdi
je 0x14002de80
mov rax, rsi
nop dword [rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x14002de60
test rax, rax
je 0x14002de80
mov r8d, eax
lea rcx, [rsp + 0x70]
call fcn.140029b70
mov rbx, qword [rsp + 0x70]
mov rcx, rdi
call fcn.140207144
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x68], r15
call fcn.140019590
mov rcx, rax
test rax, rax
je 0x14002e0e1
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x140038ca6.0]
add rax, 0x18
mov qword [rsp + 0x68], rax
lea rdi, str.Hello
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.140029980
test al, al
jne 0x14002def8
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x14002dee0
mov rdx, rdi
lea rcx, [rsp + 0x68]
call fcn.140029b70
nop
mov dword [rsp + 0x50], r15d
movsxd rax, dword [rbx - 0x10]
test eax, eax
je 0x14002df1c
mov r8, rax
mov rdx, rbx
xor ecx, ecx
call fcn.140021e60
mov edi, eax
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x14002df4d
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 0x14002dfd5
call fcn.14002d980
mov edi, eax
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x14002dfd5
mov qword [rsp + 0x78], r15
lea rcx, [rsp + 0x78]
call fcn.14002d880
nop
mov rdx, qword [rsp + 0x78]
movsxd r8, dword [rdx - 0x10]
xor ecx, ecx
call fcn.140021e60
mov edi, eax
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002dfab
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038ca6.0]
mov dword [rsp + 0x50], edi
test edi, edi
jne 0x14002dfd5
mov rbx, qword [rsp + 0x68]
movsxd rax, dword [rbx - 0x10]
test eax, eax
je 0x14002dfda
mov r8, rax
mov rdx, rbx
xor ecx, ecx
call fcn.140021e60
mov edi, eax
mov dword [rsp + 0x50], eax
jmp 0x14002dfda
mov rbx, qword [rsp + 0x68]
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002dffb
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038ca6.0]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002e021
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038ca6.0]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002e046
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038ca6.0]
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002e06b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038ca6.0]
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002e090
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140038ca6.0]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x14002e0b3
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x140038ca6.0]
mov eax, edi
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.1401f74b0
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.140019300
nop
mov ecx, 0x80070057
call fcn.140019300
nop
mov ecx, 0x80004005
call fcn.140019300
nop
mov ecx, 0x80004005
call fcn.140019300
int3