Function at 0x1400df290
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x3a0]
sub rsp, 0x4a0
mov rax, qword [0x140293028]
xor rax, rsp
mov qword [rbp + 0x390], rax
mov rdi, rdx
mov rsi, rcx
xor r12d, r12d
mov dword [rsp + 0x40], r12d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
mov qword [rsp + 0x70], r12
movdqa xmm0, xmmword [0x140259ca0]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], r12w
mov dword [rsp + 0x40], 4
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.1400ded10
test eax, eax
jne 0x1400dfa50
lea rax, [rsp + 0x70]
cmp rdi, rax
je 0x1400df350
mov rcx, rdi
call fcn.140010b20
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbp - 0x80]
movups xmmword [rdi + 0x10], xmm1
movdqa xmm0, xmmword [0x140259ca0]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], r12w
nop dword [rax]
nop word [rax + rax]
mov dword [rsp + 0x40], r12d
lea rcx, [rsp + 0x70]
call fcn.140010b20
mov ebx, r12d
mov rcx, rsi
call fcn.14000a150
test al, al
je 0x1400df405
mov rdx, rsi
lea rcx, [rbp + 0x70]
call fcn.14000a830
movsd xmm0, qword [rax]
movsd qword [rsp + 0x40], xmm0
mov edx, dword [rax + 8]
mov ecx, dword [rsp + 0x40]
test edx, edx
je 0x1400df3a1
lea eax, [rcx - 1]
test eax, 0xfffffff7
jne 0x1400dfa62
mov ebx, r12d
cmp ecx, 3
je 0x1400df405
mov rdx, rsi
lea rcx, [rbp - 0x30]
call fcn.14000fcc0
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 0x1400df405
mov rdx, rsi
lea rcx, [rbp - 0x70]
call fcn.14000fcc0
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 0x1400df405
xor r14b, r14b
jmp 0x1400df40d
mov r14b, 1
test bl, 2
je 0x1400df461
and ebx, 0xfffffffd
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x1400df450
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400df44b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400dfa72
call fcn.1401853a0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], 7
mov word [rbp - 0x70], r12w
test bl, 1
je 0x1400df4a6
mov rdx, qword [rbp - 0x18]
cmp rdx, 8
jb 0x1400df4a6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400df4a1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400dfa78
call fcn.1401853a0
test r14b, r14b
je 0x1400df4bd
mov ecx, 0xa1
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor al, al
jmp 0x1400dfa1f
mov rax, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 8
jb 0x1400df4cb
mov rsi, qword [rsi]
lea rdx, [rsi + rax*2]
mov rcx, rsi
call fcn.140009a00
sub rax, rsi
sar rax, 1
mov qword [rbp + 0xa0], r12
mov qword [rbp + 0xb0], r12
mov qword [rbp + 0xb8], 7
mov word [rbp + 0xa0], r12w
mov r8, rax
mov rdx, rsi
lea rcx, [rbp + 0xa0]
call fcn.14000b550
nop
xor edx, edx
mov r8d, 0x20a
lea rcx, [rbp + 0x180]
call fcn.1401a8d80
lea r15, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 8
cmovae r15, qword [rbp + 0xa0]
mov rsi, 0xffffffffffffffff
mov r14, qword [rbp + 0xb0]
cmp r14, 8
jae 0x1400df56e
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 7
lea rcx, [rsp + 0x50]
jmp 0x1400df5e4
or r14, 7
movabs rax, 0x7ffffffffffffffe
cmp r14, rax
cmova r14, rax
mov rcx, r14
add rcx, 1
cmovb rcx, rsi
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x1400dfa7e
lfence
add rcx, rcx
call fcn.140012d70
mov qword [rsp + 0x50], rax
mov rbx, qword [rbp + 0xb0]
lea r8, [rbx*2 + 2]
mov rdx, r15
mov rcx, rax
call fcn.1401a9040
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], r14
lea rcx, [rsp + 0x50]
cmp r14, 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 0x1400df63b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400df636
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400dfa4a
call fcn.1401853a0
test ebx, ebx
je 0x1400dfa10
mov qword [rbp + 0x120], r12
movdqa xmm0, xmmword [0x140259ca0]
movdqa xmmword [rbp + 0x130], xmm0
mov word [rbp + 0x120], r12w
mov r8d, 0x10
lea rdx, str.DeviceHarddisk
lea rcx, [rbp + 0x120]
call fcn.14000b550
nop
mov qword [rbp + 0x140], r12
movdqa xmm0, xmmword [0x140259ca0]
movdqa xmmword [rbp + 0x150], xmm0
mov word [rbp + 0x140], r12w
mov r8d, 4
lea rdx, [0x140248548]
lea rcx, [rbp + 0x140]
call fcn.14000b550
nop
mov qword [rbp + 0x160], r12
movdqa xmm0, xmmword [0x140259ca0]
movdqa xmmword [rbp + 0x170], xmm0
mov word [rbp + 0x160], r12w
mov r8d, 0xc
lea rdx, str.DosDevices_
lea rcx, [rbp + 0x160]
call fcn.14000b550
nop
mov qword [rbp + 0xc0], r12
mov qword [rbp + 0xd0], r12
mov qword [rbp + 0xd8], 7
mov word [rbp + 0xc0], r12w
lea rbx, [rbp + 0x120]
mov rdx, rbx
cmp qword [rbx + 0x18], 8
jb 0x1400df723
mov rdx, qword [rbx]
mov r8d, dword [rbx + 0x10]
lea rcx, [rbp + 0x180]
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
je 0x1400df74d
add rbx, 0x20
lea rax, [rbp + 0x180]
cmp rbx, rax
jne 0x1400df716
jmp 0x1400df9d9
lea rax, [rbp + 0x120]
cmp rbx, rax
jne 0x1400df92d
lea rax, [rbp + 0xc0]
cmp rax, rdi
je 0x1400df9d9
mov rdx, rdi
cmp qword [rdi + 0x18], 8
jb 0x1400df77a
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rbp + 0xc0]
call fcn.14000b550
mov r8, qword [rbp + 0xd0]
test r8, r8
je 0x1400df9d9
lea rsi, [rdi + 0x20]
lea rax, [rbp + 0xc0]
cmp rsi, rax
je 0x1400df7c9
lea rdx, [rbp + 0xc0]
cmp qword [rbp + 0xd8], 8
cmovae rdx, qword [rbp + 0xc0]
mov rcx, rsi
call fcn.14000b550
mov rdx, rsi
lea rcx, [rbp - 0x10]
call fcn.14000fcc0
lea rcx, [rbp - 0x10]
cmp qword [rbp + 8], 8
cmovae rcx, qword [rbp - 0x10]
mov qword [rsp + 0x30], r12
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 0x1400df81e
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov qword [rdi + 0x40], rbx
mov r8, qword [rbp + 8]
cmp r8, 8
jb 0x1400df840
inc r8
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x10]
call fcn.14000fd80
mov rbx, qword [rdi + 0x40]
cmp rbx, 0xffffffffffffffff
je 0x1400df9e4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 1
je 0x1400df862
mov ecx, 0x32
jmp 0x1400df9de
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 0x1400df9e4
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 0x1400df8d7
mov eax, dword [rbp + 0x104]
mov dword [rdi + 0x50], eax
mov eax, dword [rbp + 0x100]
mov dword [rdi + 0x54], eax
mov bl, 1
jmp 0x1400df9e6
mov rdx, rsi
lea rcx, [rbp + 0x10]
call fcn.14000fcc0
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 0x1400df918
inc r8
mov rdx, qword [rbp + 0x10]
lea rcx, [rbp + 0x10]
call fcn.14000fd80
mov eax, dword [rdi + 0x50]
dec eax
cmp eax, 0xfffffffd
ja 0x1400df9e4
mov bl, 1
jmp 0x1400df9e6
lea rdx, [rbp + 0x80]
mov rcx, rdi
call fcn.14002ded0
mov rbx, rax
lea rax, [rbp + 0x180]
inc rsi
cmp word [rax + rsi*2], 0
jne 0x1400df946
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x38], 7
mov word [rbp - 0x50], r12w
mov r8, rsi
lea rdx, [rbp + 0x180]
lea rcx, [rbp - 0x50]
call fcn.14000b550
nop
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x30]
call fcn.14000fcc0
nop
mov rdx, rbx
lea rcx, [rbp + 0x30]
call fcn.140009b70
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.14000fcc0
nop
lea rcx, [rbp + 0x30]
call fcn.140010b20
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0xa0]
call fcn.14001ee00
lea rcx, [rbp + 0x50]
call fcn.140010b20
nop
lea rcx, [rbp - 0x50]
call fcn.140010b20
nop
lea rcx, [rbp + 0x80]
call fcn.140010b20
mov ecx, 0xa1
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor bl, bl
lea rcx, [rbp + 0xc0]
call fcn.140010b20
nop
lea r9, [fcn.14000a250]
mov edx, 0x20
lea r8d, [rdx - 0x1d]
lea rcx, [rbp + 0x120]
call fcn.140185b94
nop
lea rcx, [rbp + 0xa0]
call fcn.140010b20
movzx eax, bl
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.140185380
lea r11, [rsp + 0x4a0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.1401b3c00
nop
mov r8, rsi
mov edx, eax
lea rcx, str.canonical
call fcn.140024f10
nop
mov r8, rsi
lea rcx, [0x140210480]
call fcn.140024f10
nop
call fcn.1401b3c00
nop
call fcn.1401b3c00
nop
call fcn.140008770
int3