Function at 0x1400380a0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x3a0]
sub rsp, 0x4a0
mov rax, qword [0x140162010]
xor rax, rsp
mov qword [rbp + 0x390], rax
mov rdi, rdx
mov rsi, rcx
xor r15d, r15d
mov dword [rsp + 0x40], r15d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
mov qword [rsp + 0x70], r15
movdqa xmm0, xmmword [0x140143550]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], r15w
mov dword [rsp + 0x40], 4
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.140037e10
test eax, eax
jne 0x140038853
lea rax, [rsp + 0x70]
cmp rdi, rax
je 0x140038150
mov rcx, rdi
call fcn.14000b7d0
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbp - 0x80]
movups xmmword [rdi + 0x10], xmm1
movdqa xmm0, xmmword [0x140143550]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], r15w
nop dword [rax]
mov dword [rsp + 0x40], r15d
lea rcx, [rsp + 0x70]
call fcn.14000b7d0
mov ebx, r15d
mov rcx, rsi
call fcn.140012340
test al, al
je 0x140038205
mov rdx, rsi
lea rcx, [rbp + 0x70]
call fcn.140020270
movsd xmm0, qword [rax]
movsd qword [rsp + 0x40], xmm0
mov edx, dword [rax + 8]
mov ecx, dword [rsp + 0x40]
test edx, edx
je 0x1400381a1
lea eax, [rcx - 1]
test eax, 0xfffffff7
jne 0x140038865
mov ebx, r15d
cmp ecx, 3
je 0x140038205
mov rdx, rsi
lea rcx, [rbp - 0x30]
call fcn.14000a300
nop
mov ebx, 9
mov dword [rsp + 0x40], ebx
lea rcx, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae rcx, qword [rbp - 0x30]
call qword [sym.imp.SHLWAPI.dll_PathIsRootW]
test eax, eax
jne 0x140038205
mov rdx, rsi
lea rcx, [rbp - 0x70]
call fcn.14000a300
mov ebx, 0x1b
lea rcx, [rbp - 0x70]
cmp qword [rbp - 0x58], 8
cmovae rcx, qword [rbp - 0x70]
call qword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
test eax, eax
jne 0x140038205
xor r14b, r14b
jmp 0x14003820d
mov r14b, 1
test bl, 2
je 0x140038261
and ebx, 0xfffffffd
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x140038250
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003824b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140038875
call fcn.1400ada10
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], 7
mov word [rbp - 0x70], r15w
test bl, 1
je 0x1400382a6
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x1400382a6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400382a1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003887b
call fcn.1400ada10
test r14b, r14b
je 0x1400382bd
mov ecx, 0xa1
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor al, al
jmp 0x140038827
mov rax, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 8
jb 0x1400382cb
mov rsi, qword [rsi]
lea rdx, [rsi + rax*2]
mov rcx, rsi
call fcn.140012020
sub rax, rsi
sar rax, 1
mov qword [rbp + 0xa0], r15
mov qword [rbp + 0xb0], r15
mov qword [rbp + 0xb8], 7
mov word [rbp + 0xa0], r15w
mov r8, rax
mov rdx, rsi
lea rcx, [rbp + 0xa0]
call fcn.14000b840
nop
xor edx, edx
mov r8d, 0x20a
lea rcx, [rbp + 0x180]
call fcn.1400d41f0
lea r14, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 8
cmovae r14, qword [rbp + 0xa0]
mov rsi, qword [rbp + 0xb0]
cmp rsi, 8
jae 0x140038367
movups xmm0, xmmword [r14]
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], 7
lea rcx, [rsp + 0x50]
jmp 0x1400383d6
or rsi, 7
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
cmova rsi, rax
lea rcx, [rsi + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x140038881
lfence
add rcx, rcx
call fcn.14000e8a0
mov qword [rsp + 0x50], rax
mov rbx, qword [rbp + 0xb0]
lea r8, [rbx*2 + 2]
mov rdx, r14
mov rcx, rax
call fcn.1400d44b0
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rsi
lea rcx, [rsp + 0x50]
cmp rsi, 8
cmovae rcx, qword [rsp + 0x50]
mov r8d, 0x82
lea rdx, [rbp + 0x180]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov ebx, eax
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x14003842d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140038428
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003884d
call fcn.1400ada10
test ebx, ebx
je 0x140038818
mov qword [rbp + 0x120], r15
movdqa xmm0, xmmword [0x140143550]
movdqa xmmword [rbp + 0x130], xmm0
mov word [rbp + 0x120], r15w
mov r8d, 0x10
lea rdx, str.DeviceHarddisk
lea rcx, [rbp + 0x120]
call fcn.14000b840
nop
mov qword [rbp + 0x140], r15
movdqa xmm0, xmmword [0x140143550]
movdqa xmmword [rbp + 0x150], xmm0
mov word [rbp + 0x140], r15w
mov r8d, 4
lea rdx, [0x1401366d0]
lea rcx, [rbp + 0x140]
call fcn.14000b840
nop
mov qword [rbp + 0x160], r15
movdqa xmm0, xmmword [0x140143550]
movdqa xmmword [rbp + 0x170], xmm0
mov word [rbp + 0x160], r15w
mov r8d, 0xc
lea rdx, str.DosDevices_
lea rcx, [rbp + 0x160]
call fcn.14000b840
nop
mov qword [rbp + 0xc0], r15
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0xd8], 7
mov word [rbp + 0xc0], r15w
lea rbx, [rbp + 0x120]
nop dword [rax + rax]
mov rdx, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003851d
mov rdx, qword [rbx]
mov r8d, dword [rbx + 0x10]
lea rcx, [rbp + 0x180]
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
je 0x140038547
add rbx, 0x20
lea rax, [rbp + 0x180]
cmp rbx, rax
jne 0x140038510
jmp 0x1400387e1
lea rax, [rbp + 0x120]
cmp rbx, rax
jne 0x140038726
lea rax, [rbp + 0xc0]
cmp rax, rdi
je 0x1400387e1
mov rdx, rdi
cmp qword [rdi + 0x18], 8
jb 0x140038574
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rbp + 0xc0]
call fcn.14000b840
mov r8, qword [rbp + 0xd0]
test r8, r8
je 0x1400387e1
lea rsi, [rdi + 0x20]
lea rax, [rbp + 0xc0]
cmp rsi, rax
je 0x1400385c3
lea rdx, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 8
cmovae rdx, qword [rbp + 0xc0]
mov rcx, rsi
call fcn.14000b840
mov rdx, rsi
lea rcx, [rbp - 0x10]
call fcn.14000a300
lea rcx, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae rcx, qword [rbp - 0x10]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov rcx, qword [rdi + 0x40]
cmp rcx, 0xffffffffffffffff
je 0x140038617
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x40], rbx
mov r8, qword [rbp + 8]
cmp r8, 8
jb 0x140038639
inc r8
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x10]
call fcn.14000d010
mov rbx, qword [rdi + 0x40]
cmp rbx, 0xffffffffffffffff
je 0x1400387ec
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 1
je 0x14003865b
mov ecx, 0x32
jmp 0x1400387e6
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x100], xmm0
mov dword [rbp + 0x110], eax
lea rdx, [rbp + 0xe0]
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x1400387ec
mov ecx, dword [rbp + 0xe0]
mov dword [rdi + 0x48], ecx
mov eax, dword [rbp + 0x110]
mov dword [rdi + 0x58], eax
mov eax, dword [rbp + 0x10c]
mov dword [rdi + 0x5c], eax
test ecx, 0xa00
jne 0x1400386d0
mov eax, dword [rbp + 0x104]
mov dword [rdi + 0x50], eax
mov eax, dword [rbp + 0x100]
mov dword [rdi + 0x54], eax
mov bl, 1
jmp 0x1400387ee
mov rdx, rsi
lea rcx, [rbp + 0x10]
call fcn.14000a300
lea rcx, [rbp + 0x10]
cmp qword [rbp + 0x28], 8
cmovae rcx, qword [rbp + 0x10]
lea rdx, [rdi + 0x54]
call qword [sym.imp.KERNEL32.dll_GetCompressedFileSizeW]
mov dword [rdi + 0x50], eax
mov r8, qword [rbp + 0x28]
cmp r8, 8
jb 0x140038711
inc r8
mov rdx, qword [rbp + 0x10]
lea rcx, [rbp + 0x10]
call fcn.14000d010
mov eax, dword [rdi + 0x50]
dec eax
cmp eax, 0xfffffffd
ja 0x1400387ec
mov bl, 1
jmp 0x1400387ee
lea rdx, [rbp + 0x80]
mov rcx, rdi
call fcn.1400139e0
mov rbx, rax
lea rax, [rbp + 0x180]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140038750
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x38], 7
mov word [rbp - 0x50], r15w
lea rdx, [rbp + 0x180]
lea rcx, [rbp - 0x50]
call fcn.14000b840
nop
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x30]
call fcn.14000a300
nop
mov rdx, rbx
lea rcx, [rbp + 0x30]
call fcn.140012190
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.14000a300
nop
lea rcx, [rbp + 0x30]
call fcn.14000b7d0
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0xa0]
call fcn.14000a2b0
lea rcx, [rbp + 0x50]
call fcn.14000b7d0
nop
lea rcx, [rbp - 0x50]
call fcn.14000b7d0
nop
lea rcx, [rbp + 0x80]
call fcn.14000b7d0
mov ecx, 0xa1
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor bl, bl
lea rcx, [rbp + 0xc0]
call fcn.14000b7d0
nop
lea r9, [fcn.140007870]
mov edx, 0x20
lea r8d, [rdx - 0x1d]
lea rcx, [rbp + 0x120]
call fcn.1400ae204
nop
lea rcx, [rbp + 0xa0]
call fcn.14000b7d0
movzx eax, bl
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.1400ad9f0
mov rbx, qword [rsp + 0x4e0]
add rsp, 0x4a0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call fcn.1400e39e0
nop
mov r8, rsi
mov edx, eax
lea rcx, str.canonical
call fcn.140020170
nop
mov r8, rsi
lea rcx, [0x140122888]
call fcn.140020170
nop
call fcn.1400e39e0
nop
call fcn.1400e39e0
nop
call fcn.1400067c0
int3