Function at 0x1400aed10
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push rbx
push rdi
push r13
sub rsp, 0x150
mov rax, qword [0x1401b3658]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x68], rdx
mov rbx, r9
movsxd r9, r8d
mov r13, rdx
lea r10, [0x140000000]
test r8d, r8d
je 0x1400af48f
cmp byte [r9 + r10 + 0x1b4930], 0
je 0x1400aed7f
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 0x1400aed77
inc rax
test ecx, ecx
jne 0x1400aed64
test edx, edx
je 0x1400af48f
xor ecx, ecx
call qword [sym.imp.user32.dll_OpenClipboard]
test eax, eax
je 0x1400af529
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 0x1400aedb3
inc rax
test ecx, ecx
jne 0x1400aeda0
mov qword [rsp + 0x170], rbp
mov qword [rsp + 0x148], rsi
test edx, edx
jne 0x1400aeead
lea ecx, [rdx + 0xd]
call qword [sym.imp.user32.dll_GetClipboardData]
mov rbp, rax
test rax, rax
je 0x1400af474
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 0x1400aedf3
lea rcx, [rbx*4 + 1]
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
lea edx, [rbx*4]
mov r9d, ebx
mov r8, rsi
mov rcx, rax
mov rdi, rax
call fcn.1400dd0b0
mov ecx, eax
mov byte [rcx + rdi], 0
mov rcx, rbp
call qword [sym.imp.kernel32.dll_GlobalUnlock]
movzx r8d, byte [rdi]
mov rdx, rdi
mov rcx, rdi
test r8b, r8b
je 0x1400aee68
cmp r8b, 0xd
jne 0x1400aee56
cmp byte [rcx + 1], 0xa
lea rax, [rcx + 1]
mov rcx, rax
jne 0x1400aee59
mov r8b, 0xa
inc rcx
mov byte [rdx], r8b
inc rdx
movzx r8d, byte [rcx]
test r8b, r8b
jne 0x1400aee40
mov byte [rdx], 0
mov rcx, r13
mov rax, qword [str.text_plain]
sub edx, edi
mov dword [0x1401b41a4], edx
mov edx, 0x11
mov qword [0x1401b0078], rax
mov qword [0x1401b0070], rdi
mov rax, qword [r13]
call qword [rax + 0x10]
mov rcx, rdi
call fcn.140098a60
xor ebx, ebx
mov qword [0x1401b0070], rbx
jmp 0x1400af474
mov rdx, qword [str.image]
sub rdx, rbx
nop word [rax + rax]
movzx ecx, byte [rbx]
movzx eax, byte [rbx + rdx]
sub ecx, eax
jne 0x1400aeed2
inc rbx
test eax, eax
jne 0x1400aeec0
test ecx, ecx
jne 0x1400af474
mov qword [rsp + 0x140], r12
mov ecx, 8
mov qword [rsp + 0x138], r14
mov qword [rsp + 0x130], r15
call qword [sym.imp.user32.dll_GetClipboardData]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x1400af1ed
mov rcx, rax
call qword [sym.imp.kernel32.dll_GlobalLock]
mov rsi, rax
movzx edx, word [rax + 0xe]
mov r12d, dword [rax + 8]
mov edi, dword [rax + 4]
mov eax, 0xfff7
mov dword [rsp + 0x60], r12d
lea ecx, [rdx - 0x18]
test ax, cx
jne 0x1400af0a8
cmp dword [rsi + 0x10], 0
jne 0x1400af0a8
cmp dword [rsi + 0x20], 0
jne 0x1400af0a8
mov r15d, edx
shr r15d, 3
cmp r15d, 3
jne 0x1400aef6d
lea eax, [rdi + 1]
lea eax, [rax + rax*2]
cdq
and edx, r15d
lea r13d, [rdx + rax]
sar r13d, 2
jmp 0x1400aef70
mov r13d, edi
mov eax, r12d
cdq
mov r12d, eax
xor r12d, edx
sub r12d, edx
mov ecx, r12d
mov dword [rsp + 0x64], r12d
imul ecx, r15d
imul ecx, edi
movsxd rcx, ecx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov r12d, dword [rsp + 0x60]
mov ebp, r13d
test r12d, r12d
mov qword [rsp + 0x70], rax
mov r9, rax
mov rbx, 0xffffffffffffffff
mov eax, 1
mov ecx, r12d
cmovg eax, ebx
lea r11d, [r12 - 1]
xor ebx, ebx
mov dword [rsp + 0x60], eax
test r12d, r12d
not ecx
mov r14d, ebx
cmovle r11d, ebx
cmovle r14d, ecx
imul ebp, r11d
imul r13d, eax
shl ebp, 2
shl r13d, 2
mov eax, ebx
test r12d, r12d
jle 0x1400aeff2
cmp r11d, r14d
setge al
jmp 0x1400aeff8
cmp r11d, r14d
setle al
test eax, eax
je 0x1400af094
movsxd r8, ebp
add r8, 0x28
add r8, rsi
test edi, edi
jle 0x1400af087
mov r10, rdi
cmp r15d, 4
jne 0x1400af060
nop word [rax + rax]
movzx eax, byte [r8 + 2]
movzx edx, byte [r8]
movzx ecx, byte [r8 + 1]
lea r8, [r8 + 4]
mov byte [r9], al
mov byte [r9 + 1], cl
mov byte [r9 + 2], dl
movzx eax, byte [r8 - 1]
mov byte [r9 + 3], al
add r9, 4
sub r10, 1
jne 0x1400af020
add r11d, dword [rsp + 0x60]
add ebp, r13d
jmp 0x1400aefe3
movzx eax, byte [r8 + 2]
movzx edx, byte [r8]
movzx ecx, byte [r8 + 1]
lea r8, [r8 + 3]
mov byte [r9], al
mov byte [r9 + 1], cl
mov byte [r9 + 2], dl
add r9, 3
sub r10, 1
jne 0x1400af060
add r11d, dword [rsp + 0x60]
add ebp, r13d
jmp 0x1400aefe3
mov r12d, dword [rsp + 0x64]
mov r13, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
jmp 0x1400af192
cmp dword [rsi + 0x10], 3
lea rbp, [rsi + 0x428]
jne 0x1400af0bb
lea rbp, [rsi + 0x34]
jmp 0x1400af0ca
mov eax, dword [rsi + 0x20]
test eax, eax
je 0x1400af0ca
lea rbp, [rax + 0xa]
lea rbp, [rsi + rbp*4]
mov ecx, 0x20
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
xor ebx, ebx
mov rcx, rax
test rax, rax
je 0x1400af0fd
mov eax, r12d
mov qword [rsp + 0x20], rbx
cdq
xor r9d, r9d
xor eax, edx
sub eax, edx
mov edx, edi
mov r8d, eax
call fcn.1400d1530
mov r14, rax
jmp 0x1400af100
mov r14, rbx
mov rcx, r14
call fcn.1400d10c0
mov rcx, qword [0x1401b58a0]
mov eax, r12d
cdq
mov r12d, eax
xor r12d, edx
mov rax, qword [rcx]
sub r12d, edx
call qword [rax + 0x2e0]
mov dword [rsp + 0x58], ebx
mov r9d, edi
mov qword [rsp + 0x50], rsi
mov rcx, rax
mov qword [rsp + 0x48], rbp
xor r8d, r8d
mov dword [rsp + 0x40], r12d
xor edx, edx
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r12d
call qword [sym.imp.gdi32.dll_SetDIBitsToDevice]
mov r9d, edi
mov dword [rsp + 0x28], ebx
xor r8d, r8d
mov dword [rsp + 0x20], r12d
xor edx, edx
xor ecx, ecx
call fcn.1400d2dc0
mov rsi, rax
mov r15d, 3
call fcn.1400d1080
test r14, r14
je 0x1400af192
mov rax, qword [r14]
lea edx, [r15 - 2]
mov rcx, r14
call qword [rax + 0x18]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.kernel32.dll_GlobalUnlock]
test rsi, rsi
je 0x1400af45c
mov ecx, 0x58
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
test rax, rax
je 0x1400af1de
mov dword [rsp + 0x28], ebx
mov r9d, r12d
mov r8d, edi
mov dword [rsp + 0x20], r15d
mov rdx, rsi
mov rcx, rax
call fcn.1400a5880
mov rdi, rax
mov dword [rax + 0x38], 1
jmp 0x1400af411
mov rdi, rbx
mov dword [rbx + 0x38], 1
jmp 0x1400af411
mov ecx, 0xe
call qword [sym.imp.user32.dll_GetClipboardData]
mov r14, rax
test rax, rax
je 0x1400af45c
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
movd xmm0, ebx
mulss xmm7, dword [0x140170f34]
cvtdq2ps xmm0, xmm0
divss xmm7, xmm0
call fcn.14009a900
mov rcx, r13
mov rbx, rax
mov rdi, qword [rax]
call fcn.14009cb70
mov rcx, qword [rax + 0xd0]
call fcn.1400dc470
mov edx, eax
mov rcx, rbx
call qword [rdi + 0x10]
movaps xmm6, xmm0
call fcn.14009c4e0
test rax, rax
jne 0x1400af2e3
call fcn.1400b3660
movaps xmm1, xmm6
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0xa8]
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 sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
movaps xmm7, xmmword [rsp + 0x110]
test rax, rax
je 0x1400af34e
lea r9d, [rbx + 1]
mov qword [rsp + 0x20], rbx
mov r8d, ebp
mov edx, edi
mov rcx, rax
call fcn.1400d1530
mov rsi, rax
jmp 0x1400af351
mov rsi, rbx
mov rcx, rsi
call fcn.1400d10c0
mov rcx, qword [0x1401b58a0]
mov edx, 0xff
mov rax, qword [rcx]
call qword [rax + 0x260]
mov rcx, qword [0x1401b58a0]
mov r9d, edi
xor r8d, r8d
mov dword [rsp + 0x20], ebp
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0xd0]
movd xmm0, dword [rsp + 0x80]
movd xmm1, dword [rsp + 0x84]
mov rcx, qword [0x1401b58a0]
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 + 0x2e0]
lea r8, [rsp + 0x78]
mov rdx, r14
mov rcx, rax
call qword [sym.imp.gdi32.dll_PlayEnhMetaFile]
mov rcx, rsi
call fcn.1400d16c0
mov rdi, rax
call fcn.1400d1080
movaps xmm6, xmmword [rsp + 0x120]
test rsi, rsi
je 0x1400af40c
mov rax, qword [rsi]
mov edx, 1
mov rcx, rsi
call qword [rax + 0x18]
test rdi, rdi
je 0x1400af45c
mov rax, qword [str.image]
mov edx, 0x11
mov qword [0x1401b0078], rax
mov rcx, r13
mov qword [0x1401b41a8], rdi
mov rax, qword [r13]
call qword [rax + 0x10]
lea rcx, [0x14016f62f]
mov qword [0x1401b0078], rcx
test eax, eax
jne 0x1400af45c
mov qword [0x1401b41a8], rbx
mov edx, 1
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
mov r14, qword [rsp + 0x138]
mov r12, qword [rsp + 0x140]
mov r15, qword [rsp + 0x130]
call qword [sym.imp.user32.dll_CloseClipboard]
mov rsi, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x170]
jmp 0x1400af529
mov rbx, qword [r10 + r9*8 + 0x1b4910]
test rbx, rbx
je 0x1400af520
mov eax, dword [r10 + r9*4 + 0x1b4920]
inc eax
movsxd rcx, eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
movzx r8d, byte [rbx]
mov rdi, rax
mov rdx, rax
test r8b, r8b
je 0x1400af4e9
cmp r8b, 0xd
jne 0x1400af4d7
cmp byte [rbx + 1], 0xa
lea rcx, [rbx + 1]
mov rbx, rcx
jne 0x1400af4da
mov r8b, 0xa
inc rbx
mov byte [rdx], r8b
inc rdx
movzx r8d, byte [rbx]
test r8b, r8b
jne 0x1400af4c1
mov byte [rdx], 0
mov rcx, r13
mov rax, qword [str.text_plain]
sub edx, edi
mov dword [0x1401b41a4], edx
mov edx, 0x11
mov qword [0x1401b0078], rax
mov qword [0x1401b0070], rdi
mov rax, qword [r13]
call qword [rax + 0x10]
mov rcx, rdi
call fcn.140098a60
xor ebx, ebx
mov qword [0x1401b0070], rbx
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.14012cd90
add rsp, 0x150
pop r13
pop rdi
pop rbx
ret