Function at 0x140021890
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov r14, rdx
cmp word [rcx], 0
je 0x140021b48
mov rax, 0xffffffffffffffff
xor ebx, ebx
movabs rdx, 0x69256cdf7d31e4e6
add rbx, rdx
cmp word [rcx + rax + 3], 0
lea rax, [rax + 2]
jne 0x1400218c0
lea rdx, [rax + 1]
cmp rdx, 0x20
jbe 0x140021b5f
mov qword [rsp + 0x20], r14
cmp rdx, 0x40
jbe 0x140021c2a
movabs rdx, 0xb492b66fbe98f273
mov r9, qword [rcx + rax - 0xf]
mov r8, r9
xor r8, rdx
mov r10, qword [rcx + rax - 0x3f]
mov r14, qword [rcx + rax - 0x37]
movabs r15, 0xc3a5c85c97cb3127
mov r11, qword [rcx + rax - 0x27]
lea rsi, [r10 + r11]
add rsi, r8
lea rdi, [rax + rsi]
inc rdi
rol rdi, 0x2b
lea rsi, [r10 + r14]
xor r14, r15
add rsi, qword [rcx + rax - 0x2f]
lea r12, [rax + rsi]
inc r12
rol r12, 0x14
add rdi, r10
add rdi, r12
mov r12, qword [rcx + rax - 7]
mov r10, qword [rcx + rax - 0x1f]
add r15, rbx
add r15, r10
add r15, r12
add rsi, rax
rol r15, 0x2b
add r11, rsi
inc r11
mov rsi, qword [rcx + rax - 0x17]
add rsi, r10
add r9, rbx
add r9, rsi
mov rsi, r9
rol rsi, 0x14
add rdi, rax
inc rdi
add rsi, r15
add r10, rbx
add r10, rsi
add r9, r12
mov rbx, rdi
shr rbx, 0x2f
xor rbx, rdi
imul rbx, rdx
add rbx, r14
mov r14, qword [rcx]
add r14, rbx
rol r14, 0x19
rol r8, 0x1f
imul r14, rdx
imul r8, rdx
and rax, 0xffffffffffffffc0
xor r15d, r15d
mov rsi, rbx
add r14, r11
add r14, r8
mov rbp, qword [rcx + r15 + 0x10]
mov r13, qword [rcx + r15 + 0x18]
add r14, rbp
rol r14, 0x1b
imul r14, rdx
add r8, rdi
mov r12, qword [rcx + r15 + 0x30]
add r8, r12
rol r8, 0x16
imul r8, rdx
mov rbx, r14
xor rsi, r9
mov r14, rsi
rol r14, 0x1f
xor rbx, r10
imul rdi, rdx
add rdi, qword [rcx + r15]
xor r8, r11
add r9, r13
add r9, rdi
add r9, rbx
rol r9, 0x2b
add rbp, qword [rcx + r15 + 8]
add rbp, rdi
mov rsi, rbp
rol rsi, 0x14
mov r11, rbp
add rdi, rsi
add rdi, r9
add r11, r13
add r10, r14
mov rsi, qword [rcx + r15 + 0x38]
add r10, qword [rcx + r15 + 0x20]
lea r13, [rsi + r10]
add r13, r8
rol r13, 0x2b
add r12, qword [rcx + r15 + 0x28]
add r12, r10
mov r9, r12
rol r12, 0x14
add r10, r12
add r10, r13
add r9, rsi
add r15, 0x40
cmp rax, r15
jne 0x1400219be
xor rdi, r10
movabs rax, 0x9ddfea08eb382d69
imul rdi, rax
xor r10, rdi
shr rdi, 0x2f
xor rdi, r10
imul rdi, rax
mov rcx, rdi
shr rcx, 0x2f
xor rcx, rdi
imul rcx, rax
add rcx, r14
xor r11, r9
imul r11, rax
xor r9, r11
shr r11, 0x2f
xor r11, r9
imul r11, rax
mov r9, r11
shr r9, 0x2f
xor r9, r11
imul r9, rax
mov r10, r8
shr r10, 0x2f
xor r10, r8
imul r10, rdx
add r10, rbx
add r10, r9
xor r10, rcx
imul r10, rax
xor rcx, r10
shr r10, 0x2f
xor r10, rcx
imul r10, rax
mov rdi, r10
shr rdi, 0x2f
xor rdi, r10
imul rdi, rax
mov r14, qword [rsp + 0x20]
mov ecx, 0x22
call qword [sym.imp.mozglue.dll_moz_xmalloc]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
mov word [rax + 0x20], 0
mov rcx, qword [r14]
mov qword [r14], rax
test rcx, rcx
jne 0x140021b54
mov rcx, rax
mov r9, rdi
call fcn.140032e50
dec eax
cmp eax, 0x10
setb al
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor edx, edx
call fcn.1400395d0
mov rdi, rax
jmp 0x140021afe
call qword [sym.imp.mozglue.dll_free]
mov rax, qword [r14]
jmp 0x140021b24
cmp rdx, 0x10
jbe 0x140021b4a
mov r11, qword [rcx]
mov rsi, qword [rcx + 8]
movabs rdx, 0xb492b66fbe98f273
imul rdx, r11
mov r10, qword [rcx + rax - 7]
movabs r9, 0x9ae16a3b2f90404f
movabs r8, 0xc3a5c85c97cb3127
imul r8, qword [rcx + rax - 0xf]
movabs rcx, 0xc949d7c7509e6557
xor rcx, rsi
rol rcx, 0x2c
imul r9, r10
movabs rdi, 0x651e95c4d06fbfb1
imul rdi, r10
add rdi, rcx
movabs rcx, 0x4b6d499041670d8d
imul rcx, r11
sub rdi, rcx
add rax, rdi
inc rax
sub rdx, rsi
rol rdx, 0x15
shr r9, 0x1e
movabs rcx, 0xbe41013c00000000
imul rcx, r10
add rcx, r9
add rcx, rdx
add rcx, r8
xor rcx, rax
movabs rdx, 0x9ddfea08eb382d69
imul rcx, rdx
xor rax, rcx
shr rcx, 0x2f
xor rcx, rax
imul rcx, rdx
mov rdi, rcx
shr rdi, 0x2f
xor rdi, rcx
imul rdi, rdx
jmp 0x140021afe
mov r9, qword [rcx + 0x10]
mov r11, qword [rcx + 0x18]
mov rbx, qword [rcx + rax - 0xf]
mov r8, qword [rcx + rax - 7]
lea rsi, [rbx + rax]
movabs rdx, 0xc3a5c85c97cb3127
imul rsi, rdx
mov r10d, 1
imul r10, rdx
add r10, rsi
add r10, qword [rcx]
lea rdi, [r10 + r11]
mov rsi, r10
add r10, qword [rcx + 8]
mov r14, r10
add r10, r9
add r9, qword [rcx + rax - 0x1f]
lea r15, [r9 + r8]
mov r12, r9
add r9, qword [rcx + rax - 0x17]
rol rdi, 0xc
rol rsi, 0x1b
rol r14, 0x39
rol r15, 0xc
rol r12, 0x1b
add r14, rsi
mov rax, r9
rol rax, 0x39
add r9, rbx
add r8, r9
rol r9, 0x21
add r12, r11
add r12, r15
add r12, rax
add r12, r9
add r12, r10
rol r10, 0x21
add r14, rdi
add r10, r14
movabs rax, 0x9ae16a3b2f90404f
imul r12, rax
add r8, r10
imul r8, rdx
add r8, r12
mov rcx, r8
shr rcx, 0x2f
xor rcx, r8
imul rcx, rdx
add rcx, r10
mov rdi, rcx
shr rdi, 0x2f
xor rdi, rcx
jmp 0x140021af5