Function at 0x140042280
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 + 0xa0], rdx
mov rdi, rcx
movzx eax, byte [0x14029b0e8]
cmp al, 1
jne 0x140042346
test rbx, rbx
je 0x140042f2b
shl rbx, 4
xor esi, esi
pxor xmm6, xmm6
lea r14, [rsp + 0x140]
nop word cs:[rax + rax]
mov rax, qword [rsp + 0xa0]
movdqu xmm0, xmmword [rax + rsi]
movdqa xmmword [rsp + 0x140], 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 + 0x140], xmm0
mov rcx, rdi
mov rdx, r14
call fcn.140103040
add rsi, 0x10
cmp rbx, rsi
jne 0x1400422e0
jmp 0x140042f2b
test rbx, rbx
je 0x140042f2b
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 + 0x90], r14
movabs r14, 0x8888888888888888
and r10, r14
mov qword [rsp + 0x118], r10
mov r10, r11
and r10, r9
mov qword [rsp + 0xe8], r10
mov r10, r11
and r10, r8
mov qword [rsp + 0xe0], r10
mov r10, r11
and r10, rdx
mov qword [rsp + 0x88], r10
and r11, r14
mov qword [rsp + 0x110], r11
mov r10, rcx
and r10, r9
mov qword [rsp + 0x58], r10
mov r10, rcx
and r10, r8
mov qword [rsp + 0x80], r10
mov r10, rcx
and r10, rdx
mov qword [rsp + 0x50], r10
and rcx, r14
mov qword [rsp + 0x98], rcx
mov rcx, r13
and rcx, r9
mov qword [rsp + 0xd8], rcx
mov rcx, r13
and rcx, r8
mov qword [rsp + 0xd0], rcx
mov rcx, r13
and rcx, rdx
mov qword [rsp + 0xc8], rcx
and r13, r14
mov qword [rsp + 0x108], r13
mov rcx, rax
and rcx, r9
mov qword [rsp + 0x78], rcx
mov rcx, rax
and rcx, r8
mov qword [rsp + 0x70], rcx
mov rcx, rax
and rcx, rdx
mov qword [rsp + 0xc0], rcx
and rax, r14
mov qword [rsp + 0x100], rax
mov rax, rsi
and rax, r9
mov qword [rsp + 0x68], rax
mov rax, rsi
and rax, r8
mov qword [rsp + 0xb8], rax
mov rax, rsi
and rax, rdx
mov qword [rsp + 0xb0], rax
and rsi, r14
mov qword [rsp + 0x60], rsi
shl rbx, 4
pxor xmm0, xmm0
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0xa8], rdi
mov rcx, qword [rdi + 0x18]
xor r8d, r8d
mov qword [rsp + 0x120], rbx
nop dword [rax]
mov qword [rsp + 0x138], r8
mov rdx, qword [rsp + 0xa0]
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 r10, 0xf0f0f0f0f0f0f0f
and rdx, r10
mov rcx, r13
bswap rcx
mov rdi, rcx
shr rax, 4
mov rcx, r13
xor rcx, r8
mov qword [rsp + 0x48], rcx
mov rbp, r8
shl rdx, 4
mov rsi, rdx
movabs rcx, 0x1111111111111111
and rbp, rcx
mov r11, r8
movabs rcx, 0x2222222222222222
and r11, rcx
mov r14, rdi
mov rcx, r8
movabs rdx, 0x4444444444444444
and rcx, rdx
movabs rdx, 0x8888888888888888
and r8, rdx
mov rdx, r10
and rdi, r10
mov qword [rsp + 0x20], rdi
mov r12, qword [rsp + 0x90]
mov r10, r12
imul r10, rcx
mov r9, qword [rsp + 0x118]
mov rdi, r9
mov rbx, r9
and rax, rdx
imul rdi, r11
mov rdx, qword [rsp + 0xf8]
mov r15, rdx
imul r15, r11
xor rdi, r10
mov qword [rsp + 0x38], rdi
mov rdi, qword [rsp + 0xf0]
mov r9, rdi
imul r9, rbp
mov r10, r12
xor r9, r15
mov qword [rsp + 0x28], r9
imul r10, r8
mov r9, rbx
mov r15, rbx
imul r15, rcx
or rsi, rax
mov qword [rsp + 0x30], rsi
mov rax, rdx
imul rax, rcx
mov rsi, rdi
shr r14, 4
imul rsi, r11
xor rsi, rax
xor r15, r10
imul r12, rbp
mov rax, rbx
imul rax, r8
xor rax, r12
mov r12, rax
mov r10, rdi
imul r10, r8
imul r8, rdx
mov rax, qword [rsp + 0x20]
shl rax, 4
imul rcx, rdi
xor rcx, r8
movabs r8, 0xf0f0f0f0f0f0f0f
and r14, r8
imul rdx, rbp
mov qword [rsp + 0x130], rdx
xor r10, rdx
imul r11, qword [rsp + 0x90]
or rax, r14
mov qword [rsp + 0x20], rax
imul rbp, rbx
xor rbp, r11
mov qword [rsp + 0x40], rbp
mov rbp, r13
xor r10, qword [rsp + 0x38]
movabs rax, 0x1111111111111111
and rbp, rax
mov r11, r13
movabs rax, 0x2222222222222222
and r11, rax
xor r15, qword [rsp + 0x28]
mov qword [rsp + 0x38], r15
mov rdi, r13
movabs rax, 0x4444444444444444
and rdi, rax
movabs rax, 0x8888888888888888
and r13, rax
xor r12, rsi
mov qword [rsp + 0x28], r12
mov r9, qword [rsp + 0xe8]
mov rdx, r9
mov rsi, qword [rsp + 0xe0]
mov r8, rsi
imul r8, r13
imul rdx, rbp
xor r8, rdx
mov rax, qword [rsp + 0x88]
mov r14, rax
imul r14, rdi
xor qword [rsp + 0x40], rcx
mov r12, qword [rsp + 0x110]
mov rdx, r12
imul rdx, r11
xor rdx, r14
xor rdx, r8
mov rcx, r9
imul rcx, r11
mov r8, rsi
imul r8, rbp
xor r8, rcx
mov r14, rax
imul r14, r13
mov rcx, r12
imul rcx, rdi
xor rcx, r14
mov r14, r9
imul r14, rdi
mov r15, rsi
imul r15, r11
xor r15, r14
xor rcx, r8
mov r8, r12
imul r8, r13
mov r14, rax
imul r14, rbp
xor r8, r14
xor r8, r15
imul r13, r9
imul rdi, rsi
xor rdi, r13
mov rax, qword [rsp + 0x30]
mov rbx, rax
shr rax, 2
movabs r14, 0x3333333333333333
and rbx, r14
and rax, r14
mov qword [rsp + 0x30], rax
movabs r9, 0x1111111111111111
and r10, r9
mov rsi, qword [rsp + 0x38]
movabs rax, 0x2222222222222222
and rsi, rax
movabs r14, 0x4444444444444444
and qword [rsp + 0x28], r14
imul r11, qword [rsp + 0x88]
imul rbp, r12
xor rbp, r11
mov r14, qword [rsp + 0x40]
movabs r13, 0x8888888888888888
and r14, r13
xor rbp, rdi
and rdx, r9
mov r11, r9
and rcx, rax
movabs r15, 0x4444444444444444
and r8, r15
mov r9, qword [rsp + 0x48]
mov r12, r9
and r12, r11
mov r11, r9
mov rdi, qword [rsp + 0x30]
lea rdi, [rdi + rbx*4]
and r11, rax
mov rax, r9
and rax, r15
or rsi, r10
mov qword [rsp + 0x38], rsi
and r9, r13
mov r10, qword [rsp + 0x58]
imul r10, r12
or r14, qword [rsp + 0x28]
mov qword [rsp + 0x40], r14
mov rsi, qword [rsp + 0x80]
mov rbx, rsi
mov r14, rsi
imul rbx, r9
mov r15, r9
xor rbx, r10
or rcx, rdx
mov rdx, qword [rsp + 0x50]
imul rdx, rax
mov r13, qword [rsp + 0x98]
mov r9, r13
movabs r10, 0x8888888888888888
and rbp, r10
imul r9, r11
xor r9, rdx
mov rsi, qword [rsp + 0x58]
mov rdx, rsi
or rbp, r8
imul rdx, r11
mov r8, r14
imul r8, r12
xor r9, rbx
xor r8, rdx
mov r10, qword [rsp + 0x50]
mov rdx, r13
imul r10, r15
imul rdx, rax
xor rdx, r10
mov r14, qword [rsp + 0x20]
mov r10, r14
movabs rbx, 0x3333333333333333
and r10, rbx
shr r14, 2
and r14, rbx
xor rdx, r8
lea r8, [r14 + r10*4]
mov r10, rsi
imul r10, rax
mov rsi, qword [rsp + 0x80]
mov rbx, rsi
imul rbx, r11
xor rbx, r10
mov r13, qword [rsp + 0x50]
mov r14, r13
imul r14, r12
or rbp, rcx
mov qword [rsp + 0x28], rbp
mov rbp, qword [rsp + 0x98]
mov r10, rbp
imul r10, r15
xor r10, r14
mov rcx, rdi
movabs r14, 0x5555555555555555
and rcx, r14
shr rdi, 1
xor r10, rbx
and rdi, r14
mov rbx, r8
shr r8, 1
imul r15, qword [rsp + 0x58]
lea rcx, [rdi + rcx*2]
imul rax, rsi
xor rax, r15
imul r11, r13
and rbx, r14
imul r12, rbp
xor r12, r11
xor r12, rax
and r8, r14
movabs r11, 0x1111111111111111
and r9, r11
movabs rsi, 0x2222222222222222
and rdx, rsi
or rdx, r9
lea r15, [r8 + rbx*2]
movabs rax, 0x4444444444444444
and r10, rax
movabs r8, 0x8888888888888888
and r12, r8
or r12, r10
mov r10, r15
or r12, rdx
mov qword [rsp + 0x48], r12
mov rbp, rcx
mov r9, rcx
and rbp, r11
and r9, rsi
mov r14, rcx
and r14, rax
xor r10, rcx
mov qword [rsp + 0x128], r10
and rcx, r8
mov rbx, qword [rsp + 0xd8]
mov rdx, rbx
mov r13, qword [rsp + 0xc8]
mov r8, r13
imul rdx, rbp
imul r8, r14
mov r12, qword [rsp + 0x108]
mov rax, r12
imul rax, r9
xor rax, r8
mov qword [rsp + 0x30], rax
mov r11, rbx
imul r11, r9
mov r10, qword [rsp + 0xd0]
mov r8, r10
imul r8, rbp
xor r8, r11
mov r11, r10
imul r11, rcx
xor r11, rdx
mov rax, r12
imul rax, r14
mov rdx, r13
imul rdx, rcx
xor rax, rdx
mov qword [rsp + 0x20], rax
mov rdx, rbx
imul rdx, r14
mov rsi, r10
imul rsi, r9
xor rsi, rdx
mov rax, r13
imul rax, rbp
mov rdi, r12
imul rdi, rcx
xor rdi, rax
xor qword [rsp + 0x30], r11
imul rcx, rbx
imul r14, r10
xor r14, rcx
xor qword [rsp + 0x20], r8
imul r9, r13
imul rbp, r12
xor rbp, r9
xor rdi, rsi
mov rsi, r15
movabs rax, 0x1111111111111111
and rsi, rax
mov r11, r15
xor rbp, r14
mov r9, r15
movabs rax, 0x8888888888888888
and r15, rax
mov rbx, qword [rsp + 0x78]
mov rax, rbx
imul rax, rsi
mov rdx, qword [rsp + 0x70]
mov rcx, rdx
mov r10, rdx
imul rcx, r15
xor rcx, rax
movabs rax, 0x2222222222222222
and r11, rax
movabs rax, 0x4444444444444444
and r9, rax
mov r13, qword [rsp + 0xc0]
mov rax, r13
imul rax, r9
mov rdx, qword [rsp + 0x100]
mov r14, rdx
imul r14, r11
xor r14, rax
mov rax, rbx
imul rax, r11
mov r8, r10
imul r8, rsi
xor r8, rax
xor r14, rcx
mov rax, r13
imul rax, r15
mov r12, rdx
mov r10, rdx
imul r12, r9
xor r12, rax
mov rcx, rbx
imul rcx, r9
mov rbx, qword [rsp + 0x70]
mov rax, rbx
imul rax, r11
xor rax, rcx
mov rdx, r13
imul rdx, rsi
mov rcx, r10
imul rcx, r15
xor rcx, rdx
xor r12, r8
imul r15, qword [rsp + 0x78]
imul r9, rbx
xor r9, r15
xor rcx, rax
imul r11, r13
imul rsi, r10
xor rsi, r11
movabs rdx, 0x1111111111111111
mov rbx, qword [rsp + 0x30]
and rbx, rdx
movabs rax, 0x2222222222222222
mov r8, qword [rsp + 0x20]
and r8, rax
movabs r15, 0x4444444444444444
and rdi, r15
movabs r11, 0x8888888888888888
and rbp, r11
or r8, rbx
mov qword [rsp + 0x20], r8
xor rsi, r9
and r14, rdx
and r12, rax
mov r13, rax
or rbp, rdi
mov r15, qword [rsp + 0x128]
mov rax, r15
and rax, rdx
mov r9, r15
or r12, r14
mov rdx, r15
and r15, r11
mov r10, qword [rsp + 0x68]
mov r8, r10
imul r8, rax
mov r14, qword [rsp + 0xb8]
mov rdi, r14
imul rdi, r15
xor rdi, r8
movabs r8, 0x4444444444444444
and rcx, r8
and rsi, r11
and r9, r13
and rdx, r8
or rsi, rcx
mov r13, qword [rsp + 0xb0]
mov rcx, r13
imul rcx, rdx
mov r11, qword [rsp + 0x60]
imul r11, r9
xor r11, rcx
mov rcx, r10
imul rcx, r9
mov r8, r14
imul r8, rax
xor r8, rcx
mov rbx, r13
imul rbx, r15
mov rcx, qword [rsp + 0x60]
imul rcx, rdx
xor rcx, rbx
xor r11, rdi
xor rcx, r8
imul r10, rdx
mov rbx, r14
imul rbx, r9
xor rbx, r10
mov r8, r13
imul r8, rax
mov r10, qword [rsp + 0x60]
mov rdi, r10
imul rdi, r15
xor rdi, r8
xor rdi, rbx
mov rbx, qword [rsp + 0x120]
imul r15, qword [rsp + 0x68]
imul rdx, r14
xor rdx, r15
or rbp, qword [rsp + 0x20]
imul r9, r13
imul rax, r10
xor rax, r9
or rsi, r12
xor rax, rdx
movabs rdx, 0x1111111111111111
and r11, rdx
movabs rdx, 0x2222222222222222
and rcx, rdx
or rcx, r11
movabs rdx, 0x4444444444444444
and rdi, rdx
movabs rdx, 0x8888888888888888
and rax, rdx
or rax, rdi
or rax, rcx
mov rcx, rbp
bswap rbp
xor rcx, rsi
xor rcx, rax
mov rax, rbp
movabs r9, 0xf0f0f0f0f0f0f0f
and rbp, r9
shr rax, 4
shl rbp, 4
bswap rsi
and rax, r9
or rbp, rax
mov rax, rsi
shr rax, 4
and rax, r9
and rsi, r9
shl rsi, 4
or rsi, rax
mov rax, rbp
movabs r8, 0x3333333333333333
and rax, r8
shr rbp, 2
and rbp, r8
lea rax, [rax*4]
add rax, rbp
mov rdx, rsi
and rdx, r8
shr rsi, 2
and rsi, r8
mov r11, r8
lea rdx, [rsi + rdx*4]
mov r8, rax
shr rax, 1
movabs rsi, 0x5555555555555555
and r8, rsi
movabs r10, 0x5555555555555554
and rax, r10
bswap rcx
lea r8, [rax + r8*2]
mov rax, rcx
shr rax, 4
and rcx, r9
and rax, r9
shl rcx, 4
or rcx, rax
mov rax, rcx
and rax, r11
shr rcx, 2
and rcx, r11
lea r9, [rcx + rax*4]
mov r11, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
or r11, rax
mov rcx, qword [rsp + 0x130]
shl rcx, 0x3f
shl rax, 0x3e
xor rax, rcx
mov rcx, rax
mov rax, r11
shl rax, 0x39
xor rax, rcx
mov rcx, rdx
shr r8, 1
and rcx, rsi
shr rdx, 1
and rdx, r10
lea rcx, [rdx + rcx*2]
mov rdx, r9
and rdx, rsi
shr r9, 1
and r9, r10
xor rax, qword [rsp + 0x48]
mov r10, r11
xor rax, r11
lea rdx, [r9 + rdx*2]
mov rsi, qword [rsp + 0x28]
xor rax, rsi
xor rax, r8
mov r8, rax
shr r8, 2
mov r9, rax
shr r9, 7
xor r9, r8
mov r8, r11
shr r10, 2
xor rcx, rax
shr rcx, 1
shr r8, 1
xor rcx, r9
xor rcx, rax
mov r9, rax
xor r10, r8
mov r8, rax
shl rax, 0x39
xor rax, r11
shr r11, 7
xor r11, r10
shr rdx, 1
xor r11, rdx
shl r9, 0x3f
shl r8, 0x3e
xor r8, r9
xor r8, r11
xor rax, rsi
xor rax, r8
mov r8, qword [rsp + 0x138]
add r8, 0x10
cmp rbx, r8
jne 0x140042570
mov rdx, qword [rsp + 0xa8]
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