Function at 0x14003c560
Capabilities:
Get disk information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb68
movaps xmmword [rsp + 0xb50], xmm6
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x1402cb038]
xor rax, rsp
mov qword [rsp + 0xb48], rax
movaps xmm6, xmmword [0x14029ca60]
lea r14, [rsp + 0xe0]
movaps xmmword [r14 + 0x30], xmm6
movaps xmmword [r14 + 0x20], xmm6
movaps xmmword [r14 + 0x10], xmm6
movaps xmmword [r14], xmm6
lea rdx, str.DevicePathToDriveLetterPath
lea r8, str.file_util_win.cc
lea rbx, [rsp + 0x340]
mov rcx, rbx
mov r9d, 0x3bc
call fcn.140158eb0
mov rcx, r14
xor edx, edx
xor r8d, r8d
call fcn.1401a26e0
test byte [0x1402d90d0], 0x19
jne 0x14003c99f
xor ebp, ebp
lea rbx, [rsp + 0x340]
mov r8d, 0x800
mov rcx, rbx
xor edx, edx
call fcn.1401d06e0
mov ecx, 0x3ff
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x14003c90d
lea r14, [rsp + 0x130]
mov r8d, 0x208
mov rcx, r14
mov dl, 0xaa
call fcn.1401d06e0
mov word [rsp + 0x12c], 0
mov dword [rsp + 0x128], 0x3a0020
movzx eax, word [rsp + 0x340]
test ax, ax
je 0x14003c68d
mov qword [rsp + 0x48], rsi
lea r15, [rsp + 0x128]
mov rbp, qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
movabs rsi, 0xaaaaaaaaaaaaaaaa
lea r12, [rsp + 0xc0]
lea r13, [rsp + 0xb0]
jmp 0x14003c6bd
xor ebp, ebp
jmp 0x14003c90d
cmp byte [rsp + 0xd7], 0
jns 0x14003c6ab
mov rcx, qword [rsp + 0xc0]
call fcn.1401cbbbc
cmp word [rbx], 0
lea rbx, [rbx + 2]
jne 0x14003c6ab
movzx eax, word [rbx]
test ax, ax
je 0x14003c68d
mov word [rsp + 0x128], ax
mov rcx, r15
mov rdx, r14
mov r8d, 0x104
call rbp
test eax, eax
je 0x14003c6ab
mov qword [rsp + 0xd0], rsi
movaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0xb0], r14
mov rcx, r14
call fcn.1401cc340
mov qword [rsp + 0xb8], rax
mov rcx, r12
mov rdx, r13
call fcn.1401b5140
mov rcx, r12
mov rdx, rdi
call fcn.14003c9c0
test al, al
jne 0x14003c72f
mov rcx, r12
mov rdx, rdi
xor r8d, r8d
call fcn.140017360
test al, al
je 0x14003c694
lea rcx, [rsp + 0x130]
call fcn.1401cc340
lea rcx, [rsp + 0x98]
mov qword [rsp + 0x20], rcx
lea rbx, [rsp + 0x50]
mov rcx, rbx
mov rdx, rdi
mov r8, rax
mov r9, 0xffffffffffffffff
call fcn.14001e050
lea r15, [rsp + 0x128]
mov rcx, r15
call fcn.1401cc340
movzx ecx, byte [rbx + 0x17]
movabs r8, 0x7fffffffffffffff
and r8, qword [rbx + 0x10]
dec r8
test cl, cl
mov rdi, rcx
cmovs rdi, qword [rbx + 8]
mov edx, 0xa
cmovs rdx, r8
mov r14, rax
mov rax, rdx
sub rax, rdi
cmp rax, r14
jb 0x14003c948
test r14, r14
je 0x14003c821
test cl, cl
jns 0x14003c7bb
mov rbx, qword [rsp + 0x50]
test rdi, rdi
je 0x14003c7f9
lea rax, [rbx + rdi*2]
xor ecx, ecx
lea rdx, [rsp + 0x128]
cmp rax, rdx
mov eax, 0
cmova rax, r14
cmp rbx, rdx
cmova rax, rcx
lea r15, [rsp + rax*2 + 0x128]
lea rcx, [rbx + r14*2]
lea r8, [rdi + rdi]
mov rdx, rbx
call fcn.1401d0030
lea r8, [r14 + r14]
mov rcx, rbx
mov rdx, r15
call fcn.1401d0030
add rdi, r14
cmp byte [rsp + 0x67], 0
jns 0x14003c97d
mov qword [rsp + 0x58], rdi
mov word [rbx + rdi*2], 0
mov rcx, qword [rsp + 0x60]
lea rax, [rsp + 0x70]
mov qword [rax + 0x10], rcx
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rax], xmm0
xorps xmm0, xmm0
movzx edx, byte [rax + 0x17]
mov ecx, edx
and ecx, 0x7f
test dl, dl
cmovs rcx, qword [rax + 8]
movaps xmmword [rsp + 0x50], xmm0
cmovs rax, qword [rax]
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rcx
test rcx, rcx
js 0x14003c999
test rax, rax
mov rsi, qword [rsp + 0x48]
jne 0x14003c888
test rcx, rcx
jne 0x14003c99c
lea rcx, [rsp + 0x98]
lea rdx, [rsp + 0x88]
call fcn.1401b5140
cmp byte [rsi + 0x17], 0
jns 0x14003c8ab
mov rcx, qword [rsi]
call fcn.1401cbbbc
mov rax, qword [rsp + 0xa8]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x98]
movups xmmword [rsi], xmm0
mov byte [rsp + 0xaf], 0
mov word [rsp + 0x98], 0
cmp byte [rsp + 0x87], 0
jns 0x14003c8e8
mov rcx, qword [rsp + 0x70]
call fcn.1401cbbbc
cmp byte [rsp + 0x67], 0
js 0x14003c98a
cmp byte [rsp + 0xd7], 0
jns 0x14003c90a
mov rcx, qword [rsp + 0xc0]
call fcn.1401cbbbc
mov bpl, 1
lea rcx, [rsp + 0xe0]
call fcn.140181760
mov rcx, qword [rsp + 0xb48]
xor rcx, rsp
call fcn.1401ce5b0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xb50]
add rsp, 0xb68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, r14
add r8, rdi
sub r8, rdx
lea rax, [rsp + 0x128]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x50]
mov r9, rdi
call fcn.140009b70
jmp 0x14003c821
mov eax, edi
and al, 0x7f
mov byte [rsp + 0x67], al
jmp 0x14003c81b
mov rcx, qword [rsp + 0x50]
call fcn.1401cbbbc
jmp 0x14003c8f3
int3
int3
lea rdx, [rsp + 0x130]
mov qword [rdx], rbx
lea rcx, str.ScopedBlockingCall
call fcn.1402380c0
jmp 0x14003c5f3