Function at 0x140026337
Capabilities:
Read clipboard data

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, rcx
call fcn.140026672
mov rbx, rax
test rax, rax
je 0x140026377
mov rcx, rbx
call fcn.1400260cc
mov qword [rsi + 8], rax
lea rax, [0x1400ba2f0]
mov qword [rsi + 0x10], rax
and qword [rsi], 0
jmp 0x140026661
mov ecx, 0xd
call sub.USER32.dll_GetClipboardData
test rax, rax
je 0x14002659f
mov rdi, rax
mov rcx, rax
call sub.KERNEL32.dll_GlobalLock
test rax, rax
je 0x14002659f
mov rbx, rax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rdi
mov rcx, rdi
call sub.KERNEL32.dll_GlobalSize
mov r13, rax
and r13, 0xfffffffffffffffe
add r13, rbx
lea r14, [rsp + 0x40]
mov qword [r14], 1
xorps xmm0, xmm0
movups xmmword [r14 + 8], xmm0
mov rdx, rax
shr rdx, 2
bt eax, 1
adc rdx, 0
mov rcx, r14
call fcn.1400809f7
xor edi, edi
lea r15, [rsp + 0x2c]
test di, di
je 0x1400263f8
mov ecx, ebp
jmp 0x140026408
cmp rbx, r13
je 0x1400265b7
movzx ecx, word [rbx]
add rbx, 2
mov eax, ecx
and eax, 0xf800
cmp ax, 0xd800
jne 0x140026423
cmp cx, 0xdbff
jbe 0x140026495
xor edi, edi
jmp 0x1400264ca
movzx eax, cx
shl rax, 0x10
mov r12, rax
shr r12, 0x10
cmp r12d, 0x7f
ja 0x140026465
mov rdx, qword [rsp + 0x50]
cmp rdx, qword [rsp + 0x48]
jne 0x140026450
mov rcx, r14
call fcn.14002669d
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x40]
mov byte [rax + rdx], r12b
inc rdx
mov qword [rsp + 0x50], rdx
xor edi, edi
jmp 0x1400263ef
and dword [rsp + 0x2c], 0
cmp r12d, 0x800
jae 0x1400264b8
shr rax, 0x16
or al, 0xc0
mov byte [rsp + 0x2c], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x2d], r12b
mov r12d, 2
jmp 0x14002656d
cmp rbx, r13
je 0x1400264c5
movzx eax, word [rbx]
add rbx, 2
mov edx, eax
add edx, 0x2000
mov di, 1
cmp dx, 0xfc00
jae 0x140026504
mov ebp, eax
jmp 0x1400264ca
cmp r12d, 0x10000
jae 0x14002652f
xor edi, edi
jmp 0x1400264d5
xor edi, edi
mov rbx, r13
and dword [rsp + 0x2c], 0
mov r12d, 0xfffd
mov eax, r12d
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x2c], al
mov eax, r12d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2d], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x2e], r12b
mov r12d, 3
jmp 0x14002656f
movzx eax, ax
and ecx, 0x3ff
and eax, 0x3ff
shl rcx, 0x1a
shl rax, 0x10
or rax, rcx
movabs rcx, 0x100000000
add rax, rcx
jmp 0x14002642a
mov rcx, rax
shr rcx, 0x22
or cl, 0xf0
mov byte [rsp + 0x2c], cl
mov rcx, rax
shr rcx, 0x1c
and cl, 0x3f
or cl, 0x80
mov byte [rsp + 0x2d], cl
shr rax, 0x16
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2e], al
and r12b, 0x3f
or r12b, 0x80
mov byte [rsp + 0x2f], r12b
mov r12d, 4
xor edi, edi
mov rcx, r14
mov rdx, r12
call fcn.1400809f7
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
add rcx, rsi
mov rdx, r15
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
add rsi, r12
mov qword [rsp + 0x50], rsi
jmp 0x1400263ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
shl rbx, 0x20
or rbx, 2
xor r15d, r15d
jmp 0x140026648
mov r15, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
xor r12d, r12d
mov rax, r14
mov r14, rdi
sub r14, r12
cmovb r14, rax
lea rcx, [r15 + r12]
mov eax, 0
cmovae rax, rcx
jb 0x140026636
cmp r14, 0xf
ja 0x1400265fd
xor edx, edx
cmp r14, rdx
je 0x14002660c
cmp byte [rax + rdx], 0
je 0x140026613
inc rdx
jmp 0x1400265ed
xor ecx, ecx
mov rdx, rax
mov r8, r14
call fcn.14002a6a0
jmp 0x140026618
mov rdx, r14
xor eax, eax
jmp 0x140026618
mov eax, 1
cmp rax, 1
jne 0x140026636
lea r13, [rdx + r12]
add r12, rdx
inc r12
cmp r13, rdi
jae 0x1400265c9
cmp byte [r15 + r13], 0
jne 0x1400265c9
jmp 0x140026639
mov r13, rdi
mov rsi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call sub.KERNEL32.dll_GlobalUnlock
call fcn.140026780
test r15, r15
je 0x140026357
mov qword [rsi], r15
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r13
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret