Function at 0x14016e980
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x368
vmovups xmmword [rsp + 0x2c0], xmm6
vmovups xmmword [rsp + 0x2d0], xmm7
vmovups xmmword [rsp + 0x2e0], xmm8
vmovups xmmword [rsp + 0x2f0], xmm9
vmovups xmmword [rsp + 0x300], xmm10
vmovups xmmword [rsp + 0x310], xmm11
vmovups xmmword [rsp + 0x320], xmm12
vmovups xmmword [rsp + 0x330], xmm13
vmovups xmmword [rsp + 0x340], xmm14
vmovups xmmword [rsp + 0x350], xmm15
mov eax, dword [rcx + 0x2320]
mov rbx, rcx
mov rdi, rdx
mov rsi, r8
cmp r8, 0x3f
jbe 0x14016f370
test eax, eax
jne 0x14016f318
vmovdqu ymm7, ymmword [rbx + 0x2100]
vmovdqu ymm5, ymmword [rbx + 0x22a0]
mov rax, rsi
shr rax, 5
vmovdqu ymm10, ymmword [rbx + 0x2140]
vmovdqu ymm15, ymmword [rbx + 0x2180]
vmovdqu ymmword [rsp + 0x200], ymm7
vmovdqu ymm7, ymmword [rbx + 0x2120]
vmovdqu ymm14, ymmword [rbx + 0x21a0]
lea r9, [rax - 1]
vmovdqu ymm13, ymmword [rbx + 0x2280]
vmovdqu ymm11, ymmword [rbx + 0x22e0]
vmovdqu ymmword [rsp + 0x100], ymm5
vmovdqu ymmword [rsp + 0x220], ymm7
vmovdqu ymm7, ymmword [rbx + 0x2160]
vmovdqu ymm2, ymmword [rbx + 0x2300]
mov r8d, dword [rbx + 0x2324]
vmovdqu ymmword [rsp + 0x20], ymm7
vmovdqu ymm7, ymmword [rbx + 0x21c0]
vmovdqu ymmword [rsp + 0x40], ymm7
vmovdqu ymm7, ymmword [rbx + 0x21e0]
vmovdqu ymmword [rsp + 0x60], ymm7
vmovdqu ymm7, ymmword [rbx + 0x2200]
vmovdqu ymmword [rsp + 0x80], ymm7
vmovdqu ymm7, ymmword [rbx + 0x2220]
vmovdqu ymmword [rsp + 0xa0], ymm7
vmovdqu ymm7, ymmword [rbx + 0x2240]
vmovdqu ymmword [rsp + 0xc0], ymm7
vmovdqu ymm7, ymmword [rbx + 0x2260]
vmovdqu ymmword [rsp + 0xe0], ymm7
vmovdqu ymm7, ymmword [rbx + 0x22c0]
vmovdqu ymmword [rsp + 0x120], ymm7
je 0x14016f182
vmovdqu xmm0, xmmword [0x1402f50e0]
mov rcx, rdi
movabs rax, 0x100000001
vmovdqu ymmword [rsp + 0x140], ymm15
vmovdqu ymmword [rsp + 0x240], ymm10
vmovdqu ymm15, ymm13
vmovdqu ymmword [rsp + 0x160], ymm14
vpermq ymm7, ymm0, 0x44
vmovdqu xmm0, xmmword [0x1402f50f0]
vmovdqu ymmword [rsp + 0x260], ymm7
vmovq xmm7, rax
vpermq ymm5, ymm0, 0x44
vpbroadcastq ymm6, xmm7
vmovdqu ymmword [rsp + 0x280], ymm5
vmovdqu ymmword [rsp + 0x2a0], ymm6
vpcmpeqq ymm12, ymm12, ymm12
nop word [rax + rax]
lea eax, [r8 - 8]
mov r10d, r8d
lea r8d, [r8 - 1]
add rcx, 0x100
and r8d, 0x1f
and eax, 0x1f
mov edx, r8d
shl rax, 8
shl rdx, 8
add rax, rbx
add rdx, rbx
vmovdqu ymm0, ymmword [rdx + 0x140]
vpxor ymm1, ymm0, ymmword [rax + 0x100]
vmovdqu ymmword [rax + 0x100], ymm1
vpxor ymm0, ymm0, ymmword [rcx - 0xc0]
vmovdqu ymmword [rdx + 0x140], ymm0
vmovdqu ymm0, ymmword [rdx + 0x160]
vpxor ymm1, ymm0, ymmword [rax + 0x120]
vmovdqu ymmword [rax + 0x120], ymm1
vpxor ymm0, ymm0, ymmword [rcx - 0xa0]
vmovdqu ymmword [rdx + 0x160], ymm0
vmovdqu ymm0, ymmword [rdx + 0x180]
vpxor ymm1, ymm0, ymmword [rax + 0x140]
vmovdqu ymmword [rax + 0x140], ymm1
vpxor ymm0, ymm0, ymmword [rcx - 0x80]
vmovdqu ymmword [rdx + 0x180], ymm0
vmovdqu ymm0, ymmword [rdx + 0x1a0]
vpxor ymm1, ymm0, ymmword [rax + 0x160]
vmovdqu ymmword [rax + 0x160], ymm1
vpxor ymm0, ymm0, ymmword [rcx - 0x60]
vmovdqu ymmword [rdx + 0x1a0], ymm0
vmovdqu ymm0, ymmword [rdx + 0x1c0]
vpxor ymm1, ymm0, ymmword [rax + 0x180]
vmovdqu ymmword [rax + 0x180], ymm1
vpxor ymm0, ymm0, ymmword [rcx - 0x40]
vmovdqu ymmword [rdx + 0x1c0], ymm0
vmovdqu ymm0, ymmword [rdx + 0x1e0]
vpxor ymm1, ymm0, ymmword [rax + 0x1a0]
vmovdqu ymmword [rax + 0x1a0], ymm1
vpxor ymm0, ymm0, ymmword [rcx - 0x20]
vmovdqu ymmword [rdx + 0x1e0], ymm0
vmovdqu ymm0, ymmword [rdx + 0x100]
vpxor ymm1, ymm0, ymmword [rax + 0x1c0]
vmovdqu ymmword [rax + 0x1c0], ymm1
vpxor ymm0, ymm0, ymmword [rcx - 0x100]
vmovdqu ymm3, ymmword [rsp + 0x240]
vmovdqu ymm4, ymmword [rsp + 0x220]
vpxor ymm10, ymm12, ymmword [rsp + 0x20]
vmovdqu ymmword [rdx + 0x100], ymm0
vmovdqu ymm0, ymmword [rdx + 0x120]
vpxor ymm1, ymm0, ymmword [rax + 0x1e0]
vmovdqu ymm6, ymmword [rsp + 0x200]
vpor ymm10, ymm10, ymm3
vmovdqu ymm7, ymmword [rsp + 0xa0]
vmovdqu ymmword [rax + 0x1e0], ymm1
vpxor ymm10, ymm10, ymm4
mov eax, r10d
vpxor ymm0, ymm0, ymmword [rcx - 0xe0]
vmovdqu ymm8, ymmword [rsp + 0x80]
vmovdqu ymm14, ymm6
xor eax, 0x10
vpxor ymm13, ymm12, ymmword [rsp + 0x100]
vmovdqu ymmword [rdx + 0x120], ymm0
vpxor ymm0, ymm12, ymm3
mov rdx, rax
vpxor ymm9, ymm12, ymmword [rsp + 0xc0]
vpor ymm0, ymm0, ymm4
vpor ymm13, ymm13, ymm15
shl rdx, 8
vpxor ymm13, ymm13, ymmword [rsp + 0xe0]
vpxor ymm5, ymm0, ymm6
vpxor ymm0, ymm12, ymm7
vpor ymm9, ymm9, ymm7
mov rax, rdx
vmovdqu ymmword [rsp + 0x1e0], ymm5
vmovdqu ymm5, ymmword [rsp + 0x60]
vpor ymm0, ymm0, ymm8
add rax, rbx
vpxor ymm9, ymm9, ymm8
vpxor ymm8, ymm12, ymm6
vpxor ymm6, ymm12, ymmword [rsp + 0x120]
vpxor ymm0, ymm0, ymm5
vpor ymm8, ymm8, ymm2
vpor ymm6, ymm6, ymmword [rsp + 0x100]
vpsrld ymm1, ymm0, 0x1f
vpslld ymm0, ymm0, 1
vpxor ymm8, ymm8, ymm11
vpor ymm1, ymm0, ymm1
vpxor ymm0, ymm12, ymm2
vpxor ymm7, ymm12, ymm5
vpor ymm0, ymm0, ymm11
vpor ymm7, ymm7, ymmword [rsp + 0x40]
vpxor ymm0, ymm0, ymmword [rsp + 0x120]
vmovdqu ymmword [rsp + 0x180], ymm1
vpxor ymm7, ymm7, ymmword [rsp + 0x160]
vpxor ymm6, ymm6, ymm15
vpxor ymm15, ymm12, ymm15
vpxor ymm5, ymm12, ymmword [rsp + 0x140]
vpsrld ymm1, ymm0, 0x1d
vpor ymm5, ymm5, ymmword [rsp + 0x20]
vpslld ymm0, ymm0, 3
vpor ymm0, ymm0, ymm1
vpxor ymm5, ymm5, ymm3
vmovdqu ymmword [rsp + 0x1a0], ymm0
vpxor ymm0, ymm12, ymmword [rsp + 0x40]
vpor ymm0, ymm0, ymmword [rsp + 0x160]
vpxor ymm0, ymm0, ymmword [rsp + 0x140]
vpsrld ymm1, ymm0, 0x1a
vpslld ymm0, ymm0, 6
vpor ymm1, ymm0, ymm1
vpsrld ymm0, ymm13, 0x16
vmovdqu ymmword [rsp + 0x1c0], ymm1
vpslld ymm13, ymm13, 0xa
vmovdqu ymm1, ymm4
vpxor ymm4, ymm12, ymmword [rsp + 0xe0]
vpor ymm13, ymm13, ymm0
vpsrld ymm0, ymm10, 0x11
vpor ymm4, ymm4, ymmword [rsp + 0xc0]
vpslld ymm10, ymm10, 0xf
vpxor ymm3, ymm12, ymm1
vpxor ymm4, ymm4, ymmword [rsp + 0xa0]
vpor ymm10, ymm10, ymm0
vpsrld ymm0, ymm9, 0xb
vpor ymm3, ymm3, ymm14
vpslld ymm9, ymm9, 0x15
vpxor ymm3, ymm3, ymm2
vpxor ymm1, ymm12, ymmword [rsp + 0x80]
vpor ymm9, ymm9, ymm0
vpsrld ymm0, ymm8, 4
vpor ymm1, ymm1, ymmword [rsp + 0x60]
vpslld ymm8, ymm8, 0x1c
vpxor ymm1, ymm1, ymmword [rsp + 0x40]
vpor ymm15, ymm15, ymmword [rsp + 0xe0]
vpxor ymm15, ymm15, ymmword [rsp + 0xc0]
vpor ymm8, ymm8, ymm0
vpxor ymm14, ymm12, ymmword [rsp + 0x160]
vpor ymm14, ymm14, ymmword [rsp + 0x140]
vpsrld ymm0, ymm7, 0x1c
vpxor ymm14, ymm14, ymmword [rsp + 0x20]
vpslld ymm7, ymm7, 4
vpshufb ymm14, ymm14, ymmword [rsp + 0x260]
vpor ymm7, ymm7, ymm0
vpsrld ymm0, ymm6, 0x13
vpslld ymm6, ymm6, 0xd
vpor ymm6, ymm6, ymm0
vpsrld ymm0, ymm5, 9
vpslld ymm5, ymm5, 0x17
vpor ymm5, ymm5, ymm0
vpsrld ymm0, ymm4, 0x1e
vpslld ymm4, ymm4, 2
vpor ymm4, ymm4, ymm0
vpsrld ymm0, ymm3, 0x12
vpslld ymm3, ymm3, 0xe
vpor ymm3, ymm3, ymm0
vpsrld ymm0, ymm1, 5
vpslld ymm1, ymm1, 0x1b
vpor ymm1, ymm1, ymm0
vpxor ymm0, ymm12, ymm11
vpor ymm0, ymm0, ymmword [rsp + 0x120]
vpxor ymm0, ymm0, ymmword [rsp + 0x100]
vpshufb ymm11, ymm15, ymmword [rsp + 0x280]
vmovdqu ymm15, ymmword [rsp + 0x180]
vmovdqu ymmword [rsp + 0x100], ymm11
vpsrld ymm2, ymm0, 0x17
vpslld ymm0, ymm0, 9
vpor ymm0, ymm0, ymm2
vmovdqu ymm2, ymmword [rsp + 0x1e0]
vpxor ymm11, ymm2, ymmword [rsp + 0x2a0]
vpxor ymm2, ymm13, ymm15
vpxor ymm11, ymm11, ymm2
vpxor ymm2, ymm15, ymmword [rsp + 0x1a0]
vmovdqu ymm15, ymmword [rsp + 0x1c0]
vmovdqu ymmword [rsp + 0x200], ymm11
vpxor ymm11, ymm10, ymmword [rcx - 0x100]
vpxor ymm11, ymm11, ymm2
vmovdqu ymm2, ymmword [rsp + 0x1a0]
vmovdqu ymmword [rsp + 0x220], ymm11
vpxor ymm11, ymm9, ymmword [rcx - 0xe0]
vpxor ymm2, ymm2, ymm15
vpxor ymm11, ymm11, ymm2
vpxor ymm2, ymm13, ymm15
vpxor ymm13, ymm13, ymm10
vmovdqu ymmword [rsp + 0x240], ymm11
vpxor ymm10, ymm10, ymm9
vpxor ymm11, ymm8, ymmword [rcx - 0xc0]
vpxor ymm9, ymm9, ymm8
vpxor ymm8, ymm8, ymm7
vpxor ymm11, ymm11, ymm2
vpxor ymm2, ymm7, ymmword [rcx - 0xa0]
vpxor ymm7, ymm7, ymm6
vmovdqu ymmword [rsp + 0x20], ymm11
vpxor ymm13, ymm2, ymm13
vpxor ymm2, ymm6, ymmword [rcx - 0x80]
vpxor ymm6, ymm6, ymm5
vmovdqu ymmword [rsp + 0x140], ymm13
vpxor ymm10, ymm2, ymm10
vmovdqu ymmword [rsp + 0x160], ymm10
vpxor ymm2, ymm5, ymmword [rcx - 0x60]
vpxor ymm5, ymm5, ymm4
vpxor ymm9, ymm2, ymm9
vpxor ymm2, ymm4, ymmword [rcx - 0x40]
vpxor ymm4, ymm4, ymm3
vmovdqu ymmword [rsp + 0x40], ymm9
vpxor ymm13, ymm2, ymm8
vpxor ymm2, ymm3, ymmword [rcx - 0x20]
vpxor ymm3, ymm3, ymm1
vmovdqu ymmword [rsp + 0x60], ymm13
vpxor ymm9, ymm2, ymm7
vpxor ymm2, ymm1, ymmword [rdx + rbx + 0x100]
vpxor ymm1, ymm1, ymm0
vmovdqu ymm7, ymmword [rsp + 0x1c0]
vmovdqu ymmword [rsp + 0x80], ymm9
vpxor ymm10, ymm2, ymm6
vpxor ymm2, ymm0, ymmword [rax + 0x120]
vpxor ymm0, ymm0, ymmword [rsp + 0x180]
vmovdqu ymmword [rsp + 0xa0], ymm10
vpxor ymm13, ymm2, ymm5
vpxor ymm2, ymm14, ymmword [rax + 0x140]
vmovdqu ymm5, ymmword [rsp + 0x1e0]
vmovdqu ymmword [rsp + 0xc0], ymm13
vpxor ymm8, ymm2, ymm4
vmovdqu ymm4, ymmword [rsp + 0x100]
vpxor ymm2, ymm4, ymmword [rax + 0x160]
vmovdqu ymmword [rsp + 0xe0], ymm8
vpxor ymm15, ymm2, ymm3
vpxor ymm2, ymm5, ymmword [rax + 0x180]
vpxor ymm3, ymm2, ymm1
vpxor ymm1, ymm14, ymmword [rax + 0x1a0]
vpxor ymm14, ymm14, ymm4
vmovdqu ymm2, ymmword [rsp + 0x1a0]
vpxor ymm11, ymm2, ymmword [rax + 0x1c0]
vmovdqu ymmword [rsp + 0x100], ymm3
vpxor ymm6, ymm1, ymm0
vpxor ymm0, ymm5, ymmword [rax + 0x1e0]
vpxor ymm1, ymm7, ymm4
vmovdqu ymmword [rsp + 0x120], ymm6
vpxor ymm11, ymm11, ymm14
vpxor ymm2, ymm0, ymm1
sub r9, 1
jae 0x14016eb80
vmovdqu ymm10, ymmword [rsp + 0x240]
vmovdqu ymm13, ymm15
vmovdqu ymm14, ymmword [rsp + 0x160]
vmovdqu ymm15, ymmword [rsp + 0x140]
vmovdqu ymm5, ymmword [rsp + 0x200]
mov rbp, rsi
vmovdqu ymm7, ymmword [rsp + 0x220]
mov dword [rbx + 0x2324], r8d
vmovdqu ymm6, ymmword [rsp + 0xc0]
vmovdqu ymmword [rbx + 0x2140], ymm10
vmovdqu ymmword [rbx + 0x2100], ymm5
vmovdqu ymm5, ymmword [rsp + 0x20]
vmovdqu ymmword [rbx + 0x2120], ymm7
vmovdqu ymm7, ymmword [rsp + 0x40]
vmovdqu ymmword [rbx + 0x2160], ymm5
vmovdqu ymm5, ymmword [rsp + 0x60]
vmovdqu ymmword [rbx + 0x21c0], ymm7
vmovdqu ymm7, ymmword [rsp + 0x80]
vmovdqu ymmword [rbx + 0x21e0], ymm5
vmovdqu ymm5, ymmword [rsp + 0xa0]
vmovdqu ymmword [rbx + 0x2200], ymm7
vmovdqu ymm7, ymmword [rsp + 0xe0]
vmovdqu ymmword [rbx + 0x2220], ymm5
vmovdqu ymm5, ymmword [rsp + 0x100]
vmovdqu ymmword [rbx + 0x2240], ymm6
vmovdqu ymm6, ymmword [rsp + 0x120]
vmovdqu ymmword [rbx + 0x2180], ymm15
vmovdqu ymmword [rbx + 0x21a0], ymm14
vmovdqu ymmword [rbx + 0x2260], ymm7
vmovdqu ymmword [rbx + 0x2280], ymm13
vmovdqu ymmword [rbx + 0x22a0], ymm5
vmovdqu ymmword [rbx + 0x22c0], ymm6
vmovdqu ymmword [rbx + 0x22e0], ymm11
vmovdqu ymmword [rbx + 0x2300], ymm2
and ebp, 0x1f
je 0x14016f29e
sub rsi, rbp
mov r8d, ebp
xor eax, eax
xor edx, edx
shl rsi, 5
lea rcx, [rdi + rsi]
nop dword [rax]
vmovdqu ymm7, ymmword [rcx + rax]
add edx, 1
vmovdqu ymmword [rbx + rax], ymm7
add rax, 0x20
cmp edx, r8d
jl 0x14016f288
vzeroupper
mov dword [rbx + 0x2320], ebp
vmovups xmm6, xmmword [rsp + 0x2c0]
vmovups xmm7, xmmword [rsp + 0x2d0]
vmovups xmm8, xmmword [rsp + 0x2e0]
vmovups xmm9, xmmword [rsp + 0x2f0]
vmovups xmm10, xmmword [rsp + 0x300]
vmovups xmm11, xmmword [rsp + 0x310]
vmovups xmm12, xmmword [rsp + 0x320]
vmovups xmm13, xmmword [rsp + 0x330]
vmovups xmm14, xmmword [rsp + 0x340]
vmovups xmm15, xmmword [rsp + 0x350]
add rsp, 0x368
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov edx, 0x20
sub edx, eax
lea r8d, [rdx*8]
mov ebp, edx
lea r12, [rdi + r8]
test rbp, rbp
je 0x14016f3fe
lea ecx, [rax*8]
mov rdx, rdi
add rcx, rbx
call sym.memcpy
mov rdx, rbx
mov rcx, rbx
call sym.panama_8way_push.constprop.0
xor eax, eax
mov dword [rbx + 0x2320], eax
sub rsi, rbp
mov rdi, r12
jmp 0x14016ea0a
test r8, r8
je 0x14016f3f0
mov r12d, 0x20
jmp 0x14016f3b5
lea r13d, [rdx*8]
lea ecx, [rax*8]
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_8way_push.constprop.0
test rsi, rsi
je 0x14016f3f7
xor eax, eax
mov edx, r12d
sub edx, eax
mov ebp, edx
cmp rsi, rbp
jae 0x14016f380
lea ebp, [rax + rsi]
lea ecx, [rax*8]
mov rdx, rdi
lea esi, [rsi*8]
add rcx, rbx
mov r8, rsi
call sym.memcpy
cmp ebp, 0x20
jne 0x14016f2a1
add rdi, rsi
xor esi, esi
jmp 0x14016f3a3
mov ebp, eax
jmp 0x14016f2a1
xor ebp, ebp
jmp 0x14016f2a1
mov eax, 0x20
jmp 0x14016f355