Function at 0x14008cda0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
movdqa xmmword [rsp + 0x150], xmm6
mov rbx, r8
mov qword [rsp + 0x80], rdx
mov rdi, rcx
movzx eax, byte [0x140394001]
cmp al, 1
jne 0x14008ce4d
test rbx, rbx
je 0x14008da25
shl rbx, 4
xor esi, esi
pxor xmm6, xmm6
lea r14, [rsp + 0x140]
mov rax, qword [rsp + 0x80]
movdqu xmm0, xmmword [rax + rsi]
movdqa xmm1, xmm0
punpcklbw xmm1, xmm6
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpckhbw xmm0, xmm6
pshufd xmm0, xmm0, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqa xmmword [rsp + 0x140], xmm0
mov rcx, rdi
mov rdx, r14
call fcn.1400b6970
add rsi, 0x10
cmp rbx, rsi
jne 0x14008cdf0
jmp 0x14008da25
test rbx, rbx
je 0x14008da25
movabs rdx, 0x4444444444444444
movabs r8, 0x2222222222222222
movabs r9, 0x1111111111111111
mov r10, qword [rdi]
mov rax, r10
bswap rax
mov r11, qword [rdi + 8]
mov rcx, rax
shr rcx, 4
movabs rsi, 0xf0f0f0f0f0f0f0f
and rcx, rsi
and rax, rsi
shl rax, 4
or rax, rcx
movabs r14, 0x3333333333333333
mov rcx, rax
and rcx, r14
shr rax, 2
and rax, r14
lea rax, [rax + rcx*4]
movabs r12, 0x5555555555555555
mov rcx, rax
and rcx, r12
shr rax, 1
and rax, r12
lea r13, [rax + rcx*2]
mov rax, r11
bswap rax
mov rcx, rax
shr rcx, 4
and rcx, rsi
and rax, rsi
shl rax, 4
or rax, rcx
mov rcx, rax
and rcx, r14
shr rax, 2
and rax, r14
lea rax, [rax + rcx*4]
mov rcx, rax
and rcx, r12
shr rax, 1
and rax, r12
lea rax, [rax + rcx*2]
mov rcx, r11
xor rcx, r10
mov rsi, rax
xor rsi, r13
mov r14, r10
and r14, r9
mov qword [rsp + 0xf8], r14
mov r14, r10
and r14, r8
mov qword [rsp + 0xf0], r14
mov r14, r10
and r14, rdx
mov qword [rsp + 0xe8], r14
movabs r14, 0x8888888888888888
and r10, r14
mov qword [rsp + 0x120], r10
mov r10, r11
and r10, r9
mov qword [rsp + 0xe0], r10
mov r10, r11
and r10, r8
mov qword [rsp + 0xd8], r10
mov r10, r11
and r10, rdx
mov qword [rsp + 0xd0], r10
and r11, r14
mov qword [rsp + 0x118], r11
mov r10, rcx
and r10, r9
mov qword [rsp + 0x58], r10
mov r10, rcx
and r10, r8
mov qword [rsp + 0x70], r10
mov r10, rcx
and r10, rdx
mov qword [rsp + 0x50], r10
and rcx, r14
mov qword [rsp + 0x78], rcx
mov rcx, r13
and rcx, r9
mov qword [rsp + 0xc8], rcx
mov rcx, r13
and rcx, r8
mov qword [rsp + 0xc0], rcx
mov rcx, r13
and rcx, rdx
mov qword [rsp + 0xb8], rcx
and r13, r14
mov qword [rsp + 0x110], r13
mov rcx, rax
and rcx, r9
mov qword [rsp + 0x68], rcx
mov rcx, rax
and rcx, r8
mov qword [rsp + 0xb0], rcx
mov rcx, rax
and rcx, rdx
mov qword [rsp + 0xa8], rcx
and rax, r14
mov qword [rsp + 0x108], rax
mov rax, rsi
and rax, r9
mov qword [rsp + 0xa0], rax
mov rax, rsi
and rax, r8
mov qword [rsp + 0x98], rax
mov rax, rsi
and rax, rdx
mov qword [rsp + 0x90], rax
and rsi, r14
mov qword [rsp + 0x100], rsi
shl rbx, 4
pxor xmm0, xmm0
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x88], rdi
mov rcx, qword [rdi + 0x18]
xor r8d, r8d
mov qword [rsp + 0x128], rbx
nop word [rax + rax]
mov qword [rsp + 0x138], r8
mov rdx, qword [rsp + 0x80]
movdqu xmm1, xmmword [rdx + r8]
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
packuswb xmm2, xmm2
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm1
movq r8, xmm1
xor r8, rax
movq r13, xmm2
xor r13, rcx
mov rdx, r8
bswap rdx
mov rax, rdx
movabs rcx, 0xf0f0f0f0f0f0f0f
and rdx, rcx
mov r9, rcx
mov rcx, r13
bswap rcx
mov r10, rcx
shr rax, 4
mov rcx, r13
xor rcx, r8
mov qword [rsp + 0x30], rcx
mov rbx, r8
shl rdx, 4
mov qword [rsp + 0x20], rdx
movabs rcx, 0x1111111111111111
and rbx, rcx
mov r11, r8
movabs rcx, 0x2222222222222222
and r11, rcx
mov rdi, r10
mov rcx, r8
movabs rdx, 0x4444444444444444
and rcx, rdx
movabs rdx, 0x8888888888888888
and r8, rdx
and r10, r9
mov qword [rsp + 0x40], r10
mov r14, qword [rsp + 0xe8]
mov rdx, r14
imul rdx, rcx
mov rsi, qword [rsp + 0x120]
mov r15, rsi
and rax, r9
imul r15, r11
mov r9, qword [rsp + 0xf8]
mov r10, r9
imul r10, r11
xor r15, rdx
mov qword [rsp + 0x28], r15
mov r15, qword [rsp + 0xf0]
mov rbp, r15
imul rbp, rbx
mov r12, r14
xor rbp, r10
imul r12, r8
mov rdx, rsi
imul rdx, rcx
mov r10, rdx
add qword [rsp + 0x20], rax
mov rax, r9
imul rax, rcx
mov rdx, r15
shr rdi, 4
imul rdx, r11
xor rdx, rax
mov rax, r14
xor r10, r12
mov qword [rsp + 0x48], r10
imul rax, rbx
mov r10, rsi
imul r10, r8
xor r10, rax
mov qword [rsp + 0x38], r10
mov rax, r15
imul rax, r8
mov r10, rax
imul r8, r9
mov r12, qword [rsp + 0x40]
shl r12, 4
imul rcx, r15
xor rcx, r8
movabs rax, 0xf0f0f0f0f0f0f0f
and rdi, rax
imul r9, rbx
mov qword [rsp + 0x130], r9
xor r10, r9
imul r11, r14
or r12, rdi
mov qword [rsp + 0x40], r12
imul rbx, rsi
xor rbx, r11
mov r15, rbx
mov rsi, r13
xor r10, qword [rsp + 0x28]
mov qword [rsp + 0x28], r10
movabs rax, 0x1111111111111111
and rsi, rax
mov r14, r13
movabs rax, 0x2222222222222222
and r14, rax
xor qword [rsp + 0x48], rbp
mov r11, r13
movabs rax, 0x4444444444444444
and r11, rax
movabs rax, 0x8888888888888888
and r13, rax
xor qword [rsp + 0x38], rdx
mov r9, qword [rsp + 0xe0]
mov rdx, r9
mov rbx, qword [rsp + 0xd8]
mov r8, rbx
imul r8, r13
imul rdx, rsi
xor r8, rdx
mov rbp, qword [rsp + 0xd0]
mov rdi, rbp
imul rdi, r11
xor r15, rcx
mov qword [rsp + 0x60], r15
mov r10, qword [rsp + 0x118]
mov rdx, r10
imul rdx, r14
xor rdx, rdi
xor rdx, r8
mov rcx, r9
imul rcx, r14
mov r8, rbx
imul r8, rsi
xor r8, rcx
mov rdi, rbp
imul rdi, r13
mov r12, r10
imul r12, r11
xor r12, rdi
mov rdi, r9
imul rdi, r11
mov rax, rbx
imul rax, r14
xor rax, rdi
xor r12, r8
mov r15, r10
imul r15, r13
mov r8, rbp
imul r8, rsi
xor r15, r8
xor r15, rax
imul r13, r9
imul r11, rbx
xor r11, r13
mov rcx, qword [rsp + 0x20]
mov r8, rcx
shr rcx, 2
movabs rax, 0x3333333333333333
and r8, rax
and rcx, rax
mov qword [rsp + 0x20], rcx
movabs r9, 0x1111111111111111
mov rcx, qword [rsp + 0x28]
and rcx, r9
mov rax, qword [rsp + 0x48]
movabs rbx, 0x2222222222222222
and rax, rbx
movabs r13, 0x4444444444444444
and qword [rsp + 0x38], r13
imul r14, rbp
imul rsi, r10
xor rsi, r14
mov rdi, qword [rsp + 0x60]
movabs r10, 0x8888888888888888
and rdi, r10
xor rsi, r11
mov qword [rsp + 0x28], rsi
and rdx, r9
and r12, rbx
mov rsi, rbx
and r15, r13
mov rbx, qword [rsp + 0x30]
mov rbp, rbx
and rbp, r9
mov r11, rbx
mov r9, qword [rsp + 0x20]
lea r14, [r9 + r8*4]
and r11, rsi
mov r9, rbx
and r9, r13
or rax, rcx
mov qword [rsp + 0x48], rax
and rbx, r10
mov r10, qword [rsp + 0x58]
mov rax, r10
imul rax, rbp
or rdi, qword [rsp + 0x38]
mov qword [rsp + 0x60], rdi
mov rcx, qword [rsp + 0x70]
mov r8, rcx
imul r8, rbx
mov r13, rbx
xor r8, rax
or r12, rdx
mov rbx, qword [rsp + 0x50]
mov rdx, rbx
imul rdx, r9
mov rax, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x28]
movabs rdi, 0x8888888888888888
and rsi, rdi
imul rax, r11
xor rax, rdx
mov rdx, r10
or rsi, r15
mov rdi, rsi
imul rdx, r11
mov r10, rcx
imul r10, rbp
xor rax, r8
xor r10, rdx
mov r15, qword [rsp + 0x78]
mov rdx, r15
imul rbx, r13
imul rdx, r9
xor rdx, rbx
mov rbx, qword [rsp + 0x40]
mov r8, rbx
movabs rsi, 0x3333333333333333
and r8, rsi
shr rbx, 2
and rbx, rsi
xor rdx, r10
lea r8, [rbx + r8*4]
mov r10, qword [rsp + 0x58]
imul r10, r9
mov rsi, rcx
imul rsi, r11
xor rsi, r10
mov rbx, qword [rsp + 0x50]
imul rbx, rbp
or rdi, r12
mov qword [rsp + 0x28], rdi
mov r10, r15
imul r10, r13
xor r10, rbx
mov rcx, r14
movabs rdi, 0x5555555555555555
and rcx, rdi
shr r14, 1
xor r10, rsi
and r14, rdi
mov rsi, r8
shr r8, 1
imul r13, qword [rsp + 0x58]
lea rcx, [r14 + rcx*2]
imul r9, qword [rsp + 0x70]
xor r9, r13
imul r11, qword [rsp + 0x50]
and rsi, rdi
imul rbp, r15
xor rbp, r11
xor rbp, r9
and r8, rdi
movabs r9, 0x1111111111111111
and rax, r9
movabs rdi, 0x2222222222222222
and rdx, rdi
or rdx, rax
lea r11, [r8 + rsi*2]
movabs rax, 0x4444444444444444
and r10, rax
movabs r8, 0x8888888888888888
and rbp, r8
or rbp, r10
mov r10, r11
or rbp, rdx
mov qword [rsp + 0x40], rbp
mov rbp, rcx
mov rbx, rcx
and rbp, r9
and rbx, rdi
mov r14, rcx
and r14, rax
xor r10, rcx
mov qword [rsp + 0x38], r10
and rcx, r8
mov r10, qword [rsp + 0xc8]
mov rdx, r10
mov r12, qword [rsp + 0xb8]
mov r8, r12
imul rdx, rbp
imul r8, r14
mov rdi, qword [rsp + 0x110]
mov rax, rdi
imul rax, rbx
xor rax, r8
mov r9, r10
imul r9, rbx
mov rsi, qword [rsp + 0xc0]
mov r8, rsi
imul r8, rbp
xor r8, r9
mov r9, rsi
imul r9, rcx
xor r9, rdx
mov r15, rdi
imul r15, r14
mov rdx, r12
imul rdx, rcx
xor r15, rdx
mov qword [rsp + 0x20], r15
mov rdx, r10
imul rdx, r14
mov r15, rsi
imul r15, rbx
xor r15, rdx
mov r13, r12
imul r13, rbp
mov rdx, rdi
imul rdx, rcx
xor rdx, r13
xor rax, r9
mov qword [rsp + 0x30], rax
imul rcx, r10
imul r14, rsi
xor r14, rcx
xor qword [rsp + 0x20], r8
imul rbx, r12
imul rbp, rdi
xor rbp, rbx
xor rdx, r15
mov rbx, r11
movabs rax, 0x1111111111111111
and rbx, rax
mov r9, r11
xor rbp, r14
mov r15, r11
movabs rax, 0x8888888888888888
and r11, rax
mov rax, qword [rsp + 0x68]
mov rcx, rax
mov r10, rax
imul rcx, rbx
mov r12, qword [rsp + 0xb0]
mov r8, r12
imul r8, r11
xor r8, rcx
movabs rax, 0x2222222222222222
and r9, rax
movabs rax, 0x4444444444444444
and r15, rax
mov rdi, qword [rsp + 0xa8]
mov rcx, rdi
imul rcx, r15
mov rsi, qword [rsp + 0x108]
mov r14, rsi
imul r14, r9
xor r14, rcx
mov rax, r10
mov rcx, r10
imul rcx, r9
mov r13, r12
imul r13, rbx
xor r13, rcx
xor r14, r8
mov rcx, rdi
imul rcx, r11
mov r8, rsi
imul r8, r15
xor r8, rcx
mov r10, r8
mov rcx, rax
imul rcx, r15
mov rax, r12
imul rax, r9
xor rax, rcx
mov rcx, rdi
imul rcx, rbx
mov r8, rsi
imul r8, r11
xor r8, rcx
xor r10, r13
imul r11, qword [rsp + 0x68]
imul r15, r12
xor r15, r11
xor r8, rax
imul r9, rdi
imul rbx, rsi
xor rbx, r9
movabs rcx, 0x1111111111111111
mov rsi, qword [rsp + 0x30]
and rsi, rcx
movabs rax, 0x2222222222222222
mov r9, qword [rsp + 0x20]
and r9, rax
movabs r12, 0x4444444444444444
and rdx, r12
movabs r11, 0x8888888888888888
and rbp, r11
or r9, rsi
mov qword [rsp + 0x20], r9
xor rbx, r15
and r14, rcx
and r10, rax
mov r15, rax
or rbp, rdx
mov rdi, qword [rsp + 0x38]
mov rax, rdi
and rax, rcx
mov r9, rdi
or r10, r14
mov qword [rsp + 0x30], r10
mov rdx, rdi
and rdi, r11
mov rsi, qword [rsp + 0xa0]
mov rcx, rsi
mov r14, rsi
imul rcx, rax
mov r10, qword [rsp + 0x98]
mov rsi, r10
imul rsi, rdi
xor rsi, rcx
mov rcx, r12
and r8, r12
and rbx, r11
and r9, r15
and rdx, r12
or rbx, r8
mov r13, qword [rsp + 0x90]
mov r8, r13
imul r8, rdx
mov r12, qword [rsp + 0x100]
mov rcx, r12
imul rcx, r9
xor rcx, r8
mov r8, r14
mov r15, r14
imul r8, r9
mov r14, r10
imul r14, rax
xor r14, r8
mov r8, r13
imul r8, rdi
mov r11, r12
imul r11, rdx
xor r11, r8
xor rcx, rsi
xor r11, r14
mov r8, r15
imul r8, rdx
mov rsi, r10
imul rsi, r9
xor rsi, r8
mov r8, r13
imul r8, rax
mov r14, r12
imul r14, rdi
xor r14, r8
xor r14, rsi
imul rdi, r15
imul rdx, r10
xor rdx, rdi
or rbp, qword [rsp + 0x20]
imul r9, r13
imul rax, r12
xor rax, r9
or rbx, qword [rsp + 0x30]
xor rax, rdx
movabs rdx, 0x1111111111111111
and rcx, rdx
movabs rdx, 0x2222222222222222
and r11, rdx
or r11, rcx
movabs rcx, 0x4444444444444444
and r14, rcx
movabs rcx, 0x8888888888888888
and rax, rcx
or rax, r14
or rax, r11
mov rcx, rbp
bswap rbp
xor rcx, rbx
xor rcx, rax
mov rax, rbp
movabs r8, 0xf0f0f0f0f0f0f0f
and rbp, r8
shr rax, 4
shl rbp, 4
bswap rbx
and rax, r8
or rbp, rax
mov rax, rbx
shr rax, 4
and rax, r8
and rbx, r8
shl rbx, 4
or rbx, rax
mov rax, rbp
movabs r10, 0x3333333333333333
and rax, r10
shr rbp, 2
and rbp, r10
lea rax, [rax*4]
add rax, rbp
mov rdx, rbx
and rdx, r10
shr rbx, 2
and rbx, r10
lea r9, [rbx + rdx*4]
mov rbx, qword [rsp + 0x128]
mov rdx, rax
shr rax, 1
movabs rdi, 0x5555555555555555
and rdx, rdi
movabs r11, 0x5555555555555554
and rax, r11
bswap rcx
lea rdx, [rax + rdx*2]
mov rax, rcx
shr rax, 4
and rcx, r8
and rax, r8
shl rcx, 4
or rcx, rax
mov rax, rcx
and rax, r10
shr rcx, 2
and rcx, r10
lea r8, [rcx + rax*4]
mov rsi, qword [rsp + 0x60]
mov rax, qword [rsp + 0x48]
or rsi, rax
mov rcx, qword [rsp + 0x130]
shl rcx, 0x3f
shl rax, 0x3e
xor rax, rcx
mov rcx, rax
mov rax, rsi
shl rax, 0x39
xor rax, rcx
mov rcx, r9
shr rdx, 1
and rcx, rdi
shr r9, 1
and r9, r11
lea rcx, [r9 + rcx*2]
mov r10, r8
and r10, rdi
shr r8, 1
and r8, r11
xor rax, qword [rsp + 0x40]
mov r9, rsi
xor rax, rsi
lea r8, [r8 + r10*2]
mov rdi, qword [rsp + 0x28]
xor rax, rdi
xor rax, rdx
mov rdx, rax
shr rdx, 2
mov r10, rax
shr r10, 7
xor r10, rdx
mov rdx, rsi
mov r11, rsi
shr r9, 2
xor rcx, rax
shr rcx, 1
shr rdx, 1
xor rcx, r10
xor rcx, rax
mov r10, rax
xor r9, rdx
mov rdx, rax
shl rax, 0x39
xor rax, rsi
shr r11, 7
xor r11, r9
shr r8, 1
xor r11, r8
mov r8, qword [rsp + 0x138]
shl r10, 0x3f
shl rdx, 0x3e
xor rdx, r10
xor rdx, r11
xor rax, rdi
xor rax, rdx
add r8, 0x10
cmp rbx, r8
jne 0x14008d080
mov rdx, qword [rsp + 0x88]
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], rcx
movaps xmm6, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret