Function at 0x140069d80
Capabilities:
Open clipboard
Read clipboard data
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2b8
mov r12, qword [0x1400f6e30]
mov rax, qword [r12]
mov qword [rsp + 0x2a8], rax
xor eax, eax
movzx eax, byte [rdx + 6]
mov r10, rcx
mov r15, rdx
mov rbp, r8
mov ebx, r9d
cmp al, 0xec
je 0x140069808
cmp al, 0xb0
jne case.0x140069803.3
movzx eax, byte [rdx]
add eax, 0x30
cmp al, 0xb
ja case.0x140069803.3
lea rdx, [0x1400f1fc4]
movzx eax, al
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
lea r14, str.IDENTIFY
mov r13d, 0x1b0501
lea r8, [rsp + 0x60]
mov ecx, 0x47
xor eax, eax
mov rdi, r8
rep stosq qword [rdi], rax
mov dword [rdi], 0
test ebx, ebx
jle 0x140069960
cmp ebx, 0x200
jg 0x140069baf
mov eax, ebx
lea edx, [rax + 0x20]
lea r9d, [rax + 0x3c]
mov dword [rsp + 0x7c], eax
mov rcx, r10
mov dword [rsp + 0x78], edx
mov rdx, qword [r15]
lea rax, [rsp + 0x5c]
movabs rsi, 0x4b53494449534353
mov dword [rsp + 0x60], 0x1c
mov qword [rsp + 0x80], rdx
mov edx, 0x4d008
mov qword [rsp + 0x64], rsi
mov dword [rsp + 0x6c], 0x3c
mov dword [rsp + 0x70], r13d
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], r8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140069bc0
mov rax, qword [0x1400f6f00]
mov r8d, dword [rsp + 0x74]
movzx eax, byte [rax]
test r8d, r8d
jne 0x140069b56
movzx r8d, byte [rsp + 0x80]
test r8b, r8b
jne 0x140069b6f
cmp al, 1
jbe 0x140069918
mov r9d, dword [rsp + 0x7c]
mov r8d, dword [rsp + 0x5c]
mov rdx, r14
lea rcx, str.__IOCTL_SCSI_MINIPORT__s_succeeded__bytes_returned:__u__buffer__u__n
call fcn.140002a70
xor eax, eax
lea rdx, [rsp + 0x8c]
mov rcx, r15
cmp r13d, 0x1b0506
cmovne rdx, rax
call fcn.1400670f0
test ebx, ebx
jg 0x1400699c0
jne 0x140069930
cmp r13d, 0x1b0506
je 0x1400699f8
nop
xor eax, eax
mov rdx, qword [rsp + 0x2a8]
sub rdx, qword [r12]
jne 0x140069d6e
add rsp, 0x2b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
je 0x1400699e0
cmp ebx, 0xfffffe00
jl 0x140069baf
mov eax, ebx
lea rcx, [rsp + 0x9c]
neg eax
cmp eax, 8
jae 0x140069b20
test al, 4
jne 0x140069b94
test eax, eax
je 0x140069843
movzx edx, byte [rbp]
mov byte [rsp + 0x9c], dl
test al, 2
je 0x140069843
mov edx, eax
movzx r9d, word [rbp + rdx - 2]
mov word [rcx + rdx - 2], r9w
jmp 0x140069843
lea rdx, [rsp + 0x8c]
movsxd r8, ebx
mov rcx, rbp
call sub.msvcrt.dll_memcpy
jmp 0x140069930
xor eax, eax
cmp r13d, 0x1b0506
sete al
shl eax, 3
jmp 0x140069843
mov rax, qword [rsp + 0x8c]
mov qword [r15], rax
jmp 0x140069930
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x28
mov eax, 0xffffffff
jmp 0x140069932
lea r14, str.ENABLE_DISABLE_AUTO_OFFLINE
mov r13d, 0x1b050a
jmp 0x140069815
lea r14, str.DISABLE_SMART
mov r13d, 0x1b0505
jmp 0x140069815
lea r14, str.RETURN_STATUS
mov r13d, 0x1b0506
jmp 0x140069815
lea r14, str.EXECUTE_OFFLINE_DIAGS
mov r13d, 0x1b0509
jmp 0x140069815
lea r14, str.READ_SMART_LOG
mov r13d, 0x1b050b
jmp 0x140069815
lea r14, str.WRITE_SMART_LOG
mov r13d, 0x1b050c
jmp 0x140069815
lea r14, str.ENABLE_SMART
mov r13d, 0x1b0504
jmp 0x140069815
lea r14, str.READ_SMART_ATTRIBS
mov r13d, 0x1b0502
jmp 0x140069815
lea r14, str.ENABLE_DISABLE_AUTOSAVE
mov r13d, 0x1b0507
jmp 0x140069815
lea r14, str.READ_SMART_THRESHOLDS
mov r13d, 0x1b0503
jmp 0x140069815
mov rdx, qword [rbp]
lea rdi, [rsp + 0xa0]
mov rsi, rbp
mov qword [rsp + 0x9c], rdx
mov edx, eax
mov r9, qword [rbp + rdx - 8]
mov qword [rcx + rdx - 8], r9
sub rcx, rdi
sub rsi, rcx
add ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x140069843
test al, al
jne 0x140069bfc
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 5
jmp 0x140069a1c
test al, al
jne 0x140069c70
cmp byte [rsp + 0x81], 1
sbb ebx, ebx
call qword [sym.imp.msvcrt.dll__errno]
and ebx, 0x23
add ebx, 5
mov dword [rax], ebx
jmp 0x140069a1c
mov edx, dword [rbp]
mov dword [rsp + 0x9c], edx
mov edx, eax
mov r9d, dword [rbp + rdx - 4]
mov dword [rcx + rdx - 4], r9d
jmp 0x140069843
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x16
jmp 0x140069a1c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [0x1400f6f00]
cmp byte [rax], 0
jne 0x140069cf7
cmp ebx, 1
je 0x140069ced
mov esi, 5
cmp ebx, 0x32
je 0x140069ced
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], esi
jmp 0x140069a1c
mov rdx, r14
lea rcx, str.__IOCTL_SCSI_MINIPORT__s_failed__ReturnCode0x_08x_n
call fcn.140002a70
lea rcx, str.____Input_:
call fcn.140002a70
movzx eax, byte [r15 + 5]
lea r9, [0x1400f11ef]
lea rdx, [0x1400f11f3]
lea rcx, str._s0x_02x__s0x_02x__SC0x_02x__SN0x_02x__CL0x_02x__CH0x_02x__SEL0x_02x_n
mov dword [rsp + 0x48], eax
movzx eax, byte [r15 + 4]
mov dword [rsp + 0x40], eax
movzx eax, byte [r15 + 3]
mov dword [rsp + 0x38], eax
movzx eax, byte [r15 + 2]
mov dword [rsp + 0x30], eax
movzx eax, byte [r15 + 1]
mov dword [rsp + 0x28], eax
movzx eax, byte [r15]
mov dword [rsp + 0x20], eax
movzx r8d, byte [r15 + 6]
call fcn.140002a70
jmp 0x140069b5e
movzx r9d, byte [rsp + 0x81]
mov rdx, r14
lea rcx, str.__IOCTL_SCSI_MINIPORT__s_failed__DriverError0x_02x__IDEError0x_02x_n
call fcn.140002a70
lea rcx, str.____Input_:
call fcn.140002a70
movzx eax, byte [r15 + 5]
lea r9, [0x1400f11ef]
lea rdx, [0x1400f11f3]
lea rcx, str._s0x_02x__s0x_02x__SC0x_02x__SN0x_02x__CL0x_02x__CH0x_02x__SEL0x_02x_n
mov dword [rsp + 0x48], eax
movzx eax, byte [r15 + 4]
mov dword [rsp + 0x40], eax
movzx eax, byte [r15 + 3]
mov dword [rsp + 0x38], eax
movzx eax, byte [r15 + 2]
mov dword [rsp + 0x30], eax
movzx eax, byte [r15 + 1]
mov dword [rsp + 0x28], eax
movzx eax, byte [r15]
mov dword [rsp + 0x20], eax
movzx r8d, byte [r15 + 6]
call fcn.140002a70
jmp 0x140069b77
mov esi, 0x28
jmp 0x140069bef
mov r8d, ebx
mov rdx, r14
lea rcx, str.__IOCTL_SCSI_MINIPORT__s_failed__Error_ld_n
call fcn.140002a70
lea rcx, str.____Input_:
call fcn.140002a70
movzx eax, byte [r15 + 5]
lea r9, [0x1400f11ef]
lea rdx, [0x1400f11f3]
lea rcx, str._s0x_02x__s0x_02x__SC0x_02x__SN0x_02x__CL0x_02x__CH0x_02x__SEL0x_02x_n
mov dword [rsp + 0x48], eax
movzx eax, byte [r15 + 4]
mov dword [rsp + 0x40], eax
movzx eax, byte [r15 + 3]
mov dword [rsp + 0x38], eax
movzx eax, byte [r15 + 2]
mov dword [rsp + 0x30], eax
movzx eax, byte [r15 + 1]
mov dword [rsp + 0x28], eax
movzx eax, byte [r15]
mov dword [rsp + 0x20], eax
movzx r8d, byte [r15 + 6]
call fcn.140002a70
jmp 0x140069bd8
call fcn.140082d70
nop
nop word cs:[rax + rax]
nop
push r15
mov eax, 0x10c8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.140083e60
sub rsp, rax
mov rdi, qword [0x1400f6e30]
mov r8d, 5
lea rdx, str._dev_
mov rax, qword [rdi]
mov qword [rsp + 0x10b8], rax
xor eax, eax
mov rax, qword [rcx]
mov word [rcx + 8], 0
mov rbx, rcx
mov rax, qword [rax - 0x18]
mov rsi, qword [rcx + rax + 0x10]
mov rcx, rsi
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x140069ded
lea rdi, [rsi + 5]
mov rcx, rdi
call fcn.140064f40
test eax, eax
cmovs rsi, rdi
lea rdx, str.tw_cli_clip
mov rcx, rsi
mov dword [rsp + 0x2c], 0xffffffff
mov dword [rsp + 0x30], 0xffffffff
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x14006a260
lea rdx, str.tw_cli_stdin
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x14006a1f0
xor ecx, ecx
lea r14, [rsp + 0xb0]
call qword [fcn.1400928f0]
mov r8d, 0x1000
mov edx, 1
mov rcx, r14
mov r9, rax
call sub.msvcrt.dll_fread
mov rbp, qword [0x1400f6f00]
mov edi, eax
cmp byte [rbp], 1
jbe 0x140069e72
mov r8d, edi
mov rdx, rsi
lea rcx, str._s:_Read__d_bytes_n
call fcn.140002a70
test edi, edi
jle 0x14006a468
cmp edi, 0xfff
jg 0x14006a300
movsxd rax, edi
cmp byte [rbp], 1
mov byte [rsp + rax + 0xb0], 0
jbe 0x140069ebb
cmp edi, 0x65
lea r8, [0x1400f0eda]
mov rdx, r14
lea rax, [0x1400f1ff4]
lea rcx, str.__n_.100s_s_n__n
cmovge r8, rax
call fcn.140002a70
lea rdi, [rbx + 0x12]
mov eax, ebx
mov qword [rbx + 0xa], 0
lea rdx, str._Model_
mov qword [rbx + 0x202], 0
and rdi, 0xfffffffffffffff8
sub eax, edi
lea ecx, [rax + 0x20a]
xor eax, eax
shr ecx, 3
rep stosq qword [rdi], rax
mov rcx, r14
call sub.msvcrt.dll_strstr
mov rsi, rax
test rax, rax
je 0x140069f63
lea rcx, [rax + 9]
lea rdx, [0x1400f2077]
call sub.msvcrt.dll_strcspn
mov rdi, rax
cmp eax, 1
jle 0x14006a52c
lea edx, [rax - 2]
shr edx, 1
lea r8d, [rdx + 2]
mov edx, 2
add r8, r8
jmp 0x140069f3d
add rdx, 2
cmp r8, rdx
je 0x14006a4b8
movzx ecx, byte [rsi + rdx + 8]
mov ch, byte [rsi + rdx + 7]
mov word [rbx + rdx + 0x3e], cx
movsxd rcx, edx
cmp rdx, 0x28
jne 0x140069f30
xor eax, eax
test al, al
je 0x140069f63
movzx eax, byte [rsi + rcx + 9]
mov byte [rbx + rcx + 0x41], al
lea rdx, str._Firmware_Version_
mov rcx, r14
call sub.msvcrt.dll_strstr
mov rsi, rax
test rax, rax
je 0x140069fe3
lea rcx, [rax + 0x14]
lea rdx, [0x1400f2077]
call sub.msvcrt.dll_strcspn
mov rdi, rax
cmp eax, 1
jle 0x14006a539
lea edx, [rax - 2]
shr edx, 1
lea r8d, [rdx + 2]
mov edx, 2
add r8, r8
jmp 0x140069fbd
add rdx, 2
cmp r8, rdx
je 0x14006a488
movzx ecx, byte [rsi + rdx + 0x13]
mov ch, byte [rsi + rdx + 0x12]
mov word [rbx + rdx + 0x36], cx
movsxd rcx, edx
cmp rdx, 8
jne 0x140069fb0
xor eax, eax
test al, al
je 0x140069fe3
movzx eax, byte [rsi + rcx + 0x14]
mov byte [rbx + rcx + 0x39], al
lea rdx, str._Serial_
mov rcx, r14
call sub.msvcrt.dll_strstr
mov rsi, rax
test rax, rax
je 0x14006a063
lea rcx, [rax + 0xa]
lea rdx, [0x1400f2077]
call sub.msvcrt.dll_strcspn
mov rdi, rax
cmp eax, 1
jle 0x14006a546
lea edx, [rax - 2]
shr edx, 1
lea r8d, [rdx + 2]
mov edx, 2
add r8, r8
jmp 0x14006a03d
add rdx, 2
cmp rdx, r8
je 0x14006a4a0
movzx ecx, byte [rsi + rdx + 9]
mov ch, byte [rsi + rdx + 8]
mov word [rbx + rdx + 0x1c], cx
movsxd rcx, edx
cmp rdx, 0x14
jne 0x14006a030
xor eax, eax
test al, al
je 0x14006a063
movzx eax, byte [rsi + rcx + 0xa]
mov byte [rbx + rcx + 0x1f], al
lea rdx, str.Capacity_
mov rcx, r14
mov dword [rsp + 0x34], 0
call sub.msvcrt.dll_strstr
lea r8, [rsp + 0x34]
lea rdx, str.____r_n___lu
test rax, rax
lea rcx, [rax + 0xb]
lea rax, [0x1400f0eda]
cmove rcx, rax
call fcn.1400934c0
mov eax, dword [rsp + 0x34]
test eax, eax
jne 0x14006a320
mov eax, dword [0x1400f3540]
mov edx, 0x4000
mov rcx, r14
mov word [rbx + 0xb8], dx
lea rdx, str.Drive_Smart_Data:
mov dword [rbx + 0xae], eax
mov eax, 1
mov word [rbx + 0xb4], ax
call sub.msvcrt.dll_strstr
test rax, rax
je 0x14006a338
cmp byte [rax + 0x11], 0
je 0x14006a338
lea r15, [rax + 0x11]
lea rdi, [rbx + 0x20a]
xor esi, esi
lea r13, [rsp + 0x3c]
lea r12, [rsp + 0x38]
lea rbp, str._x__n
jmp 0x14006a154
mov eax, dword [rsp + 0x38]
cmp eax, 0xff
ja 0x14006a17a
add esi, 1
mov byte [rdi], al
cmp esi, 0x200
je 0x14006a433
movsxd rax, dword [rsp + 0x3c]
test eax, eax
jle 0x14006a17a
add r15, rax
cmp byte [r15], 0x3c
jne 0x14006a150
mov rcx, r15
lea rdx, [0x1400f2077]
call sub.msvcrt.dll_strcspn
add r15, rax
add rdi, 1
mov r9, r13
mov r8, r12
mov rdx, rbp
mov rcx, r15
mov dword [rsp + 0x38], 0xffffffff
mov dword [rsp + 0x3c], 0xffffffff
call fcn.1400934c0
cmp eax, 1
je 0x14006a110
xor eax, eax
cmp byte [rbx + 0x41], 0
jne 0x14006a438
mov rcx, r14
lea rdx, str.Error:
call sub.msvcrt.dll_strstr
mov rcx, rax
test rax, rax
je 0x14006a2e0
mov edx, 0x3a
call sub.msvcrt.dll_strchr
mov rsi, rax
test rax, rax
je 0x14006a300
lea rdi, [rax + 1]
lea rdx, [0x1400f2077]
mov rbp, qword [rbx]
mov rcx, rdi
call sub.msvcrt.dll_strcspn
mov r9, rdi
mov edx, 5
lea r8, [0x1400f1175]
mov byte [rsi + rax + 1], 0
add rbx, qword [rbp - 0x18]
mov rcx, rbx
call fcn.140022760
jmp 0x14006a233
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x2c]
mov rcx, rsi
lea rdx, str.tw_cli__nc_u_p_u_n
call fcn.1400934c0
test eax, eax
js 0x14006a21f
mov rcx, rsi
call sub.msvcrt.dll_strlen
cmp dword [rsp + 0x30], eax
je 0x14006a3b8
mov rax, qword [rbx]
mov edx, 0x16
add rbx, qword [rax - 0x18]
mov rcx, rbx
call fcn.140022610
mov rdi, qword [0x1400f6e30]
mov rdx, qword [rsp + 0x10b8]
sub rdx, qword [rdi]
jne 0x14006a527
add rsp, 0x10c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14006a515
mov ecx, 1
call qword [sym.imp.USER32.dll_GetClipboardData]
mov rbp, rax
test rax, rax
je 0x14006a450
mov rcx, rax
lea r14, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rcx, rbp
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GlobalSize]
mov r9d, 0x1000
mov rdx, r12
mov rcx, r14
mov rdi, rax
mov eax, 0x1000
cmp edi, eax
cmovg edi, eax
movsxd r8, edi
call fcn.140082dc0
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalFree]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rbp, qword [0x1400f6f00]
jmp 0x140069e5a
mov rcx, r14
lea rdx, str.error_:
call sub.msvcrt.dll_strstr
mov rcx, rax
test rax, rax
jne 0x14006a1a1
nop dword [rax + rax]
mov rax, qword [rbx]
mov edx, 5
add rbx, qword [rax - 0x18]
mov rcx, rbx
call fcn.140022610
jmp 0x14006a233
mov ecx, 0x200
mov dword [rbx + 0x82], eax
mov word [rbx + 0x6c], cx
jmp 0x14006a0a9
lea rdx, str.Drive_SMART_Data:
mov rcx, r14
call sub.msvcrt.dll_strstr
test rax, rax
je 0x14006a356
cmp byte [rax + 0x11], 0
jne 0x14006a0ef
lea rdx, str.S.M.A.R.T.__Controller
mov rcx, r14
mov r15, r14
call sub.msvcrt.dll_strstr
test rax, rax
je 0x14006a0f3
cmp byte [rax + 0x16], 0
je 0x14006a0f3
lea r15, [rax + 0x16]
lea rdx, str._td_class
mov rcx, r15
call sub.msvcrt.dll_strstr
test rax, rax
je 0x14006a39d
cmp byte [rax + 9], 0
je 0x14006a39d
lea r15, [rax + 9]
mov rcx, r15
lea rdx, [0x1400f2077]
call sub.msvcrt.dll_strcspn
add r15, rax
jmp 0x14006a0f3
movsxd rax, dword [rsp + 0x2c]
lea rdi, [rsp + 0x40]
mov edx, 0x64
lea r8, str.tw_cli___s_show_all
mov rcx, rdi
lea r9, [rsi + rax]
call fcn.140085d40
mov rbp, qword [0x1400f6f00]
cmp byte [rbp], 1
ja 0x14006a4fe
lea rdx, [0x1400f205c]
mov rcx, rdi
call fcn.140059100
mov r12, rax
test rax, rax
je 0x14006a4de
lea r14, [rsp + 0xb0]
mov r9, rax
mov r8d, 0x1000
mov edx, 1
mov rcx, r14
call sub.msvcrt.dll_fread
mov rcx, r12
mov edi, eax
call fcn.140059110
jmp 0x140069e5a
mov eax, 1
mov byte [rbx + 9], al
mov eax, 1
mov byte [rbx + 8], 1
jmp 0x14006a233
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rax, qword [0x1400f6f00]
cmp byte [rax], 1
ja 0x14006a4ca
nop word [rax + rax]
mov rax, qword [rbx]
mov edx, 2
add rbx, qword [rax - 0x18]
mov rcx, rbx
call fcn.140022610
jmp 0x14006a233
cmp edi, ecx
setg al
cmp ecx, 6
setle dl
and eax, edx
jmp 0x140069fd6
cmp edi, ecx
setg al
cmp ecx, 0x12
setle dl
and eax, edx
jmp 0x14006a056
cmp edi, ecx
setg al
cmp ecx, 0x26
setle dl
and eax, edx
jmp 0x140069f56
xor r8d, r8d
mov rdx, rsi
lea rcx, str._s:_Read__d_bytes_n
call fcn.140002a70
jmp 0x14006a468
cmp byte [rbp], 1
jbe 0x14006a468
mov r8d, 0xffffffff
mov rdx, rsi
lea rcx, str._s:_Read__d_bytes_n
call fcn.140002a70
jmp 0x14006a468
mov r8, rdi
mov rdx, rsi
lea rcx, str._s:_Run:___s__n
call fcn.140002a70
jmp 0x14006a3eb
mov rax, qword [0x1400f6f00]
cmp byte [rax], 1
jbe 0x14006a468
jmp 0x14006a4e4
call fcn.140082d70
jne 0x140069f63
xor ecx, ecx
jmp 0x140069f5a
jne 0x140069fe3
xor ecx, ecx
jmp 0x140069fda
jne 0x14006a063
xor ecx, ecx
jmp 0x14006a05a