Function at 0x516690
Capabilities:
Open clipboard

Disassembly:
mov rax, rsp
push rdi
push r12
push r14
sub rsp, 0x2c0
mov qword [rsp + 0xe0], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
movzx ebx, r8w
mov r12, rcx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x78], rax
mov byte [rsp + 0x50], 0
mov r9d, 2
or r8, 0xffffffffffffffff
mov edx, 0x100c
mov rcx, qword [rcx + 0x8c8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rbp, rax
mov r14d, 0x100
cmp eax, 0xffffffff
je 0x516d9b
movzx esi, bx
xor edx, edx
lea r8d, [rdx + 0x44]
lea rcx, [rsp + 0xf4]
call fcn.006aba40
mov dword [rsp + 0xf4], ebp
mov dword [rsp + 0xf0], 4
lea r9, [rsp + 0xf0]
xor r8d, r8d
mov edx, 0x104b
mov rcx, qword [r12 + 0x8c8]
call qword [sym.imp.USER32.dll_SendMessageW]
neg eax
sbb rcx, rcx
and rcx, qword [rsp + 0x118]
mov rdi, qword [rcx + 0x18]
test rdi, rdi
je 0x516767
add rdi, 0xfffffffffffffff0
jmp 0x516769
xor edi, edi
lea rax, [rsp + 0x20]
mov qword [rsp + 0x40], rax
lea r9, [rsp + 0x20]
mov qword [rsp + 0x48], r9
mov byte [rsp + 0x20], 0
mov ecx, esi
sub ecx, 0x448
je 0x516bab
sub ecx, 0x79
je 0x516b29
sub ecx, 0x226a
je 0x516ab5
sub ecx, 1
je 0x5169f9
sub ecx, 2
je 0x51697d
sub ecx, 0x7a
je 0x5168a3
cmp ecx, 1
jne 0x516d67
cmp dword [rdi + 0xe8], 0
jne 0x516d11
lea rdx, [rsp + 0x1d0]
mov rcx, rdi
call fcn.005de8c8
mov rbx, rax
mov rcx, rdi
call fcn.005defc4
mov r9, rax
lea rdx, [rdi + 0x50]
mov r8, rbx
lea rcx, [rsp + 0x290]
call fcn.00560d54
nop
lea rcx, [rsp + 0x20]
cmp rax, rcx
je 0x516826
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.0040289c
nop
lea rax, [rsp + 0x290]
mov rcx, qword [rsp + 0x2b8]
cmp rcx, rax
je 0x51685d
test rcx, rcx
je 0x51685d
mov rdx, qword [rsp + 0x290]
sub rdx, rcx
cmp rdx, r14
jbe 0x516857
call fcn.006a4944
jmp 0x51685d
call fcn.006a3610
nop
lea rax, [rsp + 0x1d0]
mov rcx, qword [rsp + 0x1f8]
cmp rcx, rax
je 0x516c10
test rcx, rcx
je 0x516c10
mov rdx, qword [rsp + 0x1d0]
sub rdx, rcx
cmp rdx, r14
jbe 0x516899
call fcn.006a4944
jmp 0x516c10
call fcn.006a3610
jmp 0x516c10
cmp dword [rdi + 0xe8], 0
jne 0x516d11
lea rdx, [rsp + 0x140]
mov rcx, rdi
call fcn.005de8c8
mov rbx, rax
mov rcx, rdi
call fcn.005defc4
mov r9, rax
lea rdx, [rdi + 0x50]
mov r8, rbx
lea rcx, [rsp + 0x230]
call fcn.00560a04
nop
lea rcx, [rsp + 0x20]
cmp rax, rcx
je 0x516900
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.0040289c
nop
lea rax, [rsp + 0x230]
mov rcx, qword [rsp + 0x258]
cmp rcx, rax
je 0x516937
test rcx, rcx
je 0x516937
mov rdx, qword [rsp + 0x230]
sub rdx, rcx
cmp rdx, r14
jbe 0x516931
call fcn.006a4944
jmp 0x516937
call fcn.006a3610
nop
lea rax, [rsp + 0x140]
mov rcx, qword [rsp + 0x168]
cmp rcx, rax
je 0x516c10
test rcx, rcx
je 0x516c10
mov rdx, qword [rsp + 0x140]
sub rdx, rcx
cmp rdx, r14
jbe 0x516973
call fcn.006a4944
jmp 0x516c10
call fcn.006a3610
jmp 0x516c10
mov rcx, rdi
call fcn.005defc4
mov rdx, rax
lea rcx, [rsp + 0x1a0]
call fcn.0058a0c8
nop
lea rcx, [rsp + 0x20]
cmp rax, rcx
je 0x5169b3
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.0040289c
nop
lea rax, [rsp + 0x1a0]
mov rcx, qword [rsp + 0x1c8]
cmp rcx, rax
je 0x516c10
test rcx, rcx
je 0x516c10
mov rdx, qword [rsp + 0x1a0]
sub rdx, rcx
cmp rdx, r14
jbe 0x5169ef
call fcn.006a4944
jmp 0x516c10
call fcn.006a3610
jmp 0x516c10
lea rdx, [rsp + 0x200]
mov rcx, rdi
call fcn.005de820
nop
mov rdx, rax
lea rcx, [rsp + 0x260]
call fcn.0058c8bc
nop
lea rcx, [rsp + 0x20]
cmp rax, rcx
je 0x516a38
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.0040289c
nop
lea rax, [rsp + 0x260]
mov rcx, qword [rsp + 0x288]
cmp rcx, rax
je 0x516a6f
test rcx, rcx
je 0x516a6f
mov rdx, qword [rsp + 0x260]
sub rdx, rcx
cmp rdx, r14
jbe 0x516a69
call fcn.006a4944
jmp 0x516a6f
call fcn.006a3610
nop
lea rax, [rsp + 0x200]
mov rcx, qword [rsp + 0x228]
cmp rcx, rax
je 0x516c10
test rcx, rcx
je 0x516c10
mov rdx, qword [rsp + 0x200]
sub rdx, rcx
cmp rdx, r14
jbe 0x516aab
call fcn.006a4944
jmp 0x516c10
call fcn.006a3610
jmp 0x516c10
lea rdx, [rsp + 0x170]
mov rcx, rdi
call fcn.005de8c8
nop
lea rcx, [rsp + 0x20]
cmp rax, rcx
je 0x516ae3
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.0040289c
nop
lea rax, [rsp + 0x170]
mov rcx, qword [rsp + 0x198]
cmp rcx, rax
je 0x516c10
test rcx, rcx
je 0x516c10
mov rdx, qword [rsp + 0x170]
sub rdx, rcx
cmp rdx, r14
jbe 0x516b1f
call fcn.006a4944
jmp 0x516c10
call fcn.006a3610
jmp 0x516c10
mov eax, dword [rdi + 0xe8]
test eax, eax
je 0x516b3c
cmp eax, 2
jne 0x516d11
lea rcx, [rdi + 0x50]
lea rdx, [rsp + 0xb0]
call fcn.00414f58
nop
lea rcx, [rsp + 0x20]
cmp rax, rcx
je 0x516b6b
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.0040289c
nop
lea rax, [rsp + 0xb0]
mov rcx, qword [rsp + 0xd8]
cmp rcx, rax
je 0x516c10
test rcx, rcx
je 0x516c10
mov rdx, qword [rsp + 0xb0]
sub rdx, rcx
cmp rdx, r14
jbe 0x516ba4
call fcn.006a4944
jmp 0x516c10
call fcn.006a3610
jmp 0x516c10
lea rdx, [rsp + 0x80]
mov rcx, qword [rdi + 8]
call fcn.00414e04
nop
lea rcx, [rsp + 0x20]
cmp rax, rcx
je 0x516bda
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x20]
call fcn.0040289c
nop
lea rax, [rsp + 0x80]
mov rcx, qword [rsp + 0xa8]
cmp rcx, rax
je 0x516c10
test rcx, rcx
je 0x516c10
mov rdx, qword [rsp + 0x80]
sub rdx, rcx
cmp rdx, r14
jbe 0x516c0b
call fcn.006a4944
jmp 0x516c10
call fcn.006a3610
mov r9, qword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
cmp r9, r8
je 0x516d11
mov rax, qword [rsp + 0x70]
cmp qword [rsp + 0x78], rax
jne 0x516c46
mov rdx, r9
lea rcx, [rsp + 0x50]
call fcn.0040289c
mov r9, qword [rsp + 0x48]
jmp 0x516d11
lea r8, [0x0078cb38]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xb0]
call fcn.00402658
nop
lea r8, [rsp + 0x20]
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.00402448
nop
lea rcx, [rsp + 0x50]
cmp rax, rcx
je 0x516c93
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
lea rcx, [rsp + 0x50]
call fcn.0040289c
nop
lea rax, [rsp + 0x80]
mov rcx, qword [rsp + 0xa8]
cmp rcx, rax
je 0x516cca
test rcx, rcx
je 0x516cca
mov rdx, qword [rsp + 0x80]
sub rdx, rcx
cmp rdx, r14
jbe 0x516cc4
call fcn.006a4944
jmp 0x516cca
call fcn.006a3610
nop
lea rax, [rsp + 0xb0]
mov rcx, qword [rsp + 0xd8]
cmp rcx, rax
je 0x516d0c
test rcx, rcx
je 0x516d0c
mov rdx, qword [rsp + 0xb0]
sub rdx, rcx
cmp rdx, r14
jbe 0x516d00
call fcn.006a4944
mov r9, qword [rsp + 0x48]
jmp 0x516d11
call fcn.006a3610
mov r9, qword [rsp + 0x48]
jmp 0x516d11
mov r9, qword [rsp + 0x48]
lea rax, [rsp + 0x20]
cmp r9, rax
je 0x516d3f
test r9, r9
je 0x516d3f
mov rdx, qword [rsp + 0x20]
sub rdx, r9
cmp rdx, r14
jbe 0x516d37
mov rcx, r9
call fcn.006a4944
jmp 0x516d3f
mov rcx, r9
call fcn.006a3610
movsxd r8, ebp
mov edx, 0x100c
mov r9d, 2
mov rcx, qword [r12 + 0x8c8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov ebp, eax
cmp eax, 0xffffffff
je 0x516d9b
jmp 0x516708
lea rax, [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
cmp rcx, rax
je 0x516d94
test rcx, rcx
je 0x516d94
mov rdx, qword [rsp + 0x50]
sub rdx, rcx
cmp rdx, r14
jbe 0x516d8f
call fcn.006a4944
jmp 0x516d94
call fcn.006a3610
xor eax, eax
jmp 0x516e4e
mov rcx, qword [rsp + 0x78]
cmp rcx, qword [rsp + 0x70]
je 0x516e24
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xf0]
call fcn.00401f00
mov rbx, rax
mov rcx, qword [0x008669d0]
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x516dd6
mov rcx, rbx
call fcn.0055cb24
nop
lea rax, [rsp + 0xf0]
mov rcx, qword [rsp + 0x138]
cmp rcx, rax
je 0x516e1f
test rcx, rcx
je 0x516e1f
mov rax, qword [rsp + 0xf0]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, r14
jbe 0x516e13
call fcn.006a4944
mov rcx, qword [rsp + 0x78]
jmp 0x516e24
call fcn.006a3610
mov rcx, qword [rsp + 0x78]
jmp 0x516e24
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x50]
cmp rcx, rax
je 0x516e4c
test rcx, rcx
je 0x516e4c
mov rdx, qword [rsp + 0x50]
sub rdx, rcx
cmp rdx, r14
jbe 0x516e47
call fcn.006a4944
jmp 0x516e4c
call fcn.006a3610
xor eax, eax
lea r11, [rsp + 0x2c0]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop r12
pop rdi
ret