Function at 0x14019c960
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push rdi
sub rsp, 0x30
mov rdi, rdx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14019cbda
mov qword ss:[rsp + 0x50], rsi
call qword [sym.imp.USER32.dll_EmptyClipboard]
mov ecx, dword [rdi + 0x1c]
mov esi, dword [rdi + 0x20]
cmp ecx, esi
jle 0x14019c99c
mov eax, esi
mov dword [rdi + 0x20], ecx
mov esi, ecx
mov dword [rdi + 0x1c], eax
mov ecx, eax
sub esi, ecx
mov qword [rsp + 0x40], rbx
cmp dword [rdi + 0x18], 1
mov ecx, 0x42
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x28], r14
mov edx, esi
je 0x14019cab6
mov ebx, esi
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbp, rax
test rax, rax
je 0x14019cbbb
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
movsxd rdx, dword [rdi + 0x1c]
mov r8d, ebx
add rdx, qword [rdi]
mov rcx, rax
call fcn.14020af00
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea edx, [rsi*2 + 1]
mov ecx, 0x42
add edx, esi
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbx, rax
test rax, rax
je 0x14019ca94
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
xor r14d, r14d
mov r8, rax
mov r9d, r14d
test esi, esi
je 0x14019ca79
lea r10, [0x14028b210]
mov edx, dword [rdi + 0x1c]
mov rcx, qword [rdi]
add edx, r9d
movzx eax, byte [rdx + rcx]
shr rax, 4
movsx eax, byte [rax + r10]
mov word [r8], ax
mov ecx, dword [rdi + 0x1c]
mov rax, qword [rdi]
add ecx, r9d
inc r9d
movzx edx, byte [rcx + rax]
and edx, 0xf
movsx eax, byte [rdx + r10]
mov word [r8 + 2], ax
mov word [r8 + 4], 0x20
add r8, 6
cmp r9d, esi
jb 0x14019ca32
mov rcx, rbx
mov word [r8], r14w
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rdx, rbx
mov ecx, 0xd
call qword [sym.imp.USER32.dll_SetClipboardData]
lea rcx, str.BinaryData
nop dword [rax + rax]
call qword [sym.imp.USER32.dll_RegisterClipboardFormatW]
mov ecx, eax
mov rdx, rbp
call qword [sym.imp.USER32.dll_SetClipboardData]
jmp 0x14019cbbb
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x20], r15
mov ebp, esi
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
lea edx, [rsi + 1]
mov ecx, 0x42
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov r15, rax
test r12, r12
je 0x14019cbb1
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalLock]
movsxd rdx, dword ds:[rdi + 0x1c]
mov r8d, ebp
add rdx, qword [rdi]
mov rcx, rax
call fcn.14020af00
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
test r15, r15
je 0x14019cb94
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalLock]
movsxd rdx, dword [rdi + 0x1c]
mov r8d, ebp
add rdx, qword [rdi]
mov rcx, rax
mov rbx, rax
call fcn.14020af00
test esi, esi
je 0x14019cb78
xor r14d, r14d
movzx eax, byte [rbx]
cmp byte [rdi + 0x2c], r14b
jge 0x14019cb5c
mov edx, 0x117
movzx ecx, ax
call fcn.1401f2338
mov ecx, eax
jmp 0x14019cb68
sub eax, 0x20
mov ecx, r14d
cmp eax, 0x5e
setbe cl
test ecx, ecx
jne 0x14019cb6f
mov byte [rbx], 0x2e
inc rbx
sub rbp, 1
jne 0x14019cb42
mov rcx, r15
mov byte [rbx], 0
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rdx, r15
mov ecx, 1
call qword [sym.imp.USER32.dll_SetClipboardData]
lea rcx, str.BinaryData
nop dword [rax + rax]
call qword [sym.imp.USER32.dll_RegisterClipboardFormatW]
mov ecx, eax
mov rdx, r12
call qword [sym.imp.USER32.dll_SetClipboardData]
mov r12, qword [rsp + 0x58]
mov r15, qword [rsp + 0x20]
nop dword [rax + rax]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov r14, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret