Function at 0x1400d1ac0
Capabilities:
Open clipboard

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x78
xor r12d, r12d
xor sil, sil
call fcn.1400373b0
xor ecx, ecx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1400d225c
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x28], r12
lea rcx, str.HTML_Format
call qword [sym.imp.USER32.dll_RegisterClipboardFormatW]
mov ecx, eax
lea rdx, [rbp - 0x28]
call fcn.1400d2360
test al, al
je 0x1400d2247
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d1b5c
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x50], rax
test rax, rax
je 0x1400d1b50
mov rcx, rax
call fcn.140036570
mov rcx, rax
jmp 0x1400d1b53
mov rcx, r12
mov qword [0x140229e08], rcx
jmp 0x1400d1b63
mov rcx, qword [0x140229e08]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov qword [rbp - 0x38], rax
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x38]
call fcn.14003c7e0
lea rdi, str.Version:0.9
mov rbx, rdi
movzx eax, word [rbx]
add rbx, 2
test ax, ax
jne 0x1400d1b84
sub rbx, rdi
sar rbx, 1
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d1bcb
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x50], rax
test rax, rax
je 0x1400d1bbf
mov rcx, rax
call fcn.140036570
jmp 0x1400d1bc2
mov rax, r12
mov qword [0x140229e08], rax
jmp 0x1400d1bd2
mov rax, qword [0x140229e08]
lea r9d, [rbx - 1]
mov r8, rdi
mov rbx, qword [rbp - 0x38]
mov rdx, rbx
mov rcx, rax
call fcn.140040280
mov r13d, 0xffffffff
test eax, eax
je 0x1400d1c68
lea r14, str.Version:1.0
mov rdi, r14
nop dword [rax]
movzx eax, word [rdi]
add rdi, 2
test ax, ax
jne 0x1400d1c00
sub rdi, r14
sar rdi, 1
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d1c47
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x50], rax
test rax, rax
je 0x1400d1c3b
mov rcx, rax
call fcn.140036570
jmp 0x1400d1c3e
mov rax, r12
mov qword [0x140229e08], rax
jmp 0x1400d1c4e
mov rax, qword [0x140229e08]
lea r9d, [rdi - 1]
mov r8, r14
mov rdx, rbx
mov rcx, rax
call fcn.140040280
test eax, eax
jne 0x1400d221a
mov r14d, 1
mov dword [rbp + 0x50], r14d
cmp dword [rbx - 0x10], 0
jle 0x1400d1e1b
mov rcx, qword [0x14022a428]
test rcx, rcx
je 0x1400d1e1b
mov rax, qword [rcx]
movzx edx, r14b
call qword [rax + 0x28]
test rax, rax
je 0x1400d1e1b
mov r10, qword [rax]
lea r9d, [r14 + 2]
lea rsi, str.StartFragment:
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call qword [r10 + 0xc0]
mov edi, eax
cmp eax, 0xffffffff
je 0x1400d1e1b
test eax, eax
js 0x1400d1e1b
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d1d08
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x58], rax
test rax, rax
je 0x1400d1cfc
mov rcx, rax
call fcn.140036570
mov r15, rax
jmp 0x1400d1cff
mov r15, r12
mov qword [0x140229e08], r15
jmp 0x1400d1d0f
mov r15, qword [0x140229e08]
mov rcx, rsi
movzx eax, word [rcx]
add rcx, 2
test ax, ax
jne 0x1400d1d12
sub rcx, rsi
sar rcx, 1
lea r8, [0x1401bad28]
mov rsi, r8
nop
movzx eax, word [rsi]
add rsi, 2
test ax, ax
jne 0x1400d1d30
sub rsi, r8
sar rsi, 1
dec esi
dec edi
add edi, ecx
mov dword [rbp + 0x58], edi
cmp edi, dword [rbx - 0x10]
jge 0x1400d1e22
nop dword [rax]
nop dword [rax + rax]
movsxd rax, edi
lea rdx, [rbx + rax*2]
mov r9d, esi
mov rcx, r15
call fcn.140040280
test eax, eax
jne 0x1400d1d82
dec r14d
test r14d, r14d
jle 0x1400d1d96
add edi, esi
jmp 0x1400d1d84
inc edi
cmp edi, dword [rbx - 0x10]
jge 0x1400d1e1b
lea r8, [0x1401bad28]
jmp 0x1400d1d60
mov ecx, dword [rbx - 0x10]
test edi, edi
js 0x1400d1e1b
mov edx, dword [rbp + 0x58]
test edx, edx
js 0x1400d1e1b
sub edi, edx
cmp edx, ecx
cmovg edx, ecx
mov eax, r12d
test edx, edx
cmovns eax, edx
sub ecx, eax
cmp edi, ecx
cmovg edi, ecx
mov esi, r12d
test edi, edi
cmovns esi, edi
cdqe
lea rdi, [rbx + rax*2]
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d1e09
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x58], rax
test rax, rax
je 0x1400d1df4
mov rcx, rax
call fcn.140036570
mov rcx, rax
jmp 0x1400d1df7
mov rcx, r12
mov qword [0x140229e08], rcx
mov rax, qword [rcx]
mov r8d, esi
mov rdx, rdi
jmp 0x1400d1e68
mov rcx, qword [0x140229e08]
mov rax, qword [rcx]
mov r8d, esi
mov rdx, rdi
jmp 0x1400d1e68
mov r15, qword [0x140229e08]
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d1e58
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x58], rax
test rax, rax
je 0x1400d1e4e
mov rcx, rax
call fcn.140036570
mov r15, rax
jmp 0x1400d1e51
mov r15, r12
mov qword [0x140229e08], r15
mov rax, qword [r15]
mov r8d, r13d
lea rdx, [0x1401acff0]
mov rcx, r15
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, r13d
call qword [rax + 0x28]
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x60]
call fcn.1400386b0
mov rcx, qword [rbp + 0x60]
call fcn.140012ff0
mov dword [rbp + 0x58], eax
cmp dword [rbx - 0x10], 0
jle 0x1400d2056
mov rcx, qword [0x14022a428]
test rcx, rcx
je 0x1400d2056
mov rax, qword [rcx]
mov dl, 1
call qword [rax + 0x28]
test rax, rax
je 0x1400d2056
mov r10, qword [rax]
mov r9d, 3
lea rsi, str.EndFragment:
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call qword [r10 + 0xc0]
mov edi, eax
cmp eax, 0xffffffff
je 0x1400d2056
test eax, eax
js 0x1400d2056
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d1f2c
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp - 0x30], rax
test rax, rax
je 0x1400d1f20
mov rcx, rax
call fcn.140036570
mov r14, rax
jmp 0x1400d1f23
mov r14, r12
mov qword [0x140229e08], r14
jmp 0x1400d1f33
mov r14, qword [0x140229e08]
mov rcx, rsi
nop word [rax + rax]
movzx eax, word [rcx]
add rcx, 2
test ax, ax
jne 0x1400d1f40
sub rcx, rsi
sar rcx, 1
lea r8, [0x1401bad28]
mov rsi, r8
nop dword [rax]
movzx eax, word [rsi]
add rsi, 2
test ax, ax
jne 0x1400d1f60
sub rsi, r8
sar rsi, 1
dec esi
lea r15d, [rdi - 1]
add r15d, ecx
mov edi, r15d
cmp r15d, dword [rbx - 0x10]
jge 0x1400d205d
nop dword [rax + rax]
movsxd rax, edi
lea rdx, [rbx + rax*2]
mov r9d, esi
mov rcx, r14
call fcn.140040280
test eax, eax
jne 0x1400d1fb6
mov eax, dword [rbp + 0x50]
dec eax
mov dword [rbp + 0x50], eax
test eax, eax
jle 0x1400d1fca
add edi, esi
jmp 0x1400d1fb8
inc edi
cmp edi, dword [rbx - 0x10]
jge 0x1400d2056
lea r8, [0x1401bad28]
jmp 0x1400d1f90
mov ecx, dword [rbx - 0x10]
test edi, edi
js 0x1400d2056
test r15d, r15d
js 0x1400d2056
sub edi, r15d
cmp r15d, ecx
cmovg r15d, ecx
mov eax, r12d
test r15d, r15d
cmovns eax, r15d
sub ecx, eax
cmp edi, ecx
cmovg edi, ecx
mov esi, r12d
test edi, edi
cmovns esi, edi
cdqe
lea rdi, [rbx + rax*2]
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d2044
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x50], rax
test rax, rax
je 0x1400d202f
mov rcx, rax
call fcn.140036570
mov rcx, rax
jmp 0x1400d2032
mov rcx, r12
mov qword [0x140229e08], rcx
mov rax, qword [rcx]
mov r8d, esi
mov rdx, rdi
jmp 0x1400d20a3
mov rcx, qword [0x140229e08]
mov rax, qword [rcx]
mov r8d, esi
mov rdx, rdi
jmp 0x1400d20a3
mov r14, qword [0x140229e08]
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d2093
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x50], rax
test rax, rax
je 0x1400d2089
mov rcx, rax
call fcn.140036570
mov r14, rax
jmp 0x1400d208c
mov r14, r12
mov qword [0x140229e08], r14
mov rax, qword [r14]
mov r8d, r13d
lea rdx, [0x1401acff0]
mov rcx, r14
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, r13d
call qword [rax + 0x28]
mov qword [rbp + 0x50], rax
lea rcx, [rbp + 0x50]
call fcn.1400386b0
mov rcx, qword [rbp + 0x50]
call fcn.140012ff0
mov ecx, dword [rbp + 0x58]
sub eax, ecx
mov r8d, dword [rbx - 0x10]
cmp ecx, r8d
cmovg ecx, r8d
mov edx, r12d
test ecx, ecx
cmovns edx, ecx
sub r8d, edx
cmp eax, r8d
cmovg eax, r8d
mov edi, r12d
test eax, eax
cmovns edi, eax
movsxd rax, edx
lea rbx, [rbx + rax*2]
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d2132
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp + 0x58], rax
test rax, rax
je 0x1400d2129
mov rcx, rax
call fcn.140036570
mov r12, rax
mov qword [0x140229e08], r12
jmp 0x1400d2139
mov r12, qword [0x140229e08]
mov rax, qword [r12]
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9d, r13d
mov r8d, edi
mov rdx, rbx
mov rcx, r12
call qword [rax + 0x28]
mov qword [rbp + 0x58], rax
lea rcx, [rbp + 0x58]
call fcn.1400387f0
mov rbx, qword [rbp + 0x58]
cmp dword [rbx - 0x10], 0
jle 0x1400d2184
lea rdx, [rbp + 0x58]
mov rcx, qword [rbp + 0x48]
call fcn.140037020
mov sil, 1
jmp 0x1400d2187
xor sil, sil
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400d21b4
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400d21aa
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d21b4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400d21e5
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400d21db
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d21e5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400d2216
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400d220c
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d2216
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rbp - 0x38]
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400d2247
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400d223c
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x1400d2247
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
call qword [sym.imp.USER32.dll_CloseClipboard]
nop
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x1400d225c
call fcn.140017d60
movzx eax, sil
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret