Function at 0x14016d610
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1e8
vmovups xmmword [rsp + 0x140], xmm6
vmovups xmmword [rsp + 0x150], xmm7
vmovups xmmword [rsp + 0x160], xmm8
vmovups xmmword [rsp + 0x170], xmm9
vmovups xmmword [rsp + 0x180], xmm10
vmovups xmmword [rsp + 0x190], xmm11
vmovups xmmword [rsp + 0x1a0], xmm12
vmovups xmmword [rsp + 0x1b0], xmm13
vmovups xmmword [rsp + 0x1c0], xmm14
vmovups xmmword [rsp + 0x1d0], xmm15
mov eax, dword [rcx + 0x1190]
mov rbx, rcx
mov rdi, rdx
mov rsi, r8
cmp r8, 0x3f
jbe 0x14016df60
test eax, eax
jne 0x14016df10
vmovdqu xmm2, xmmword [rbx + 0x1080]
mov rax, rsi
vmovdqu xmm10, xmmword [rbx + 0x10a0]
shr rax, 5
vmovdqu xmm15, xmmword [rbx + 0x10c0]
vmovdqu xmm14, xmmword [rbx + 0x10d0]
vmovdqu xmmword [rsp + 0x110], xmm2
vmovdqu xmm2, xmmword [rbx + 0x1090]
vmovdqu xmm13, xmmword [rbx + 0x1140]
lea r9, [rax - 1]
vmovdqu xmm11, xmmword [rbx + 0x1170]
mov r8d, dword [rbx + 0x1194]
vmovdqu xmmword [rsp + 0x120], xmm2
vmovdqu xmm2, xmmword [rbx + 0x10b0]
vmovdqu xmmword [rsp + 0x20], xmm2
vmovdqu xmm2, xmmword [rbx + 0x10e0]
vmovdqu xmmword [rsp + 0x30], xmm2
vmovdqu xmm2, xmmword [rbx + 0x10f0]
vmovdqu xmmword [rsp + 0x40], xmm2
vmovdqu xmm2, xmmword [rbx + 0x1100]
vmovdqu xmmword [rsp + 0x50], xmm2
vmovdqu xmm2, xmmword [rbx + 0x1110]
vmovdqu xmmword [rsp + 0x60], xmm2
vmovdqu xmm2, xmmword [rbx + 0x1120]
vmovdqu xmmword [rsp + 0x70], xmm2
vmovdqu xmm2, xmmword [rbx + 0x1130]
vmovdqu xmmword [rsp + 0x80], xmm2
vmovdqu xmm2, xmmword [rbx + 0x1150]
vmovdqu xmmword [rsp + 0x90], xmm2
vmovdqu xmm2, xmmword [rbx + 0x1160]
vmovdqu xmmword [rsp + 0xa0], xmm2
vmovdqu xmm2, xmmword [rbx + 0x1180]
je 0x14016dd83
movabs rax, 0x100000001
mov rcx, rdi
vmovdqu xmmword [rsp + 0xb0], xmm15
vmovdqu xmm15, xmm13
vmovdqu xmmword [rsp + 0xc0], xmm14
vmovq xmm6, rax
vmovdqu xmm14, xmm10
vpunpcklqdq xmm6, xmm6, xmm6
vmovdqu xmmword [rsp + 0x130], xmm6
vpcmpeqq xmm12, xmm12, xmm12
nop dword [rax + rax]
lea eax, [r8 - 8]
mov r10d, r8d
lea r8d, [r8 - 1]
sub rcx, 0xffffffffffffff80
and r8d, 0x1f
and eax, 0x1f
mov edx, r8d
shl rax, 7
shl rdx, 7
add rax, rbx
add rdx, rbx
vmovdqu xmm0, xmmword [rdx + 0xa0]
vpxor xmm1, xmm0, xmmword [rax + 0x80]
vmovdqu xmmword [rax + 0x80], xmm1
vpxor xmm0, xmm0, xmmword [rcx - 0x60]
vmovdqu xmmword [rdx + 0xa0], xmm0
vmovdqu xmm0, xmmword [rdx + 0xb0]
vpxor xmm1, xmm0, xmmword [rax + 0x90]
vmovdqu xmmword [rax + 0x90], xmm1
vpxor xmm0, xmm0, xmmword [rcx - 0x50]
vmovdqu xmmword [rdx + 0xb0], xmm0
vmovdqu xmm0, xmmword [rdx + 0xc0]
vpxor xmm1, xmm0, xmmword [rax + 0xa0]
vmovdqu xmmword [rax + 0xa0], xmm1
vpxor xmm0, xmm0, xmmword [rcx - 0x40]
vmovdqu xmmword [rdx + 0xc0], xmm0
vmovdqu xmm0, xmmword [rdx + 0xd0]
vpxor xmm1, xmm0, xmmword [rax + 0xb0]
vmovdqu xmmword [rax + 0xb0], xmm1
vpxor xmm0, xmm0, xmmword [rcx - 0x30]
vmovdqu xmmword [rdx + 0xd0], xmm0
vmovdqu xmm0, xmmword [rdx + 0xe0]
vpxor xmm1, xmm0, xmmword [rax + 0xc0]
vmovdqu xmmword [rax + 0xc0], xmm1
vpxor xmm0, xmm0, xmmword [rcx - 0x20]
vmovdqu xmmword [rdx + 0xe0], xmm0
vmovdqu xmm0, xmmword [rdx + 0xf0]
vpxor xmm1, xmm0, xmmword [rax + 0xd0]
vmovdqu xmmword [rax + 0xd0], xmm1
vpxor xmm0, xmm0, xmmword [rcx - 0x10]
vmovdqu xmmword [rdx + 0xf0], xmm0
vmovdqu xmm0, xmmword [rdx + 0x80]
vpxor xmm1, xmm0, xmmword [rax + 0xe0]
vmovdqu xmmword [rax + 0xe0], xmm1
vpxor xmm0, xmm0, xmmword [rcx - 0x80]
vmovdqu xmm3, xmmword [rsp + 0x120]
vmovdqu xmm5, xmmword [rsp + 0x110]
vmovdqu xmm6, xmmword [rsp + 0x60]
vmovdqu xmmword [rdx + 0x80], xmm0
vmovdqu xmm0, xmmword [rdx + 0x90]
vpxor xmm1, xmm0, xmmword [rax + 0xf0]
vmovdqu xmm7, xmmword [rsp + 0x50]
vpxor xmm9, xmm12, xmmword [rsp + 0x20]
vmovdqu xmm13, xmm5
vmovdqu xmmword [rax + 0xf0], xmm1
vpxor xmm0, xmm0, xmmword [rcx - 0x70]
vpxor xmm8, xmm12, xmmword [rsp + 0x70]
mov eax, r10d
vpxor xmm10, xmm12, xmmword [rsp + 0x90]
vpor xmm9, xmm9, xmm14
xor eax, 0x10
vmovdqu xmmword [rdx + 0x90], xmm0
vpxor xmm0, xmm12, xmm14
vpor xmm8, xmm8, xmm6
vpxor xmm9, xmm9, xmm3
vpor xmm0, xmm0, xmm3
vpor xmm10, xmm10, xmm15
vpxor xmm8, xmm8, xmm7
mov rdx, rax
vpxor xmm4, xmm0, xmm5
vpxor xmm0, xmm12, xmm6
shl rdx, 7
vpxor xmm10, xmm10, xmmword [rsp + 0x80]
vmovdqu xmmword [rsp + 0x100], xmm4
vpor xmm0, xmm0, xmm7
vpxor xmm7, xmm12, xmm5
vmovdqu xmm4, xmmword [rsp + 0x40]
vpxor xmm5, xmm12, xmmword [rsp + 0xa0]
vpor xmm7, xmm7, xmm2
mov rax, rdx
vpxor xmm0, xmm0, xmm4
vpxor xmm7, xmm7, xmm11
vpxor xmm6, xmm12, xmm4
add rax, rbx
vpsrld xmm1, xmm0, 0x1f
vpslld xmm0, xmm0, 1
vpor xmm6, xmm6, xmmword [rsp + 0x30]
vpor xmm5, xmm5, xmmword [rsp + 0x90]
vpor xmm1, xmm0, xmm1
vpxor xmm0, xmm12, xmm2
vmovdqu xmmword [rsp + 0xd0], xmm1
vpor xmm0, xmm0, xmm11
vpxor xmm0, xmm0, xmmword [rsp + 0xa0]
vpxor xmm6, xmm6, xmmword [rsp + 0xc0]
vpxor xmm4, xmm12, xmmword [rsp + 0xb0]
vpor xmm4, xmm4, xmmword [rsp + 0x20]
vpxor xmm5, xmm5, xmm15
vpsrld xmm1, xmm0, 0x1d
vpslld xmm0, xmm0, 3
vpor xmm0, xmm0, xmm1
vpxor xmm4, xmm4, xmm14
vpxor xmm14, xmm12, xmm15
vmovdqu xmmword [rsp + 0xe0], xmm0
vpxor xmm0, xmm12, xmmword [rsp + 0x30]
vpor xmm0, xmm0, xmmword [rsp + 0xc0]
vpxor xmm0, xmm0, xmmword [rsp + 0xb0]
vpsrld xmm1, xmm0, 0x1a
vpslld xmm0, xmm0, 6
vpor xmm1, xmm0, xmm1
vpsrld xmm0, xmm10, 0x16
vmovdqu xmmword [rsp + 0xf0], xmm1
vpslld xmm10, xmm10, 0xa
vmovdqu xmm1, xmm3
vpxor xmm3, xmm12, xmmword [rsp + 0x80]
vpor xmm10, xmm10, xmm0
vpsrld xmm0, xmm9, 0x11
vpor xmm3, xmm3, xmmword [rsp + 0x70]
vpslld xmm9, xmm9, 0xf
vpxor xmm3, xmm3, xmmword [rsp + 0x60]
vpor xmm14, xmm14, xmmword [rsp + 0x80]
vpor xmm9, xmm9, xmm0
vpsrld xmm0, xmm8, 0xb
vpxor xmm14, xmm14, xmmword [rsp + 0x70]
vpslld xmm8, xmm8, 0x15
vpshufb xmm15, xmm14, xmmword [0x1402f50f0]
vpor xmm8, xmm8, xmm0
vmovdqu xmm14, xmmword [rsp + 0x100]
vpsrld xmm0, xmm7, 4
vpslld xmm7, xmm7, 0x1c
vpor xmm7, xmm7, xmm0
vpsrld xmm0, xmm6, 0x1c
vpslld xmm6, xmm6, 4
vpor xmm6, xmm6, xmm0
vpsrld xmm0, xmm5, 0x13
vpslld xmm5, xmm5, 0xd
vpor xmm5, xmm5, xmm0
vpsrld xmm0, xmm4, 9
vpslld xmm4, xmm4, 0x17
vpor xmm4, xmm4, xmm0
vpsrld xmm0, xmm3, 0x1e
vpslld xmm3, xmm3, 2
vpor xmm3, xmm3, xmm0
vpxor xmm0, xmm12, xmm1
vpxor xmm1, xmm12, xmmword [rsp + 0x50]
vpor xmm0, xmm0, xmm13
vpor xmm1, xmm1, xmmword [rsp + 0x40]
vpxor xmm1, xmm1, xmmword [rsp + 0x30]
vpxor xmm2, xmm0, xmm2
vpsrld xmm0, xmm2, 0x12
vpslld xmm2, xmm2, 0xe
vpor xmm2, xmm2, xmm0
vpsrld xmm0, xmm1, 5
vpslld xmm1, xmm1, 0x1b
vpor xmm1, xmm1, xmm0
vpxor xmm0, xmm12, xmm11
vpor xmm0, xmm0, xmmword [rsp + 0xa0]
vpxor xmm0, xmm0, xmmword [rsp + 0x90]
vmovdqu xmmword [rsp + 0x90], xmm15
vpxor xmm15, xmm14, xmmword [rsp + 0x130]
vmovdqu xmm14, xmmword [rsp + 0xd0]
vpsrld xmm13, xmm0, 0x17
vpslld xmm0, xmm0, 9
vpxor xmm11, xmm10, xmm14
vpor xmm0, xmm0, xmm13
vpxor xmm13, xmm12, xmmword [rsp + 0xc0]
vpor xmm13, xmm13, xmmword [rsp + 0xb0]
vpxor xmm11, xmm15, xmm11
vpxor xmm15, xmm9, xmmword [rcx - 0x80]
vmovdqu xmmword [rsp + 0x110], xmm11
vmovdqu xmm11, xmm14
vmovdqu xmm14, xmmword [rsp + 0xe0]
vpxor xmm13, xmm13, xmmword [rsp + 0x20]
vpshufb xmm13, xmm13, xmmword [0x1402f50e0]
vpxor xmm11, xmm11, xmm14
vpxor xmm15, xmm15, xmm11
vpxor xmm11, xmm14, xmmword [rsp + 0xf0]
vmovdqu xmmword [rsp + 0x120], xmm15
vpxor xmm15, xmm8, xmmword [rcx - 0x70]
vpxor xmm14, xmm15, xmm11
vpxor xmm15, xmm7, xmmword [rcx - 0x60]
vpxor xmm11, xmm10, xmmword [rsp + 0xf0]
vpxor xmm10, xmm10, xmm9
vpxor xmm9, xmm9, xmm8
vpxor xmm8, xmm8, xmm7
vpxor xmm15, xmm15, xmm11
vpxor xmm11, xmm6, xmmword [rcx - 0x50]
vpxor xmm7, xmm7, xmm6
vmovdqu xmmword [rsp + 0x20], xmm15
vpxor xmm6, xmm6, xmm5
vpxor xmm10, xmm11, xmm10
vmovdqu xmmword [rsp + 0xb0], xmm10
vpxor xmm10, xmm5, xmmword [rcx - 0x40]
vpxor xmm5, xmm5, xmm4
vpxor xmm9, xmm10, xmm9
vmovdqu xmmword [rsp + 0xc0], xmm9
vpxor xmm9, xmm4, xmmword [rcx - 0x30]
vpxor xmm4, xmm4, xmm3
vpxor xmm8, xmm9, xmm8
vmovdqu xmmword [rsp + 0x30], xmm8
vpxor xmm8, xmm3, xmmword [rcx - 0x20]
vpxor xmm3, xmm3, xmm2
vpxor xmm7, xmm8, xmm7
vmovdqu xmmword [rsp + 0x40], xmm7
vpxor xmm7, xmm2, xmmword [rcx - 0x10]
vpxor xmm2, xmm2, xmm1
vpxor xmm7, xmm7, xmm6
vpxor xmm6, xmm1, xmmword [rdx + rbx + 0x80]
vpxor xmm1, xmm1, xmm0
vmovdqu xmmword [rsp + 0x50], xmm7
vpxor xmm5, xmm6, xmm5
vmovdqu xmm6, xmmword [rsp + 0x90]
vmovdqu xmmword [rsp + 0x60], xmm5
vpxor xmm5, xmm0, xmmword [rax + 0x90]
vpxor xmm0, xmm0, xmmword [rsp + 0xd0]
vpxor xmm5, xmm5, xmm4
vpxor xmm4, xmm13, xmmword [rax + 0xa0]
vmovdqu xmmword [rsp + 0x70], xmm5
vpxor xmm7, xmm4, xmm3
vpxor xmm3, xmm6, xmmword [rax + 0xb0]
vmovdqu xmm4, xmmword [rsp + 0x100]
vmovdqu xmmword [rsp + 0x80], xmm7
vpxor xmm15, xmm3, xmm2
vpxor xmm2, xmm4, xmmword [rax + 0xc0]
vpxor xmm7, xmm2, xmm1
vpxor xmm1, xmm13, xmmword [rax + 0xd0]
vpxor xmm13, xmm13, xmm6
vmovdqu xmm2, xmmword [rsp + 0xe0]
vpxor xmm11, xmm2, xmmword [rax + 0xe0]
vmovdqu xmmword [rsp + 0x90], xmm7
vpxor xmm3, xmm1, xmm0
vpxor xmm0, xmm4, xmmword [rax + 0xf0]
vmovdqu xmm1, xmmword [rsp + 0xf0]
vmovdqu xmmword [rsp + 0xa0], xmm3
vpxor xmm11, xmm11, xmm13
vpxor xmm1, xmm1, xmm6
vpxor xmm2, xmm0, xmm1
sub r9, 1
jae 0x14016d7d0
vmovdqu xmm10, xmm14
vmovdqu xmm13, xmm15
vmovdqu xmm14, xmmword [rsp + 0xc0]
vmovdqu xmm15, xmmword [rsp + 0xb0]
vmovdqu xmm6, xmmword [rsp + 0x50]
mov rbp, rsi
vmovdqu xmm4, xmmword [rsp + 0x110]
mov dword [rbx + 0x1194], r8d
vmovdqu xmmword [rbx + 0x10a0], xmm10
vmovdqu xmmword [rbx + 0x1080], xmm4
vmovdqu xmm4, xmmword [rsp + 0x120]
vmovdqu xmmword [rbx + 0x1100], xmm6
vmovdqu xmm6, xmmword [rsp + 0x70]
vmovdqu xmmword [rbx + 0x1090], xmm4
vmovdqu xmm4, xmmword [rsp + 0x20]
vmovdqu xmmword [rbx + 0x1120], xmm6
vmovdqu xmm6, xmmword [rsp + 0x90]
vmovdqu xmmword [rbx + 0x10b0], xmm4
vmovdqu xmm4, xmmword [rsp + 0x30]
vmovdqu xmmword [rbx + 0x10c0], xmm15
vmovdqu xmmword [rbx + 0x10e0], xmm4
vmovdqu xmm4, xmmword [rsp + 0x40]
vmovdqu xmmword [rbx + 0x10d0], xmm14
vmovdqu xmmword [rbx + 0x10f0], xmm4
vmovdqu xmm4, xmmword [rsp + 0x60]
vmovdqu xmmword [rbx + 0x1140], xmm13
vmovdqu xmmword [rbx + 0x1110], xmm4
vmovdqu xmm4, xmmword [rsp + 0x80]
vmovdqu xmmword [rbx + 0x1150], xmm6
vmovdqu xmmword [rbx + 0x1130], xmm4
vmovdqu xmm4, xmmword [rsp + 0xa0]
vmovdqu xmmword [rbx + 0x1170], xmm11
vmovdqu xmmword [rbx + 0x1160], xmm4
vmovdqu xmmword [rbx + 0x1180], xmm2
and ebp, 0x1f
je 0x14016de96
sub rsi, rbp
mov r8d, ebp
xor eax, eax
xor edx, edx
shl rsi, 4
lea rcx, [rdi + rsi]
nop dword [rax]
vmovdqu xmm2, xmmword [rcx + rax]
add edx, 1
vmovdqu xmmword [rbx + rax], xmm2
add rax, 0x10
cmp edx, r8d
jl 0x14016de80
mov dword [rbx + 0x1190], ebp
vmovups xmm6, xmmword [rsp + 0x140]
vmovups xmm7, xmmword [rsp + 0x150]
vmovups xmm8, xmmword [rsp + 0x160]
vmovups xmm9, xmmword [rsp + 0x170]
vmovups xmm10, xmmword [rsp + 0x180]
vmovups xmm11, xmmword [rsp + 0x190]
vmovups xmm12, xmmword [rsp + 0x1a0]
vmovups xmm13, xmmword [rsp + 0x1b0]
vmovups xmm14, xmmword [rsp + 0x1c0]
vmovups xmm15, xmmword [rsp + 0x1d0]
add rsp, 0x1e8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov edx, 0x20
sub edx, eax
lea r8d, [rdx*4]
mov ebp, edx
lea r12, [rdi + r8]
test rbp, rbp
je 0x14016dfee
lea ecx, [rax*4]
mov rdx, rdi
add rcx, rbx
call sym.memcpy
mov rdx, rbx
mov rcx, rbx
call sym.panama_4way_push.constprop.0
xor eax, eax
mov dword [rbx + 0x1190], eax
sub rsi, rbp
mov rdi, r12
jmp 0x14016d69a
test r8, r8
je 0x14016dfe0
mov r12d, 0x20
jmp 0x14016dfa5
lea r13d, [rdx*4]
lea ecx, [rax*4]
mov rdx, rdi
sub rsi, rbp
add rcx, rbx
mov r8, r13
add rdi, r13
call sym.memcpy
mov rdx, rbx
mov rcx, rbx
call sym.panama_4way_push.constprop.0
test rsi, rsi
je 0x14016dfe7
xor eax, eax
mov edx, r12d
sub edx, eax
mov ebp, edx
cmp rsi, rbp
jae 0x14016df70
lea ebp, [rax + rsi]
lea ecx, [rax*4]
mov rdx, rdi
lea esi, [rsi*4]
add rcx, rbx
mov r8, rsi
call sym.memcpy
cmp ebp, 0x20
jne 0x14016de96
add rdi, rsi
xor esi, esi
jmp 0x14016df93
mov ebp, eax
jmp 0x14016de96
xor ebp, ebp
jmp 0x14016de96
mov eax, 0x20
jmp 0x14016df4d