Function at 0x14009f0c0
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push rbx
push rdi
push r12
sub rsp, 0x150
mov rax, qword [0x140153558]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x68], rdx
mov rbx, r9
movsxd r9, r8d
mov r12, rdx
lea r10, [0x140000000]
test r8d, r8d
je 0x14009f7dc
cmp byte [r9 + r10 + 0x16a9b4], 0
je 0x14009f12f
mov r8, qword [str.text_plain]
mov rax, rbx
sub r8, rbx
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x14009f127
inc rax
test ecx, ecx
jne 0x14009f114
test edx, edx
je 0x14009f7dc
xor ecx, ecx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14009f873
mov r8, qword [str.text_plain]
mov rax, rbx
sub r8, rbx
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x14009f163
inc rax
test ecx, ecx
jne 0x14009f150
mov qword [rsp + 0x170], rbp
mov qword [rsp + 0x148], rsi
test edx, edx
jne 0x14009f25a
lea ecx, [rdx + 0xd]
call qword [sym.imp.USER32.dll_GetClipboardData]
mov rbp, rax
test rax, rax
je 0x14009f7c1
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rsi, rax
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rax + rbx*2], 0
jne 0x14009f1a3
lea rcx, [rbx*4 + 1]
call fcn.1400fbf44
lea edx, [rbx*4]
mov r9d, ebx
mov r8, rsi
mov rcx, rax
mov rdi, rax
call fcn.140042740
mov ecx, eax
mov byte [rcx + rdi], 0
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
movzx ecx, byte [rdi]
mov r8, rdi
mov rdx, rdi
test cl, cl
je 0x14009f212
nop
movzx eax, cl
cmp cl, 0xd
jne 0x14009f201
movzx ecx, byte [rdx + 1]
cmp cl, 0xa
je 0x14009f20b
mov byte [r8], al
inc r8
movzx ecx, byte [rdx + 1]
inc rdx
test cl, cl
jne 0x14009f1f0
mov byte [r8], 0
mov edx, select
mov rax, qword [str.text_plain]
sub r8d, edi
mov dword [0x140167504], r8d
mov rcx, r12
mov qword [0x140150830], rax
mov qword [0x140150828], rdi
mov rax, qword [r12]
call qword [rax + select]
mov rcx, rdi
call fcn.1400fbf3c
xor ebx, ebx
mov qword [0x140150828], rbx
jmp 0x14009f7c1
mov rdx, qword [str.image]
sub rdx, rbx
movzx ecx, byte [rbx]
movzx eax, byte [rbx + rdx]
sub ecx, eax
jne 0x14009f276
inc rbx
test eax, eax
jne 0x14009f264
test ecx, ecx
jne 0x14009f7c1
mov qword [rsp + 0x138], r14
mov ecx, 8
mov qword [rsp + 0x130], r15
call qword [sym.imp.USER32.dll_GetClipboardData]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x14009f53e
mov rcx, rax
mov qword [rsp + 0x140], r13
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rsi, rax
movzx edx, word [rax + 0xe]
mov ebp, dword [rax + 4]
mov r13d, dword [rax + 8]
mov eax, 0xfff7
lea ecx, [rdx - 0x18]
test ax, cx
jne 0x14009f3e3
cmp dword [rsi + 0x10], 0
jne 0x14009f3e3
cmp dword [rsi + 0x20], 0
jne 0x14009f3e3
mov edi, edx
shr edi, 3
cmp edi, 3
jne 0x14009f308
lea eax, [rbp + 1]
lea eax, [rax + rax*2]
cdq
and edx, edi
lea r12d, [rdx + rax]
sar r12d, 2
jmp 0x14009f30b
mov r12d, ebp
mov eax, r13d
cdq
xor eax, edx
sub eax, edx
mov dword [rsp + 0x64], eax
imul eax, edi
imul eax, ebp
movsxd rcx, eax
call fcn.1400fbf44
test r13d, r13d
mov qword [rsp + 0x70], rax
mov r14d, r12d
lea r11d, [r13 - 1]
mov r9, rax
mov rbx, 0xffffffffffffffff
mov eax, 1
mov ecx, r13d
cmovg eax, ebx
not ecx
xor ebx, ebx
mov dword [rsp + 0x60], eax
test r13d, r13d
mov r15d, ebx
cmovle r11d, ebx
cmovle r15d, ecx
imul r14d, r11d
imul r12d, eax
shl r14d, 2
shl r12d, 2
nop
mov eax, ebx
test r13d, r13d
jle 0x14009f37f
cmp r11d, r15d
setge al
jmp 0x14009f385
cmp r11d, r15d
setle al
test eax, eax
je 0x14009f4cd
movsxd rax, r14d
lea r8, [rsi + 0x28]
add r8, rax
test ebp, ebp
jle 0x14009f3d9
mov r10, rbp
nop
movzx eax, byte [r8 + 2]
movzx edx, byte [r8]
movzx ecx, byte [r8 + 1]
add r8, 3
mov byte [r9], al
mov byte [r9 + 1], cl
mov byte [r9 + 2], dl
add r9, 3
cmp edi, 4
jne 0x14009f3d3
movzx eax, byte [r8]
mov byte [r9], al
inc r9
inc r8
sub r10, 1
jne 0x14009f3a0
add r11d, dword [rsp + 0x60]
add r14d, r12d
jmp 0x14009f370
cmp dword [rsi + 0x10], 3
lea rdi, [rsi + 0x428]
jne 0x14009f3f6
lea rdi, [rsi + 0x34]
jmp 0x14009f405
mov eax, dword [rsi + 0x20]
test eax, eax
je 0x14009f405
lea rdi, [rax + 0xa]
lea rdi, [rsi + rdi*4]
mov ecx, 0x20
call fcn.1400fbf00
xor ebx, ebx
mov rcx, rax
test rax, rax
je 0x14009f438
mov eax, r13d
mov qword [rsp + 0x20], rbx
cdq
xor r9d, r9d
xor eax, edx
sub eax, edx
mov edx, ebp
mov r8d, eax
call fcn.14006a6b0
mov r14, rax
jmp 0x14009f43b
mov r14, rbx
mov rcx, r14
call fcn.140087780
mov rcx, qword [0x140167f88]
mov eax, r13d
cdq
mov r15d, eax
xor r15d, edx
mov rax, qword [rcx]
sub r15d, edx
call qword [rax + 0x300]
mov dword [rsp + 0x58], ebx
mov r9d, ebp
mov qword [rsp + 0x50], rsi
mov rcx, rax
mov qword [rsp + 0x48], rdi
xor r8d, r8d
mov dword [rsp + 0x40], r15d
xor edx, edx
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r15d
call qword [sym.imp.GDI32.dll_SetDIBitsToDevice]
mov r9d, ebp
mov dword [rsp + 0x28], ebx
xor r8d, r8d
mov dword [rsp + 0x20], r15d
xor edx, edx
xor ecx, ecx
call fcn.14006ab40
mov rsi, rax
mov edi, 3
call fcn.140087740
test r14, r14
je 0x14009f4dc
mov rax, qword [r14]
lea edx, [rdi - 2]
mov rcx, r14
call qword [rax + 0x18]
jmp 0x14009f4dc
mov r15d, dword [rsp + 0x64]
mov r12, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov r13, qword [rsp + 0x140]
test rsi, rsi
je 0x14009f7b1
mov ecx, 0x58
call fcn.1400fbf00
test rax, rax
je 0x14009f52f
mov dword [rsp + 0x28], ebx
mov r9d, r15d
mov r8d, ebp
mov dword [rsp + 0x20], edi
mov rdx, rsi
mov rcx, rax
call fcn.14005c1e0
mov rdi, rax
mov dword [rax + 0x38], 1
jmp 0x14009f766
mov rdi, rbx
mov dword [rbx + 0x38], 1
jmp 0x14009f766
mov ecx, select
call qword [sym.imp.USER32.dll_GetClipboardData]
mov r14, rax
test rax, rax
je 0x14009f7b1
movaps xmmword [rsp + 0x120], xmm6
lea r8, [rsp + 0x90]
mov edx, 0x6c
movaps xmmword [rsp + 0x110], xmm7
mov rcx, rax
call qword [sym.imp.GDI32.dll_GetEnhMetaFileHeader]
mov ebp, dword [rsp + 0xb0]
xor ecx, ecx
mov r15d, dword [rsp + 0xb4]
sub ebp, dword [rsp + 0xa8]
sub r15d, dword [rsp + 0xac]
inc ebp
inc r15d
call qword [sym.imp.USER32.dll_GetDC]
mov rcx, rax
mov edx, 4
mov rsi, rax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edx, 8
mov rcx, rsi
movd xmm7, eax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov rdx, rsi
xor ecx, ecx
mov ebx, eax
call qword [sym.imp.USER32.dll_ReleaseDC]
cvtdq2ps xmm7, xmm7
mov rcx, r12
movd xmm0, ebx
mulss xmm7, dword [0x14011d118]
cvtdq2ps xmm0, xmm0
divss xmm7, xmm0
call fcn.14005a3c0
mov rbx, qword [rax + 0xd0]
call fcn.140044f90
mov rdx, qword [rbx]
mov rcx, rbx
mov rdi, rax
mov rsi, qword [rax]
call qword [rdx + select]
mov edx, eax
mov rcx, rdi
call qword [rsi + select]
movaps xmm6, xmm0
call fcn.140059f50
test rax, rax
jne 0x14009f638
call fcn.140050030
movaps xmm1, xmm6
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0xb8]
movd xmm0, ebp
movaps xmm2, xmm6
mulss xmm2, xmm7
xor ebx, ebx
mov qword [rsp + 0x78], rbx
movd xmm1, r15d
cvtdq2ps xmm0, xmm0
lea ecx, [rbx + 0x20]
cvtdq2ps xmm1, xmm1
divss xmm0, xmm2
divss xmm1, xmm2
cvttss2si edi, xmm0
cvttss2si ebp, xmm1
mov dword [rsp + 0x80], edi
mov dword [rsp + 0x84], ebp
call fcn.1400fbf00
movaps xmm7, xmmword [rsp + 0x110]
test rax, rax
je 0x14009f6a3
lea r9d, [rbx + 1]
mov qword [rsp + 0x20], rbx
mov r8d, ebp
mov edx, edi
mov rcx, rax
call fcn.14006a6b0
mov rsi, rax
jmp 0x14009f6a6
mov rsi, rbx
mov rcx, rsi
call fcn.140087780
mov rcx, qword [0x140167f88]
mov edx, 0xff
mov rax, qword [rcx]
call qword [rax + 0x278]
mov rcx, qword [0x140167f88]
mov r9d, edi
xor r8d, r8d
mov dword [rsp + 0x20], ebp
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0xe0]
movd xmm0, dword [rsp + 0x80]
movd xmm1, dword [rsp + 0x84]
mov rcx, qword [0x140167f88]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm6
mulss xmm1, xmm6
cvttss2si eax, xmm0
mov dword [rsp + 0x80], eax
cvttss2si eax, xmm1
mov dword [rsp + 0x84], eax
mov rax, qword [rcx]
call qword [rax + 0x300]
lea r8, [rsp + 0x78]
mov rdx, r14
mov rcx, rax
call qword [sym.imp.GDI32.dll_PlayEnhMetaFile]
mov rcx, rsi
call fcn.14006a9d0
mov rdi, rax
call fcn.140087740
movaps xmm6, xmmword [rsp + 0x120]
test rsi, rsi
je 0x14009f761
mov rax, qword [rsi]
mov edx, 1
mov rcx, rsi
call qword [rax + 0x18]
test rdi, rdi
je 0x14009f7b1
mov rax, qword [str.image]
mov edx, select
mov qword [0x140150830], rax
mov rcx, r12
mov qword [0x140167508], rdi
mov rax, qword [r12]
call qword [rax + select]
lea rcx, [0x14010129c]
mov qword [0x140150830], rcx
test eax, eax
jne 0x14009f7b1
mov qword [0x140167508], rbx
mov edx, 1
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + select]
mov r14, qword [rsp + 0x138]
mov r15, qword [rsp + 0x130]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rsi, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x170]
jmp 0x14009f873
mov rbx, qword [r10 + r9*8 + 0x16aa18]
test rbx, rbx
je 0x14009f86a
mov eax, dword [r10 + r9*4 + 0x16aa28]
inc eax
movsxd rcx, eax
call fcn.1400fbf44
movzx ecx, byte [rbx]
mov rdi, rax
mov rdx, rax
test cl, cl
je 0x14009f833
nop dword [rax]
movzx r8d, cl
cmp cl, 0xd
jne 0x14009f822
movzx ecx, byte [rbx + 1]
cmp cl, 0xa
je 0x14009f82c
mov byte [rdx], r8b
inc rdx
movzx ecx, byte [rbx + 1]
inc rbx
test cl, cl
jne 0x14009f810
mov byte [rdx], 0
mov rcx, r12
mov rax, qword [str.text_plain]
sub edx, edi
mov dword [0x140167504], edx
mov edx, select
mov qword [0x140150830], rax
mov qword [0x140150828], rdi
mov rax, qword [r12]
call qword [rax + select]
mov rcx, rdi
call fcn.1400fbf3c
xor ebx, ebx
mov qword [0x140150828], rbx
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.1400fbfe0
add rsp, 0x150
pop r12
pop rdi
pop rbx
ret