Function at 0x14000b218
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x778]
sub rsp, 0x840
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x140197e90]
xor rax, rsp
mov qword [rbp + 0x730], rax
mov r15, r8
mov qword [rbp - 0x80], r8
mov rdi, rdx
mov rsi, rcx
mov qword [rbp], r8
xor bl, bl
mov byte [rsp + 0x50], bl
mov ecx, dword [0x14019fd80]
imul ecx, ecx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 7
sub ecx, edx
cmp ecx, 3
jne 0x14000b299
call fcn.1400b99c8
mov dword [0x14019fd80], eax
and qword [rsp + 0x58], 0
and qword [rsp + 0x60], 0
mov rcx, qword [rsi + 0xa0]
or r13, 0xffffffffffffffff
test rcx, rcx
jne 0x14000b2df
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14000b2c6
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14000ba77
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x14000ba77
mov rax, qword [rcx]
lea rdx, [rsp + 0x60]
call qword [rax + VariantChangeTypeEx]
mov ebx, eax
mov rcx, qword [rsp + 0x60]
test rcx, rcx
jne 0x14000b385
lea rcx, [0x1401979a8]
mov rax, qword [0x1401979a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x68], rax
mov r8d, ebx
lea rdx, str.runJSFunction_get_Document__d
lea rcx, [rbp - 0x68]
call fcn.14000f8ac
mov rax, qword [rsi]
lea rdx, [rbp - 0x68]
mov rcx, rsi
call qword [rax + 0xb0]
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14000b35b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14000b36c
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14000ba73
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x14000ba73
mov rax, qword [rcx]
lea r8, [rsp + 0x58]
lea rdx, str._D_3
call qword [rax]
mov ebx, eax
cmp qword [rsp + 0x58], 0
jne 0x14000b414
lea rcx, [0x1401979a8]
mov rax, qword [0x1401979a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x60], rax
mov r8d, ebx
lea rdx, str.runJSFunction_QueryInterface__d
lea rcx, [rbp - 0x60]
call fcn.14000f8ac
mov rax, qword [rsi]
lea rdx, [rbp - 0x60]
mov rcx, rsi
call qword [rax + 0xb0]
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14000b3fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14000b40f
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x14000b36c
and qword [rsp + 0x68], 0
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
lea rdx, [rsp + 0x68]
call qword [rax + 0x38]
mov ebx, eax
cmp qword [rsp + 0x68], 0
jne 0x14000b4bd
lea rcx, [0x1401979a8]
mov rax, qword [0x1401979a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x70], rax
mov r8d, ebx
lea rdx, str.runJSFunction_get_Script__d
lea rcx, [rbp - 0x70]
call fcn.14000f8ac
mov rax, qword [rsi]
lea rdx, [rbp - 0x70]
mov rcx, rsi
call qword [rax + 0xb0]
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14000b496
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14000b4a7
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14000b4b8
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x14000b36c
mov rcx, qword [rdi]
test rcx, rcx
jne 0x14000b4cc
and qword [rsp + 0x70], rcx
jmp 0x14000b4e7
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rsp + 0x70], rax
test rax, rax
jne 0x14000b4e7
mov ecx, 0x8007000e
call fcn.140001874
nop
and dword [rsp + 0x78], 0
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0x800
mov r12d, 1
mov r9d, r12d
lea r8, [rsp + 0x70]
lea rdx, [0x140124aa8]
call qword [rax + 0x28]
mov r14d, eax
test eax, eax
jns 0x14000b775
mov r10d, dword [0x14019fd80]
mov ecx, r10d
imul ecx, r10d
imul ecx, r10d
mov eax, 0x30c30c31
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 0xc
jne 0x14000b5c2
xor r9d, r9d
lea r8, [rbp + 0x540]
mov bl, r10b
sub bl, r9b
mov r11d, r12d
mov edi, 0xe
xor r15d, r15d
mov eax, r10d
cdq
idiv r11d
mov r13d, edx
mov eax, r10d
cdq
idiv r12d
mov ecx, eax
mov al, r13b
imul cl
mov cl, al
mov al, bl
imul cl
mov byte [r15 + r8], al
inc r12d
inc r15
cmp r15, 7
jl 0x14000b57b
mov r12d, 1
add r11d, r12d
add r8, 7
sub rdi, r12
jne 0x14000b56e
add r9d, r12d
cmp r9d, 5
jl 0x14000b560
mov r15, qword [rbp - 0x80]
or r13, 0xffffffffffffffff
lea rcx, [0x1401979a8]
mov rax, qword [0x1401979a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x78], rax
mov edi, dword [0x14019fd80]
mov ecx, edi
imul ecx, edi
mov eax, 0x30c30c31
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 0xe
jne 0x14000b64b
xor ecx, ecx
lea r8d, [rcx + 0x22]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
test ebx, ebx
jle 0x14000b643
mov eax, edi
cdq
and edx, 3
lea r10d, [rdx + rax]
sar r10d, 2
xor edx, edx
mov r11, rbx
test r10d, r10d
jle 0x14000b63c
mov eax, edx
mov r9, r10
add r8d, eax
sub eax, r12d
sub r9, r12
jne 0x14000b631
add edx, ecx
sub r11, r12
jne 0x14000b627
add ecx, r12d
cmp ecx, r8d
jl 0x14000b610
mov r8d, r14d
lea rdx, str.runJSFunction_GetIDsOfNames__d
lea rcx, [rbp - 0x78]
call fcn.14000f8ac
cmp r14d, 0x80020006
jne 0x14000b710
mov rdx, qword [rsp + 0x70]
lea rcx, [rbp - 0x10]
call fcn.140001cb0
mov rbx, rax
lea rdx, [0x14012e474]
lea rcx, [rbp - 0x18]
call fcn.140001cb0
nop
mov r8, rbx
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.14000d514
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x78]
call fcn.14000df38
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14000b6cf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14000b6f0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14000b710
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
lea rdx, [rbp - 0x78]
mov rcx, rsi
call qword [rax + 0xb0]
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14000b742
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14000b75f
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14000b770
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x14000b36c
call fcn.140009388
test al, al
jne 0x14000b7a0
mov ecx, 4
call fcn.1400b97c8
mov rbx, rax
call fcn.1400b99c8
mov dword [rbx], eax
mov dword [0x14019fd80], eax
mov rcx, rbx
call fcn.1400b8ff4
xor eax, eax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov dword [rbp - 0x40], r12d
mov eax, 0x18
mul r12
cmovo rax, r13
mov rcx, rax
call fcn.1400b8688
mov qword [rbp - 0x50], rax
mov edx, dword [0x14019fd80]
lea ecx, [rdx + 2]
lea eax, [rdx + 1]
imul ecx, eax
imul ecx, edx
and ecx, 0x8000000f
jge 0x14000b7ed
sub ecx, r12d
or ecx, 0xfffffff0
add ecx, r12d
cmp ecx, r12d
jne 0x14000b7fe
test edx, edx
cmove edx, r12d
mov dword [0x14019fd80], edx
and dword [rbp - 0x3c], 0
mov rcx, qword [r15]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rcx, rax
mov rax, qword [rbp - 0x50]
mov qword [rax + 8], rcx
mov r14d, 8
mov rax, qword [rbp - 0x50]
mov word [rax], r14w
mov eax, dword [0x14019fd80]
mov ecx, eax
imul ecx, eax
imul ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xe
sub ecx, edx
cmp ecx, 2
jne 0x14000b8a8
xor ebx, ebx
mov edi, RegisterTypeLib
call fcn.1400b99c8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rbp + rbx*8 + 0x50], xmm0
add rbx, r12
cmp rbx, rdi
jb 0x14000b856
xor ecx, ecx
mov eax, LoadRegTypeLib
jmp 0x14000b89b
movsd xmm1, qword [rbp + rax*8 + 0x50]
movsd xmm0, qword [rbp + rax*8 + 0x48]
comisd xmm1, xmm0
jbe 0x14000b898
movsd qword [rbp + rax*8 + 0x50], xmm0
movsd qword [rbp + rax*8 + 0x48], xmm1
sub rax, r12
cmp rax, rcx
jg 0x14000b87a
add rcx, r12
sub rdi, r12
jne 0x14000b873
xor edx, edx
lea r8d, [rdx + 0x40]
lea rcx, [rbp + 0x10]
call fcn.1400be450
xor eax, eax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
lea rcx, [rbp - 0x38]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov r9d, dword [0x14019fd80]
lea ecx, [r9 + 2]
lea eax, [r9 + 1]
imul ecx, eax
imul ecx, r9d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
cmp ecx, 7
jne 0x14000b93c
xor r8d, r8d
mov edx, r8d
mov r10, r14
mov ecx, edx
and ecx, r12d
sub ecx, r12d
not ecx
and ecx, r9d
mov eax, edx
sar eax, 1
mov edx, ecx
xor edx, eax
sub r10, r12
jne 0x14000b90c
add r9d, edx
add r8d, r12d
cmp r8d, 0x100
jl 0x14000b906
mov dword [0x14019fd80], r9d
or dword [rbp - 0x58], 0xffffffff
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x58]
mov qword [rsp + 0x40], rdx
lea rdx, [rbp + 0x10]
mov qword [rsp + 0x38], rdx
lea rdx, [rbp - 0x38]
mov qword [rsp + 0x30], rdx
lea rdx, [rbp - 0x50]
mov qword [rsp + 0x28], rdx
mov word [rsp + 0x20], r12w
xor r9d, r9d
lea r8, [0x140124aa8]
mov edx, dword [rsp + 0x78]
call qword [rax + 0x30]
mov ebx, eax
mov rcx, qword [rbp - 0x50]
call fcn.1400ba0bc
test ebx, ebx
jns 0x14000ba32
lea rcx, [0x1401979a8]
mov rax, qword [0x1401979a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x80], rax
mov r8d, ebx
lea rdx, str.runJSFunction_Invoke__d
lea rcx, [rbp - 0x80]
call fcn.14000f8ac
mov rax, qword [rsi]
lea rdx, [rbp - 0x80]
mov rcx, rsi
call qword [rax + 0xb0]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14000b9f4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14000ba1c
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14000ba2d
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x14000b36c
mov bl, r12b
lea rcx, [rbp - 0x38]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14000ba5d
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14000ba6e
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x14000b2c6
mov bl, byte [rsp + 0x50]
mov rdx, qword [r15]
sub rdx, 0x18
mov ecx, r13d
lock xadd dword [rdx + 0x10], ecx
add ecx, r13d
test ecx, ecx
jg 0x14000ba97
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov al, bl
mov rcx, qword [rbp + 0x730]
xor rcx, rsp
call fcn.1400b9010
mov rbx, qword [rsp + 0x898]
add rsp, 0x840
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret