Function at 0x1400104a0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x380]
sub rsp, 0x480
mov rax, qword [0x14005f020]
xor rax, rsp
mov qword [rbp + 0x370], rax
movdqa xmm0, xmmword [0x140054e40]
lea rbx, [rsp + 0x50]
mov r15, rcx
xor r12d, r12d
lea rcx, [rsp + 0x20]
mov word [rsp + 0x20], r12w
mov rdx, r8
mov r14, r8
movdqu xmmword [rsp + 0x30], xmm0
call fcn.140010090
test eax, eax
js 0x140010511
cmp qword [rsp + 0x38], 8
lea r14, [rsp + 0x20]
cmovae r14, qword [rsp + 0x20]
mov edi, 0x104
mov qword [rsp + 0x4b8], rsi
mov ecx, edi
lea rdx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
cmp eax, edi
jge 0x14001072e
test eax, eax
je 0x14001072e
movzx eax, word [rsp + 0x50]
test ax, ax
je 0x1400105dd
nop dword [rax]
mov word [rsp + 0x40], ax
lea rdx, [rbp + 0x160]
movzx eax, word [rbx + 2]
lea rcx, [rsp + 0x40]
mov r8d, edi
mov word [rsp + 0x42], ax
mov word [rsp + 0x44], r12w
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
je 0x1400105d1
lea rcx, [rbp + 0x160]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rsi, eax
mov rdx, r14
mov r8, rsi
lea rcx, [rbp + 0x160]
call fcn.140036b74
test eax, eax
jne 0x1400105c0
movzx eax, word [r14 + rsi*2]
lea rsi, [r14 + rsi*2]
cmp ax, 0x5c
je 0x1400106a8
cmp ax, 0x2f
je 0x1400106a8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cdqe
lea rbx, [rbx + rax*2]
movzx eax, word [rbx]
test ax, ax
jne 0x140010550
lea rcx, str.DeviceMup
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd r8, eax
lea rdx, str.DeviceMup
mov rcx, r14
call fcn.140037b5c
test eax, eax
jne 0x1400106bf
lea r8, [0x140054390]
mov rdx, r15
sub r8, r15
lea rax, [rdi + 0x7ffffefa]
test rax, rax
je 0x140010634
movzx eax, word [r8 + rdx]
test ax, ax
je 0x140010634
mov word [rdx], ax
add rdx, 2
sub rdi, 1
jne 0x140010611
test rdi, rdi
lea rax, [rdx - 2]
lea rcx, str.DeviceMup
cmovne rax, rdx
mov word [rax], r12w
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
lea r8, [r14 + rcx*2]
mov rcx, r15
call fcn.14000b480
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x1400106a1
mov rcx, qword [rsp + 0x20]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001069c
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140010767
call fcn.14002fb54
mov eax, 1
jmp 0x1400106ff
lea r8, [rsp + 0x40]
mov edx, 0x208
mov rcx, r15
call fcn.14000a1a0
mov r8, rsi
jmp 0x140010657
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x1400106fd
mov rcx, qword [rsp + 0x20]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400106f8
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140010767
call fcn.14002fb54
xor eax, eax
mov rsi, qword [rsp + 0x4b8]
mov rcx, qword [rbp + 0x370]
xor rcx, rsp
call fcn.14002fb30
mov rbx, qword [rsp + 0x4c8]
add rsp, 0x480
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x1400106fd
mov rcx, qword [rsp + 0x20]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400106f8
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400106f8
call fcn.140036ad4
int3