Function at 0x140018bf0
Capabilities:
Get disk information
Get disk size
Get storage device properties

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x428
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x3a0], 0xfffffffffffffffe
mov r14, rdx
mov rsi, rcx
mov rbx, qword [rdx + 8]
mov rcx, rbx
call qword [sym.imp.kernel32.dll_GetDriveTypeW]
mov ecx, eax
and ecx, 0xfffffffe
cmp ecx, 2
jne 0x140018ea0
mov r15d, eax
lea rdi, [rbp - 0x32]
mov r8d, 0x20a
mov rcx, rdi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
xorps xmm0, xmm0
movaps xmmword [rbp + 0x340], xmm0
movaps xmmword [rbp + 0x330], xmm0
movaps xmmword [rbp + 0x320], xmm0
movaps xmmword [rbp + 0x310], xmm0
lea rax, [rbp + 0x310]
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x38], 0x20
mov rcx, rbx
mov rdx, rdi
mov r8d, 0x105
xor r9d, r9d
call qword [sym.imp.kernel32.dll_GetVolumeInformationW]
test eax, eax
mov qword [rbp + 0x370], rbx
mov qword [rbp + 0x358], r14
je 0x140018ec8
mov rdi, qword [r14 + 0x10]
lea rcx, [rbp + 0x2e8]
mov rdx, rbx
mov r8, rdi
call fcn.14001ca00
mov r14, qword [rbp + 0x2f8]
test r14, r14
je 0x140018f25
mov rcx, rdi
sub rcx, 2
jb 0x140019456
mov rdx, qword [rbp + 0x370]
lea rax, [rdx + rcx*2]
mov qword [rbp + 0x280], rdx
mov qword [rbp + 0x288], rax
mov qword [rbp + 0x260], 1
mov qword [rbp + 0x268], 0
mov qword [rbp + 0x270], 1
mov word [rbp + 0x278], 0
mov byte [rbp + 0x39d], 1
lea r8, [0x14043d950]
lea rcx, [rbp + 0x290]
lea rdx, [rbp + 0x260]
call fcn.140019ff0
mov rax, qword [rbp + 0x298]
mov qword [rbp + 0x360], rax
mov byte [rbp + 0x39f], 1
call fcn.1400177a0
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
mov rcx, qword [rbp + 0x360]
xor edx, edx
mov r8d, 3
xor r9d, r9d
call qword [sym.imp.kernel32.dll_CreateFileW]
mov rdi, rax
dec rax
cmp rax, 0xfffffffffffffffe
jae 0x140018fa1
mov qword [rbp + 0x2d8], rdi
mov r12, qword [rbp + 0x2f0]
mov rcx, qword [r12 + 8]
mov qword [rbp + 0x300], 0
mov qword [rbp + 0x2b8], 0
lea rbx, [rbp + 0x300]
lea r9, [rbp + 0x2b8]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x140018ff9
mov r13, qword [rbp + 0x300]
test r13, r13
je 0x140019035
mov rax, qword [rbp + 0x2b8]
mov qword [rbp + 0x2e0], rax
mov qword [rbp + 0x2ac], 7
mov byte [rbp + 0x2b4], 0
mov dword [rbp + 0x308], 0
mov qword [rbp + 0x300], 0
mov dword [rbp + 0x36c], 0
lea rax, [rbp + 0x36c]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0xc
lea r8, [rbp + 0x2ac]
mov rcx, rdi
mov edx, 0x2d1400
mov r9d, 0xc
call qword [sym.imp.kernel32.dll_DeviceIoControl]
test eax, eax
je 0x1400190f9
mov ebx, 2
cmp dword [rbp + 0x36c], 0xc
jne 0x14001913a
xor ebx, ebx
cmp byte [rbp + 0x308], 0
sete bl
jmp 0x14001913a
mov qword [rsi], 0
mov qword [rsi + 8], 8
mov qword [rsi + 0x10], 0
mov rdx, qword [r14]
test rdx, rdx
jne 0x140018f7b
jmp 0x140018f8c
call fcn.140021130
mov qword [rbp + 0x380], rax
mov dword [rbp + 0x388], edx
mov qword [rbp + 0x378], 1
test rax, rax
je 0x140018ef6
lea rcx, [rbp + 0x380]
call fcn.140016340
mov qword [rsi], 0
mov qword [rsi + 8], 8
mov qword [rsi + 0x10], 0
mov rbx, qword [rbp + 0x370]
mov r14, qword [rbp + 0x358]
mov rdx, qword [r14]
test rdx, rdx
jne 0x140018f7b
jmp 0x140018f8c
mov qword [rsi], 0
mov qword [rsi + 8], 8
mov qword [rsi + 0x10], 0
mov rsi, qword [rbp + 0x2f0]
mov rax, qword [rbp + 0x2e8]
test rax, rax
mov r14, qword [rbp + 0x358]
je 0x140018f6c
shl rax, 3
lea rdx, [rax + rax*2]
mov r8d, 8
mov rcx, rsi
call fcn.14000bfc0
mov rbx, qword [rbp + 0x370]
mov rdx, qword [r14]
test rdx, rdx
je 0x140018f8c
add rdx, rdx
mov r8d, 2
mov rcx, rbx
call fcn.14000bfc0
nop
add rsp, 0x428
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov byte [rbp + 0x39f], 1
call fcn.140021130
mov dword [rbp + 0x388], edx
mov qword [rbp + 0x380], rax
mov qword [rbp + 0x378], 1
test rax, rax
je 0x140018fdd
lea rcx, [rbp + 0x380]
mov byte [rbp + 0x39f], 1
call fcn.140016340
mov qword [rsi], 0
mov qword [rsi + 8], 8
mov qword [rsi + 0x10], 0
jmp 0x140019095
mov byte [rbp + 0x39e], 1
call fcn.140021130
mov qword [rbp + 0x380], rax
mov dword [rbp + 0x388], edx
mov qword [rbp + 0x378], 1
test rax, rax
je 0x140019035
lea rcx, [rbp + 0x380]
mov byte [rbp + 0x39e], 1
call fcn.140016340
mov qword [rsi], 0
mov qword [rsi + 8], 8
mov qword [rsi + 0x10], 0
mov rcx, rdi
call qword [sym.imp.kernel32.dll_CloseHandle]
test eax, eax
jne 0x140019095
mov byte [rbp + 0x39f], 1
call fcn.140021130
mov qword [rbp + 0x380], rax
mov dword [rbp + 0x388], edx
mov qword [rbp + 0x378], 1
test rax, rax
je 0x140019095
lea rcx, [rbp + 0x380]
mov byte [rbp + 0x39f], 1
call fcn.140016340
mov rdx, qword [rbp + 0x290]
test rdx, rdx
je 0x1400190b6
add rdx, rdx
mov r8d, 2
mov rcx, qword [rbp + 0x360]
call fcn.14000bfc0
mov rsi, qword [rbp + 0x2f0]
lea rdi, [rsi + 8]
jmp 0x1400190dd
add rdi, 0x18
dec r14
je 0x140018f43
mov rdx, qword [rdi - 8]
test rdx, rdx
je 0x1400190d0
mov rcx, qword [rdi]
add rdx, rdx
mov r8d, 2
call fcn.14000bfc0
jmp 0x1400190d0
mov byte [rbp + 0x39e], 1
call fcn.140021130
mov qword [rbp + 0x380], rax
mov dword [rbp + 0x388], edx
mov qword [rbp + 0x378], 1
test rax, rax
je 0x140019135
lea rcx, [rbp + 0x380]
mov byte [rbp + 0x39e], 1
call fcn.140016340
mov ebx, 2
mov r8d, 2
mov eax, 0x20a
nop word cs:[rax + rax]
cmp word [rbp + r8*2 - 0x36], 0
je 0x14001917d
cmp word [rbp + r8*2 - 0x34], 0
je 0x140019183
cmp word [rbp + r8*2 - 0x32], 0
je 0x140019186
add r8, 3
add rax, 0xfffffffffffffffa
jne 0x140019150
mov r8d, 0x105
jmp 0x140019186
add r8, 0xfffffffffffffffe
jmp 0x140019186
dec r8
mov byte [rbp + 0x39e], 1
lea rcx, [rbp + 0x2b8]
lea rdx, [rbp - 0x32]
call fcn.1400331e0
cmp word [rbp + 0x310], 0
je 0x140019366
cmp word [rbp + 0x312], 0
je 0x14001936e
cmp word [rbp + 0x314], 0
je 0x140019379
cmp word [rbp + 0x316], 0
je 0x140019384
cmp word [rbp + 0x318], 0
je 0x14001938f
cmp word [rbp + 0x31a], 0
je 0x14001939a
cmp word [rbp + 0x31c], 0
je 0x1400193a5
cmp word [rbp + 0x31e], 0
je 0x1400193b0
cmp word [rbp + 0x320], 0
je 0x1400193bb
cmp word [rbp + 0x322], 0
je 0x1400193c6
cmp word [rbp + 0x324], 0
je 0x1400193d1
cmp word [rbp + 0x326], 0
je 0x1400193dc
cmp word [rbp + 0x328], 0
je 0x1400193e7
cmp word [rbp + 0x32a], 0
je 0x1400193f2
cmp word [rbp + 0x32c], 0
je 0x1400193fd
cmp word [rbp + 0x32e], 0
je 0x140019408
cmp word [rbp + 0x330], 0
je 0x140019413
cmp word [rbp + 0x332], 0
je 0x14001941e
cmp word [rbp + 0x334], 0
je 0x140019426
cmp word [rbp + 0x336], 0
je 0x14001942e
cmp word [rbp + 0x338], 0
je 0x140019436
cmp word [rbp + 0x33a], 0
je 0x14001943e
cmp word [rbp + 0x33c], 0
je 0x140019446
cmp word [rbp + 0x33e], 0
je 0x14001944e
cmp word [rbp + 0x340], 0
je 0x14001946e
cmp word [rbp + 0x342], 0
je 0x140019476
cmp word [rbp + 0x344], 0
je 0x14001947e
cmp word [rbp + 0x346], 0
je 0x140019486
cmp word [rbp + 0x348], 0
je 0x14001948e
cmp word [rbp + 0x34a], 0
je 0x140019496
cmp word [rbp + 0x34c], 0
je 0x14001949e
cmp word [rbp + 0x34e], 1
mov r8d, 0x20
sbb r8, 0
jmp 0x1400194a4
xor r8d, r8d
jmp 0x1400194a4
mov r8d, 1
jmp 0x1400194a4
mov r8d, 2
jmp 0x1400194a4
mov r8d, 3
jmp 0x1400194a4
mov r8d, 4
jmp 0x1400194a4
mov r8d, 5
jmp 0x1400194a4
mov r8d, 6
jmp 0x1400194a4
mov r8d, 7
jmp 0x1400194a4
mov r8d, 8
jmp 0x1400194a4
mov r8d, 9
jmp 0x1400194a4
mov r8d, 0xa
jmp 0x1400194a4
mov r8d, 0xb
jmp 0x1400194a4
mov r8d, 0xc
jmp 0x1400194a4
mov r8d, 0xd
jmp 0x1400194a4
mov r8d, 0xe
jmp 0x1400194a4
mov r8d, 0xf
jmp 0x1400194a4
mov r8d, 0x10
jmp 0x1400194a4
mov r8d, 0x11
jmp 0x1400194a4
mov r8d, 0x12
jmp 0x1400194a4
mov r8d, 0x13
jmp 0x1400194a4
mov r8d, 0x14
jmp 0x1400194a4
mov r8d, 0x15
jmp 0x1400194a4
mov r8d, 0x16
jmp 0x1400194a4
mov r8d, 0x17
jmp 0x1400194a4
mov byte [rbp + 0x39d], 1
lea r8, [0x14043d9d0]
mov rdx, rdi
call fcn.1400600a0
ud2
mov r8d, 0x18
jmp 0x1400194a4
mov r8d, 0x19
jmp 0x1400194a4
mov r8d, 0x1a
jmp 0x1400194a4
mov r8d, 0x1b
jmp 0x1400194a4
mov r8d, 0x1c
jmp 0x1400194a4
mov r8d, 0x1d
jmp 0x1400194a4
mov r8d, 0x1e
mov byte [rbp + 0x39c], 1
lea rcx, [rbp + 0x378]
lea rdx, [rbp + 0x310]
call fcn.1400331e0
cmp r15d, 2
mov rax, qword [rbp + 0x2e8]
lea rcx, [r14 + r14*2]
lea rcx, [r12 + rcx*8]
movups xmm0, xmmword [rbp + 0x2b8]
movups xmm1, xmmword [rbp + 0x2c8]
movups xmmword [rbp + 0x1e8], xmm0
movups xmmword [rbp + 0x1f8], xmm1
movups xmm0, xmmword [rbp + 0x378]
movups xmm1, xmmword [rbp + 0x388]
movups xmmword [rbp + 0x208], xmm0
movups xmmword [rbp + 0x218], xmm1
mov qword [rbp + 0x240], r12
mov qword [rbp + 0x248], r12
mov qword [rbp + 0x250], rax
mov qword [rbp + 0x258], rcx
mov qword [rbp + 0x1d8], rbx
mov qword [rbp + 0x1e0], 0xffffffffffffffff
mov qword [rbp + 0x228], r13
mov rax, qword [rbp + 0x2e0]
mov qword [rbp + 0x230], rax
sete byte [rbp + 0x238]
mov byte [rbp + 0x39c], 0
lea r8, [0x14043d950]
lea rdx, [rbp + 0x1d8]
mov rcx, rsi
call fcn.1400199a0
mov rcx, rdi
call qword [sym.imp.kernel32.dll_CloseHandle]
test eax, eax
jne 0x1400195b9
mov byte [rbp + 0x39f], 0
call fcn.140021130
mov qword [rbp + 0x380], rax
mov dword [rbp + 0x388], edx
mov qword [rbp + 0x378], 1
test rax, rax
je 0x1400195b9
lea rcx, [rbp + 0x380]
mov byte [rbp + 0x39f], 0
call fcn.140016340
mov rdx, qword [rbp + 0x290]
test rdx, rdx
je 0x140018f0d
add rdx, rdx
mov r8d, 2
mov rcx, qword [rbp + 0x360]
call fcn.14000bfc0
jmp 0x140018f0d