Function at 0x14001a720
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movdqa xmmword [rsp + 0x160], xmm6
mov rbx, r8
mov r15, rdx
mov rdi, rcx
movzx eax, byte [0x1400f9001]
cmp al, 1
jne 0x14001a7cf
test rbx, rbx
je 0x14001b40e
shl rbx, 4
xor esi, esi
pxor xmm6, xmm6
lea r14, [rsp + 0x150]
nop dword [rax + rax]
movdqu xmm0, xmmword [r15 + rsi]
movdqa xmmword [rsp + 0x150], xmm0
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 + 0x150], xmm0
mov rcx, rdi
mov rdx, r14
call fcn.140064090
add rsi, 0x10
cmp rbx, rsi
jne 0x14001a770
jmp 0x14001b40e
test rbx, rbx
je 0x14001b40e
mov rdx, qword [rdi]
mov rax, rdx
bswap rax
mov r8, qword [rdi + 8]
mov rcx, rax
shr rcx, 4
movabs r9, 0xf0f0f0f0f0f0f0f
and rcx, r9
and rax, r9
shl rax, 4
or rax, rcx
movabs r10, 0x3333333333333333
mov rcx, rax
and rcx, r10
shr rax, 2
and rax, r10
lea rax, [rax + rcx*4]
movabs r11, 0x5555555555555555
mov rcx, rax
and rcx, r11
shr rax, 1
and rax, r11
lea rsi, [rax + rcx*2]
mov rax, r8
bswap rax
mov rcx, rax
shr rcx, 4
and rcx, r9
and rax, r9
shl rax, 4
or rax, rcx
mov rcx, rax
and rcx, r10
shr rax, 2
and rax, r10
lea rax, [rax + rcx*4]
mov rcx, rax
and rcx, r11
shr rax, 1
and rax, r11
lea rax, [rax + rcx*2]
mov rcx, r8
xor rcx, rdx
mov r9, rax
xor r9, rsi
movabs r10, 0x1111111111111111
mov r11, rdx
and r11, r10
mov qword [rsp + 0xf8], r11
movabs r11, 0x2222222222222222
mov r14, rdx
and r14, r11
mov qword [rsp + 0xf0], r14
movabs r14, 0x4444444444444444
mov r12, rdx
and r12, r14
mov qword [rsp + 0x88], r12
movabs r12, 0x8888888888888888
and rdx, r12
mov qword [rsp + 0x120], rdx
mov rdx, r8
and rdx, r10
mov qword [rsp + 0xe8], rdx
mov rdx, r8
and rdx, r11
mov qword [rsp + 0xe0], rdx
mov rdx, r8
and rdx, r14
mov qword [rsp + 0xd8], rdx
and r8, r12
mov qword [rsp + 0x118], r8
mov rdx, rcx
and rdx, r10
mov qword [rsp + 0x68], rdx
mov rdx, rcx
and rdx, r11
mov qword [rsp + 0x80], rdx
mov rdx, rcx
and rdx, r14
mov qword [rsp + 0x78], rdx
and rcx, r12
mov qword [rsp + 0x90], rcx
mov rcx, rsi
and rcx, r10
mov qword [rsp + 0xd0], rcx
mov rcx, rsi
and rcx, r11
mov qword [rsp + 0xc8], rcx
mov rcx, rsi
and rcx, r14
mov qword [rsp + 0xc0], rcx
and rsi, r12
mov qword [rsp + 0x110], rsi
mov rcx, rax
and rcx, r10
mov qword [rsp + 0xb8], rcx
mov rcx, rax
and rcx, r11
mov qword [rsp + 0xb0], rcx
mov rcx, rax
and rcx, r14
mov qword [rsp + 0xa8], rcx
and rax, r12
mov qword [rsp + 0x108], rax
mov rax, r9
and rax, r10
mov qword [rsp + 0xa0], rax
mov rax, r9
and rax, r11
mov qword [rsp + 0x60], rax
mov rax, r9
and rax, r14
mov qword [rsp + 0x70], rax
and r9, r12
mov qword [rsp + 0x100], r9
shl rbx, 4
pxor xmm0, xmm0
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x98], rdi
mov rcx, qword [rdi + 0x18]
xor edx, edx
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x128], r15
nop word cs:[rax + rax]
mov qword [rsp + 0x148], rdx
movdqu xmm1, xmmword [r15 + rdx]
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 rcx, r8
bswap rcx
mov rdx, rcx
movabs rax, 0xf0f0f0f0f0f0f0f
and rcx, rax
mov r9, rcx
mov rcx, rax
mov rax, r13
bswap rax
mov r10, rax
shr rdx, 4
mov rsi, rdx
mov rax, r13
xor rax, r8
mov qword [rsp + 0x50], rax
mov r15, r8
shl r9, 4
mov qword [rsp + 0x38], r9
movabs rax, 0x1111111111111111
and r15, rax
mov r11, r8
movabs rax, 0x2222222222222222
and r11, rax
mov r14, r10
mov r12, r8
movabs rax, 0x4444444444444444
and r12, rax
movabs rax, 0x8888888888888888
and r8, rax
and r10, rcx
mov qword [rsp + 0x30], r10
mov r9, qword [rsp + 0x88]
mov rax, r9
mov rdi, r9
imul rax, r12
mov rbx, qword [rsp + 0x120]
mov r10, rbx
and rsi, rcx
mov qword [rsp + 0x28], rsi
imul r10, r11
mov rcx, qword [rsp + 0xf8]
mov r9, rcx
imul r9, r11
xor r10, rax
mov qword [rsp + 0x48], r10
mov r10, qword [rsp + 0xf0]
mov rax, r10
imul rax, r15
mov rbp, rdi
mov rsi, rdi
xor rax, r9
mov qword [rsp + 0x40], rax
imul rbp, r8
mov rax, rbx
imul rax, r12
mov rdx, qword [rsp + 0x28]
add qword [rsp + 0x38], rdx
mov rdx, rcx
imul rdx, r12
mov rdi, r10
shr r14, 4
imul rdi, r11
xor rdi, rdx
xor rax, rbp
imul rsi, r15
mov rdx, rbx
imul rdx, r8
xor rdx, rsi
mov qword [rsp + 0x28], rdx
mov r9, r10
imul r9, r8
imul r8, rcx
mov rbp, qword [rsp + 0x30]
shl rbp, 4
imul r12, r10
xor r12, r8
movabs rdx, 0xf0f0f0f0f0f0f0f
and r14, rdx
imul rcx, r15
mov qword [rsp + 0x140], rcx
xor r9, rcx
imul r11, qword [rsp + 0x88]
or rbp, r14
mov qword [rsp + 0x30], rbp
imul r15, rbx
xor r15, r11
mov r10, r15
mov r14, r13
xor r9, qword [rsp + 0x48]
movabs rcx, 0x1111111111111111
and r14, rcx
mov rbp, r13
movabs rcx, 0x2222222222222222
and rbp, rcx
xor rax, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
mov rcx, r13
movabs rdx, 0x4444444444444444
and rcx, rdx
movabs rdx, 0x8888888888888888
and r13, rdx
xor qword [rsp + 0x28], rdi
mov rsi, qword [rsp + 0xe8]
mov rax, rsi
mov r15, qword [rsp + 0xe0]
mov r8, r15
imul r8, r13
imul rax, r14
xor r8, rax
mov rdx, qword [rsp + 0xd8]
mov rax, rdx
imul rax, rcx
xor r10, r12
mov qword [rsp + 0x40], r10
mov rdi, qword [rsp + 0x118]
mov r12, rdi
imul r12, rbp
xor r12, rax
xor r12, r8
mov rax, rsi
imul rax, rbp
mov r10, r15
imul r10, r14
xor r10, rax
mov rax, rdx
imul rax, r13
mov r8, rdi
imul r8, rcx
xor r8, rax
mov rax, rsi
imul rax, rcx
mov r11, r15
imul r11, rbp
xor r11, rax
xor r8, r10
mov rbx, rdi
imul rbx, r13
mov rax, rdx
imul rax, r14
xor rbx, rax
xor rbx, r11
imul r13, rsi
imul rcx, r15
xor rcx, r13
mov r11, qword [rsp + 0x38]
mov rax, r11
shr r11, 2
movabs r10, 0x3333333333333333
and rax, r10
and r11, r10
movabs r10, 0x1111111111111111
and r9, r10
imul rbp, rdx
mov rdx, qword [rsp + 0x48]
movabs r15, 0x2222222222222222
and rdx, r15
imul r14, rdi
xor r14, rbp
xor r14, rcx
mov qword [rsp + 0x38], r14
lea rax, [r11 + rax*4]
mov qword [rsp + 0x58], rax
mov r13, qword [rsp + 0x50]
mov rdi, r13
and rdi, r10
mov r14, r13
or rdx, r9
mov qword [rsp + 0x48], rdx
mov r9, r13
movabs r11, 0x8888888888888888
and r13, r11
mov rax, qword [rsp + 0x68]
imul rax, rdi
mov r15, qword [rsp + 0x80]
mov r10, r15
imul r10, r13
xor r10, rax
movabs rdx, 0x4444444444444444
mov rbp, qword [rsp + 0x28]
and rbp, rdx
mov rax, qword [rsp + 0x40]
and rax, r11
movabs rcx, 0x2222222222222222
and r14, rcx
and r9, rdx
or rax, rbp
mov qword [rsp + 0x40], rax
mov rsi, qword [rsp + 0x78]
mov rax, rsi
imul rax, r9
mov rcx, qword [rsp + 0x90]
mov rdx, rcx
imul rdx, r14
xor rdx, rax
movabs rax, 0x1111111111111111
and r12, rax
movabs rax, 0x2222222222222222
and r8, rax
or r8, r12
xor rdx, r10
mov r12, qword [rsp + 0x68]
mov rax, r12
mov r11, r15
mov rbp, r15
imul rax, r14
imul r11, rdi
xor r11, rax
imul rsi, r13
mov rax, rcx
imul rax, r9
xor rax, rsi
mov r15, qword [rsp + 0x30]
mov r10, r15
movabs rsi, 0x3333333333333333
and r10, rsi
shr r15, 2
and r15, rsi
lea r10, [r15 + r10*4]
xor rax, r11
mov r11, r12
imul r11, r9
mov r15, rbp
imul r15, r14
xor r15, r11
movabs r11, 0x4444444444444444
and rbx, r11
or rbx, r8
mov r8, rcx
imul r8, r13
mov rbp, qword [rsp + 0x78]
mov r11, rbp
imul r11, rdi
xor r8, r11
xor r8, r15
mov rcx, qword [rsp + 0x58]
mov r11, rcx
movabs r12, 0x5555555555555555
and r11, r12
shr rcx, 1
and rcx, r12
mov rsi, qword [rsp + 0x38]
movabs r15, 0x8888888888888888
and rsi, r15
or rsi, rbx
mov qword [rsp + 0x38], rsi
mov r15, r10
shr r10, 1
imul r13, qword [rsp + 0x68]
lea rbx, [rcx + r11*2]
imul r9, qword [rsp + 0x80]
xor r9, r13
imul r14, rbp
and r15, r12
imul rdi, qword [rsp + 0x90]
xor rdi, r14
xor rdi, r9
and r10, r12
movabs r9, 0x1111111111111111
and rdx, r9
movabs r11, 0x2222222222222222
and rax, r11
or rax, rdx
lea rsi, [r10 + r15*2]
movabs rdx, 0x4444444444444444
and r8, rdx
or r8, rax
movabs rax, 0x8888888888888888
and rdi, rax
mov r10, rsi
or rdi, r8
mov qword [rsp + 0x58], rdi
mov r15, rbx
mov rcx, rbx
and r15, r9
and rcx, r11
mov rbp, rbx
and rbp, rdx
xor r10, rbx
mov qword [rsp + 0x138], r10
and rbx, rax
mov r11, qword [rsp + 0xd0]
mov rdx, r11
mov r12, qword [rsp + 0xc0]
mov rax, r12
imul rdx, r15
imul rax, rbp
mov r13, qword [rsp + 0x110]
mov r8, r13
imul r8, rcx
xor r8, rax
mov qword [rsp + 0x50], r8
mov r8, r11
imul r8, rcx
mov r10, qword [rsp + 0xc8]
mov rax, r10
imul rax, r15
xor rax, r8
mov r9, r10
imul r9, rbx
xor r9, rdx
mov r8, r13
imul r8, rbp
mov rdx, r12
imul rdx, rbx
xor r8, rdx
mov rdx, r11
imul rdx, rbp
mov rdi, r10
imul rdi, rcx
xor rdi, rdx
mov r14, r12
imul r14, r15
mov rdx, r13
imul rdx, rbx
xor rdx, r14
xor qword [rsp + 0x50], r9
imul rbx, r11
imul rbp, r10
xor rbp, rbx
xor r8, rax
mov qword [rsp + 0x28], r8
imul rcx, r12
imul r15, r13
xor r15, rcx
xor rdx, rdi
mov qword [rsp + 0x30], rdx
mov r14, rsi
movabs rax, 0x1111111111111111
and r14, rax
mov r9, rsi
xor r15, rbp
mov r10, rsi
movabs rax, 0x8888888888888888
and rsi, rax
mov r11, qword [rsp + 0xb8]
mov rcx, r11
imul rcx, r14
mov r12, qword [rsp + 0xb0]
mov rdi, r12
imul rdi, rsi
xor rdi, rcx
movabs rax, 0x2222222222222222
and r9, rax
movabs rax, 0x4444444444444444
and r10, rax
mov r13, qword [rsp + 0xa8]
mov rbx, r13
imul rbx, r10
mov r8, qword [rsp + 0x108]
mov rdx, r8
imul rdx, r9
xor rdx, rbx
mov rbx, r11
imul rbx, r9
mov rcx, r12
imul rcx, r14
xor rcx, rbx
xor rdx, rdi
mov rdi, r13
imul rdi, rsi
mov rbx, r8
imul rbx, r10
xor rbx, rdi
mov rdi, r11
imul rdi, r10
mov rax, r12
imul rax, r9
xor rax, rdi
mov rdi, r13
imul rdi, r14
mov rbp, r8
imul rbp, rsi
xor rbp, rdi
xor rbx, rcx
imul rsi, r11
imul r10, r12
xor r10, rsi
xor rbp, rax
imul r9, r13
imul r14, r8
xor r14, r9
movabs r8, 0x1111111111111111
mov r11, qword [rsp + 0x50]
and r11, r8
movabs r13, 0x2222222222222222
mov r9, qword [rsp + 0x28]
and r9, r13
xor r14, r10
mov rcx, qword [rsp + 0x138]
mov rax, rcx
or r9, r11
mov qword [rsp + 0x28], r9
mov r10, rcx
mov r9, rcx
movabs r11, 0x8888888888888888
and rcx, r11
and rax, r8
mov rdi, qword [rsp + 0x60]
mov rsi, rdi
imul rsi, rcx
mov r11, rcx
mov r12, qword [rsp + 0xa0]
mov rcx, r12
imul rcx, rax
xor rsi, rcx
and rdx, r8
mov rcx, r13
and rbx, r13
or rbx, rdx
and r10, r13
movabs r8, 0x4444444444444444
and r9, r8
mov r13, qword [rsp + 0x70]
mov rdx, r13
imul rdx, r9
mov r8, qword [rsp + 0x100]
mov rcx, r8
imul rcx, r10
xor rcx, rdx
xor rcx, rsi
mov rdx, r12
imul rdx, r10
mov rsi, rdi
imul rsi, rax
xor rsi, rdx
mov rdx, r13
imul rdx, r11
mov rdi, r8
imul rdi, r9
xor rdi, rdx
mov rdx, qword [rsp + 0x30]
movabs r13, 0x4444444444444444
and rdx, r13
add rdx, qword [rsp + 0x28]
mov qword [rsp + 0x30], rdx
xor rdi, rsi
mov rdx, r12
imul rdx, r9
mov rsi, qword [rsp + 0x60]
imul rsi, r10
xor rsi, rdx
movabs rdx, 0x4444444444444444
and rbp, rdx
or rbp, rbx
mov rbx, r8
imul r8, r11
mov r13, qword [rsp + 0x70]
mov rdx, r13
imul rdx, rax
xor r8, rdx
xor r8, rsi
movabs rdx, 0x8888888888888888
and r15, rdx
add r15, qword [rsp + 0x30]
imul r11, r12
imul r9, qword [rsp + 0x60]
xor r9, r11
imul r10, r13
imul rax, rbx
xor rax, r10
and r14, rdx
or r14, rbp
xor rax, r9
movabs rdx, 0x1111111111111111
and rcx, rdx
movabs rdx, 0x2222222222222222
and rdi, rdx
or rdi, rcx
movabs rcx, 0x4444444444444444
and r8, rcx
or r8, rdi
movabs rcx, 0x888888888888888
and rax, rcx
or r8, rax
mov rax, r15
bswap r15
xor rax, r14
xor rax, r8
mov rcx, r15
movabs r9, 0xf0f0f0f0f0f0f0f
and r15, r9
shr rcx, 4
shl r15, 4
bswap r14
and rcx, r9
or r15, rcx
mov rcx, r14
shr rcx, 4
and rcx, r9
and r14, r9
shl r14, 4
or r14, rcx
mov rcx, r15
movabs r8, 0x3333333333333333
and rcx, r8
shr r15, 2
and r15, r8
lea rdx, [r15 + rcx*4]
mov r15, qword [rsp + 0x128]
mov rcx, r14
and rcx, r8
shr r14, 2
and r14, r8
mov r11, r8
lea rcx, [r14 + rcx*4]
mov r8, rdx
shr rdx, 1
movabs rsi, 0x5555555555555555
and r8, rsi
movabs r10, 0x5555555555555554
and rdx, r10
bswap rax
lea rdx, [rdx + r8*2]
mov r8, rax
shr r8, 4
and rax, r9
and r8, r9
shl rax, 4
or rax, r8
mov r8, rax
and r8, r11
shr rax, 2
and rax, r11
lea r8, [rax + r8*4]
mov rax, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
or r11, rax
mov r9, qword [rsp + 0x140]
shl r9, 0x3f
shl rax, 0x3e
xor rax, r9
mov r9, rax
mov rax, r11
shl rax, 0x39
xor rax, r9
mov r9, rcx
shr rdx, 1
and r9, rsi
shr rcx, 1
and rcx, r10
lea rcx, [rcx + r9*2]
mov r9, r8
and r9, rsi
shr r8, 1
and r8, r10
xor rax, qword [rsp + 0x58]
mov r10, r11
xor rax, r11
lea r8, [r8 + r9*2]
mov rsi, qword [rsp + 0x38]
xor rax, rsi
xor rax, rdx
mov rdx, rax
shr rdx, 2
mov r9, rax
shr r9, 7
xor r9, rdx
mov rdx, r11
shr r10, 2
xor rcx, rax
shr rcx, 1
shr rdx, 1
xor rcx, r9
xor rcx, rax
mov r9, rax
xor r10, rdx
mov rdx, rax
shl rax, 0x39
xor rax, r11
shr r11, 7
xor r11, r10
shr r8, 1
xor r11, r8
shl r9, 0x3f
shl rdx, 0x3e
xor rdx, r9
xor rdx, r11
xor rax, rsi
xor rax, rdx
mov rdx, qword [rsp + 0x148]
add rdx, 0x10
mov r8, qword [rsp + 0x130]
cmp r8, rdx
jne 0x14001aa10
mov rdx, qword [rsp + 0x98]
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], rcx
movaps xmm6, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret