Function at 0x140042c50
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
mov rax, qword [0x1400ed368]
xor rax, rsp
mov qword [rbp + 0x3f], rax
mov rbx, rdx
mov rdi, rcx
xor r14d, r14d
xorps xmm0, xmm0
movups xmmword [rbp - 1], xmm0
movdqa xmm1, xmmword [0x1400d74e0]
movdqu xmmword [rbp + 0xf], xmm1
mov word [rbp - 1], r14w
cmp qword [rdx + 0x10], 2
jb 0x14004339c
mov rax, rdx
mov rdx, qword [rdx + 0x18]
cmp rdx, 8
jb 0x140042cb5
mov rax, qword [rax]
cmp word [rax + 2], 0x3a
jne 0x14004339c
mov rcx, rbx
cmp rdx, 8
jb 0x140042ccc
mov rcx, qword [rbx]
movzx ecx, word [rcx]
call fcn.1400900cc
test eax, eax
je 0x14004339c
mov rcx, rbx
call fcn.140042ae0
test al, al
je 0x1400431c2
mov rdx, rbx
lea rcx, [rbp + 0x1f]
call fcn.1400428d0
nop
lea rcx, [rbp + 0x1f]
cmp qword [rbp + 0x37], 8
cmovae rcx, qword [rbp + 0x1f]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 4
je 0x140042d2c
cmp eax, 1
jne 0x140042fa8
lea rcx, [rbp + 0x1f]
call fcn.1400429f0
test al, al
je 0x140042fa8
mov rdx, qword [rbp + 0x37]
cmp rdx, 8
jb 0x140042d6c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x1f]
cmp rdx, 0x1000
mov rax, rcx
jb 0x140042d67
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435ec
call fcn.14008526c
mov rcx, qword [rbx + 0x10]
movabs rax, 0x7ffffffffffffffe
sub rax, rcx
cmp rax, 0x16
jb 0x1400435fe
cmp qword [rbx + 0x18], 8
jb 0x140042d91
mov rbx, qword [rbx]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x16
lea r9, str.This_is_network_disk:
lea rcx, [rbp - 0x29]
call fcn.140045360
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x140042df4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042def
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435d4
call fcn.14008526c
movups xmm0, xmmword [rbp - 0x29]
movups xmmword [rbp - 1], xmm0
movups xmm1, xmmword [rbp - 0x19]
movdqu xmmword [rbp + 0xf], xmm1
lea r8, [rbp - 1]
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 8
cmovae r8, rcx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
movd r9d, xmm1
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x140042e64
xorps xmm0, xmm0
movups xmmword [rbp - 0x29], xmm0
movdqa xmm1, xmmword [0x1400d74f0]
movdqu xmmword [rbp - 0x19], xmm1
mov byte [rbp - 0x29], al
jmp 0x140042ed4
movsxd rdx, eax
xor r8d, r8d
lea rcx, [rbp + 0x1f]
call fcn.14003acc0
lea rcx, [rbp + 0x1f]
cmp qword [rbp + 0x37], 0x10
cmovae rcx, qword [rbp + 0x1f]
lea r8, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae r8, qword [rbp - 1]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov eax, dword [rbp + 0x2f]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, dword [rbp + 0xf]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movups xmm0, xmmword [rbp + 0x1f]
movups xmmword [rbp - 0x29], xmm0
movups xmm1, xmmword [rbp + 0x2f]
movups xmmword [rbp - 0x19], xmm1
movdqa xmm0, xmmword [0x1400d74f0]
movdqu xmmword [rbp + 0x2f], xmm0
mov byte [rbp + 0x1f], 0
mov rcx, qword [0x1400f5e58]
test rcx, rcx
je 0x140042f01
lea r8, [rbp - 0x29]
mov edx, 2
call fcn.14003fdd0
mov rcx, qword [0x1400f5e58]
test rcx, rcx
je 0x140042f01
mov rax, qword [rcx]
call qword [rax + 0x18]
nop
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x140042f3c
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042f37
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435e6
call fcn.14008526c
mov word [rdi], 0x100
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x140042f81
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042f7c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435e0
call fcn.14008526c
mov rax, rdi
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.140084ea0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
mov rdx, qword [rbp + 0x37]
cmp rdx, 8
jb 0x140042fe8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x1f]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042fe3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435ec
call fcn.14008526c
mov rcx, qword [rbx + 0x10]
movabs rax, 0x7ffffffffffffffe
sub rax, rcx
cmp rax, 0x14
jb 0x1400435fe
cmp qword [rbx + 0x18], 8
jb 0x14004300d
mov rbx, qword [rbx]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x14
lea r9, str.This_is_local_disk:
lea rcx, [rbp - 0x29]
call fcn.140045360
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x140043070
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004306b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435d4
call fcn.14008526c
movups xmm0, xmmword [rbp - 0x29]
movups xmmword [rbp - 1], xmm0
movups xmm1, xmmword [rbp - 0x19]
movdqu xmmword [rbp + 0xf], xmm1
lea r8, [rbp - 1]
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 8
cmovae r8, rcx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
movd r9d, xmm1
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x1400430e0
xorps xmm0, xmm0
movups xmmword [rbp - 0x29], xmm0
movdqa xmm1, xmmword [0x1400d74f0]
movdqu xmmword [rbp - 0x19], xmm1
mov byte [rbp - 0x29], al
jmp 0x140043150
movsxd rdx, eax
xor r8d, r8d
lea rcx, [rbp + 0x1f]
call fcn.14003acc0
lea rcx, [rbp + 0x1f]
cmp qword [rbp + 0x37], 0x10
cmovae rcx, qword [rbp + 0x1f]
lea r8, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae r8, qword [rbp - 1]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov eax, dword [rbp + 0x2f]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, dword [rbp + 0xf]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movups xmm0, xmmword [rbp + 0x1f]
movups xmmword [rbp - 0x29], xmm0
movups xmm1, xmmword [rbp + 0x2f]
movups xmmword [rbp - 0x19], xmm1
movdqa xmm0, xmmword [0x1400d74f0]
movdqu xmmword [rbp + 0x2f], xmm0
mov byte [rbp + 0x1f], 0
mov rcx, qword [0x1400f5e58]
test rcx, rcx
je 0x14004317d
lea r8, [rbp - 0x29]
mov edx, 2
call fcn.14003fdd0
mov rcx, qword [0x1400f5e58]
test rcx, rcx
je 0x14004317d
mov rax, qword [rcx]
call qword [rax + 0x18]
nop
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x1400431b8
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400431b3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435f2
call fcn.14008526c
mov word [rdi], 0
jmp 0x140042f41
mov rcx, qword [rbx + 0x10]
movabs rax, 0x7ffffffffffffffe
sub rax, rcx
cmp rax, 0x12
jb 0x1400435fe
cmp qword [rbx + 0x18], 8
jb 0x1400431e7
mov rbx, qword [rbx]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x12
lea r9, str.Not_allowed_disk:
lea rcx, [rbp - 0x29]
call fcn.140045360
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x14004324a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140043245
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435d4
call fcn.14008526c
movups xmm0, xmmword [rbp - 0x29]
movups xmmword [rbp - 1], xmm0
movups xmm1, xmmword [rbp - 0x19]
movdqu xmmword [rbp + 0xf], xmm1
lea r8, [rbp - 1]
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 8
cmovae r8, rcx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
movd r9d, xmm1
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x1400432ba
xorps xmm0, xmm0
movups xmmword [rbp - 0x29], xmm0
movdqa xmm1, xmmword [0x1400d74f0]
movdqu xmmword [rbp - 0x19], xmm1
mov byte [rbp - 0x29], al
jmp 0x14004332a
movsxd rdx, eax
xor r8d, r8d
lea rcx, [rbp + 0x1f]
call fcn.14003acc0
lea rcx, [rbp + 0x1f]
cmp qword [rbp + 0x37], 0x10
cmovae rcx, qword [rbp + 0x1f]
lea r8, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae r8, qword [rbp - 1]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov eax, dword [rbp + 0x2f]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, dword [rbp + 0xf]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movups xmm0, xmmword [rbp + 0x1f]
movups xmmword [rbp - 0x29], xmm0
movups xmm1, xmmword [rbp + 0x2f]
movups xmmword [rbp - 0x19], xmm1
movdqa xmm0, xmmword [0x1400d74f0]
movdqu xmmword [rbp + 0x2f], xmm0
mov byte [rbp + 0x1f], 0
mov rcx, qword [0x1400f5e58]
test rcx, rcx
je 0x140043357
lea r8, [rbp - 0x29]
mov edx, 2
call fcn.14003fdd0
mov rcx, qword [0x1400f5e58]
test rcx, rcx
je 0x140043357
mov rax, qword [rcx]
call qword [rax + 0x18]
nop
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x140043392
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004338d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435f8
call fcn.14008526c
mov word [rdi], 1
jmp 0x140042f41
mov rcx, rbx
cmp qword [rbx + 0x18], 8
jb 0x1400433a9
mov rcx, qword [rbx]
call qword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
test eax, eax
je 0x14004358b
mov rcx, qword [rbx + 0x10]
movabs rax, 0x7ffffffffffffffe
sub rax, rcx
cmp rax, 0x16
jb 0x1400435fe
cmp qword [rbx + 0x18], 8
jb 0x1400433dc
mov rbx, qword [rbx]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0x16
lea r9, str.This_is_network_path:
lea rcx, [rbp - 0x29]
call fcn.140045360
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x14004343f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004343a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435d4
call fcn.14008526c
movups xmm0, xmmword [rbp - 0x29]
movups xmmword [rbp - 1], xmm0
movups xmm1, xmmword [rbp - 0x19]
movdqu xmmword [rbp + 0xf], xmm1
lea r8, [rbp - 1]
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 8
cmovae r8, rcx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
movd r9d, xmm1
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x1400434af
xorps xmm0, xmm0
movups xmmword [rbp - 0x29], xmm0
movdqa xmm1, xmmword [0x1400d74f0]
movdqu xmmword [rbp - 0x19], xmm1
mov byte [rbp - 0x29], al
jmp 0x14004351f
movsxd rdx, eax
xor r8d, r8d
lea rcx, [rbp + 0x1f]
call fcn.14003acc0
lea rcx, [rbp + 0x1f]
cmp qword [rbp + 0x37], 0x10
cmovae rcx, qword [rbp + 0x1f]
lea r8, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae r8, qword [rbp - 1]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov eax, dword [rbp + 0x2f]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, dword [rbp + 0xf]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movups xmm0, xmmword [rbp + 0x1f]
movups xmmword [rbp - 0x29], xmm0
movups xmm1, xmmword [rbp + 0x2f]
movups xmmword [rbp - 0x19], xmm1
movdqa xmm0, xmmword [0x1400d74f0]
movdqu xmmword [rbp + 0x2f], xmm0
mov byte [rbp + 0x1f], 0
mov rcx, qword [0x1400f5e58]
test rcx, rcx
je 0x14004354c
lea r8, [rbp - 0x29]
mov edx, 2
call fcn.14003fdd0
mov rcx, qword [0x1400f5e58]
test rcx, rcx
je 0x14004354c
mov rax, qword [rcx]
call qword [rax + 0x18]
nop
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x140042f3c
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042f37
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435da
jmp 0x140042f37
mov word [rdi], 0x101
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x140042f81
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042f7c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400435e0
jmp 0x140042f7c
call fcn.14008c94c
int3
call fcn.14008c94c
nop
call fcn.14008c94c
nop
call fcn.14008c94c
int3
call fcn.14008c94c
int3
call fcn.14008c94c
int3
call fcn.14008c94c
int3
call fcn.140035a30
int3