Function at 0x1400f6910
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
mov rax, qword [0x144bca010]
lea rdi, [0x144bc9920]
xor ebx, ebx
lea rsi, [0x144bc99a0]
lea r10, [0x144bc9720]
vmovq xmm5, rdi
vmovq xmm3, rsi
vmovq xmm2, r10
mov r15, r8
mov r14, rcx
mov r8, qword [rdx + 0x148]
xor ecx, ecx
and r8, qword [rdx + 0x130]
lea r11, [rsp + 0x40]
mov qword [rsp + 0x38], rax
mov r13, rdx
tzcnt rcx, r8
mov qword [rsp + 0x10], r11
lea rax, [rsp + 0x38]
lea r8, [rsp + 0xd0]
imul r9, rcx, 0x3100
mov qword [rsp + 0x28], rcx
lea rbp, [rcx + 0x40]
vmovq xmm4, r8
mov qword [rsp + 8], 0
imul r12, rcx, 0x620
vmovq xmm29, rbp
lea rdx, [r15 + r9]
vmovq xmm28, r9
movsxd r11, dword [rax]
vmovq rdi, xmm5
mov qword [rsp + 0x20], rax
mov rcx, r11
lea r9, [r11 + r12 + 0x610]
mov rsi, qword [r13 + r11*8 + 0x140]
mov r11, rbx
shl ecx, 3
mov rbp, qword [r15 + r9*8 + 0x20]
vmovq r9, xmm29
movsxd r10, ecx
xor ecx, ecx
lea r8, [rdi + r10*4]
mov rdi, rdx
vmovq xmm1, r8
jmp 0x1400f6a16
add rcx, 1
cmp rcx, 6
je 0x1400f6ab7
mov rax, qword [rdi + rcx*8 + 0x30b8]
mov r10, qword [r13 + rcx*8 + 0x108]
and rax, rbp
and r10, rsi
andn rbx, r10, rax
andn rdx, rax, r10
andn r10, r10, rax
jne 0x1400f6ed6
test rdx, rdx
je 0x1400f6a08
mov r8, qword [rsp + 0x10]
mov qword [rsp + 0x18], rdx
vmovq r10, xmm3
vmovq rbx, xmm1
vmovq rax, xmm2
vmovd xmm0, dword [r10 + r9*4]
mov r10, rdx
mov eax, dword [rax + r9*4]
add eax, dword [rbx + rcx*4 + 0x44]
lea rbx, [r8 + r11*4]
xor r8d, r8d
vmovd edx, xmm0
add rbx, 4
tzcnt r8, r10
xor r8d, edx
add r8d, eax
mov dword [rbx - 4], r8d
blsr r10, r10
jne 0x1400f6a74
mov rax, qword [rsp + 0x18]
add rcx, 1
popcnt rax, rax
sub eax, 1
cdqe
lea r11, [r11 + rax + 1]
cmp rcx, 6
jne 0x1400f6a16
mov rax, qword [rsp + 0x20]
mov rbx, r11
mov rdx, rdi
add rax, 4
cmp qword [rsp + 0x10], rax
jne 0x1400f69bf
mov rbp, qword [rsp + 8]
mov rax, qword [r13 + 0x350]
mov qword [rsp + 0x18], rbx
mov r12d, ebx
mov rsi, qword [rsp + 0x28]
mov r11, qword [rsp + 0x10]
vmovq r9, xmm28
cmp rbp, rbx
mov rdi, rbp
mov byte [rax + 0x3101], 1
lea rcx, [rax + 0x18c0]
cmova rdi, rbx
mov qword [rsp + 0x10], rsi
mov rbx, r11
xor r8d, r8d
vmovq xmm26, rax
mov r11d, edi
nop dword [rax]
vmovdqu64 zmm30, zmmword [rdx + 0x1880]
xor r10d, r10d
vmovdqu64 zmm31, zmmword [rdx + 0x18c0]
vmovdqu64 zmm28, zmmword [rdx + 0x1900]
vmovdqu64 zmm29, zmmword [rdx + 0x1940]
vmovdqu64 zmm27, zmmword [rdx + 0x1980]
vmovdqu64 zmm20, zmmword [rdx + 0x19c0]
vmovdqu64 zmm19, zmmword [rdx + 0x1a00]
vmovdqu64 zmm18, zmmword [rdx + 0x1a40]
vmovdqu64 zmm17, zmmword [rdx + 0x1a80]
vmovdqu64 zmm16, zmmword [rdx + 0x1ac0]
vmovdqu64 zmm5, zmmword [rdx + 0x1b00]
vmovdqu64 zmm4, zmmword [rdx + 0x1b40]
vmovdqu64 zmm3, zmmword [rdx + 0x1b80]
vmovdqu64 zmm2, zmmword [rdx + 0x1bc0]
vmovdqu64 zmm1, zmmword [rdx + 0x1c00]
vmovdqu64 zmm0, zmmword [rdx + 0x1c40]
test r11d, r11d
jle 0x1400f6cc9
xor edi, edi
lea rax, [rsp + 0xd0]
mov r10d, dword [rax + rdi*4]
lea esi, [r10 + r10*2]
lea r10d, [r8 + rsi*2]
mov esi, dword [rbx + rdi*4]
add rdi, 1
shl r10d, 9
lea esi, [rsi + rsi*2]
lea r10, [r14 + r10*2 + 0x1800]
lea esi, [r8 + rsi*2]
shl esi, 9
lea rsi, [r14 + rsi*2 + 0x1800]
vpaddw zmm25, zmm30, zmmword [rsi]
vpsubw zmm30, zmm25, zmmword [r10]
vpaddw zmm24, zmm31, zmmword [rsi + 0x40]
vpaddw zmm23, zmm28, zmmword [rsi + 0x80]
vpaddw zmm22, zmm29, zmmword [rsi + 0xc0]
vpaddw zmm21, zmm27, zmmword [rsi + 0x100]
vpaddw zmm20, zmm20, zmmword [rsi + 0x140]
vpaddw zmm19, zmm19, zmmword [rsi + 0x180]
vpaddw zmm18, zmm18, zmmword [rsi + 0x1c0]
vpaddw zmm17, zmm17, zmmword [rsi + 0x200]
vpaddw zmm16, zmm16, zmmword [rsi + 0x240]
vpaddw zmm5, zmm5, zmmword [rsi + 0x280]
vpaddw zmm4, zmm4, zmmword [rsi + 0x2c0]
vpaddw zmm3, zmm3, zmmword [rsi + 0x300]
vpaddw zmm2, zmm2, zmmword [rsi + 0x340]
vpaddw zmm1, zmm1, zmmword [rsi + 0x380]
vpsubw zmm31, zmm24, zmmword [r10 + 0x40]
vpsubw zmm28, zmm23, zmmword [r10 + 0x80]
vpsubw zmm29, zmm22, zmmword [r10 + 0xc0]
vpsubw zmm27, zmm21, zmmword [r10 + 0x100]
vpsubw zmm20, zmm20, zmmword [r10 + 0x140]
vpsubw zmm19, zmm19, zmmword [r10 + 0x180]
vpsubw zmm18, zmm18, zmmword [r10 + 0x1c0]
vpsubw zmm17, zmm17, zmmword [r10 + 0x200]
vpsubw zmm16, zmm16, zmmword [r10 + 0x240]
vpsubw zmm5, zmm5, zmmword [r10 + 0x280]
vpsubw zmm4, zmm4, zmmword [r10 + 0x2c0]
vpsubw zmm3, zmm3, zmmword [r10 + 0x300]
vpsubw zmm2, zmm2, zmmword [r10 + 0x340]
vpsubw zmm1, zmm1, zmmword [r10 + 0x380]
vpaddw zmm0, zmm0, zmmword [rsi + 0x3c0]
vpsubw zmm0, zmm0, zmmword [r10 + 0x3c0]
cmp r11d, edi
jg 0x1400f6bae
mov r10d, r11d
cmp r10d, ebp
jl 0x1400f6fff
cmp r10d, r12d
jl 0x1400f6f65
add r8d, 1
vmovdqu64 zmmword [rdx + 0x1880], zmm30
add rcx, 0x400
add rdx, 0x400
vmovdqu64 zmmword [rdx + 0x14c0], zmm31
vmovdqu64 zmmword [rdx + 0x1500], zmm28
vmovdqu64 zmmword [rdx + 0x1540], zmm29
vmovdqu64 zmmword [rdx + 0x1580], zmm27
vmovdqu64 zmmword [rdx + 0x15c0], zmm20
vmovdqu64 zmmword [rdx + 0x1600], zmm19
vmovdqu64 zmmword [rdx + 0x1640], zmm18
vmovdqu64 zmmword [rdx + 0x1680], zmm17
vmovdqu64 zmmword [rdx + 0x16c0], zmm16
vmovdqu64 zmmword [rdx + 0x1700], zmm5
vmovdqu64 zmmword [rdx + 0x1740], zmm4
vmovdqu64 zmmword [rdx + 0x1780], zmm3
vmovdqu64 zmmword [rdx + 0x17c0], zmm2
vmovdqu64 zmmword [rdx + 0x1800], zmm1
vmovdqu64 zmmword [rdx + 0x1840], zmm0
vmovdqu64 zmmword [rcx - 0x400], zmm30
vmovdqu64 zmmword [rcx - 0x3c0], zmm31
vmovdqu64 zmmword [rcx - 0x380], zmm28
vmovdqu64 zmmword [rcx - 0x340], zmm29
vmovdqu64 zmmword [rcx - 0x300], zmm27
vmovdqu64 zmmword [rcx - 0x2c0], zmm20
vmovdqu64 zmmword [rcx - 0x280], zmm19
vmovdqu64 zmmword [rcx - 0x240], zmm18
vmovdqu64 zmmword [rcx - 0x200], zmm17
vmovdqu64 zmmword [rcx - 0x1c0], zmm16
vmovdqu64 zmmword [rcx - 0x180], zmm5
vmovdqu64 zmmword [rcx - 0x140], zmm4
vmovdqu64 zmmword [rcx - 0x100], zmm3
vmovdqu64 zmmword [rcx - 0xc0], zmm2
vmovdqu64 zmmword [rcx - 0x80], zmm1
vmovdqu64 zmmword [rcx - 0x40], zmm0
cmp r8d, 6
jne 0x1400f6b28
lea rdi, [r15 + r9 + 0x3080]
mov r11, rbx
mov r8, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x18]
vmovdqu ymm5, ymmword [rdi]
vmovq rsi, xmm26
test ebp, ebp
jle 0x1400f6e2e
mov rbp, qword [rsp + 8]
lea rdx, [rsp + 0xd0]
sub ebp, 1
lea r10, [rsp + rbp*4 + 0xd4]
mov ecx, dword [rdx]
add rdx, 4
lea eax, [rcx*8]
vpsubd ymm5, ymm5, ymmword [r14 + rax*4 + 0x8401800]
cmp r10, rdx
jne 0x1400f6e12
test r12d, r12d
jle 0x1400f6e59
lea r12d, [rbx - 1]
lea rbx, [rsp + r12*4 + 0x44]
mov edx, dword [r11]
add r11, 4
lea ebp, [rdx*8]
vpaddd ymm5, ymm5, ymmword [r14 + rbp*4 + 0x8401800]
cmp r11, rbx
jne 0x1400f6e3c
imul r14, r8, 0x3100
lea r8, [r15 + r9 + 0x30b8]
vmovdqu ymmword [rdi], ymm5
vmovdqu ymmword [rsi + 0x30e0], ymm5
mov r11, r8
vmovdqu xmm4, xmmword [r13 + 0x140]
lea rsi, [r13 + 0x110]
sub r11, rsi
vmovdqu xmmword [r15 + r14 + 0x30a0], xmm4
cmp r11, 0x10
jbe 0x1400f70a4
vmovdqu ymm3, ymmword [r13 + 0x108]
vmovdqu ymmword [r8], ymm3
vmovdqu xmm2, xmmword [r13 + 0x128]
vmovdqu xmmword [r15 + r9 + 0x30d8], xmm2
vzeroupper
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
vmovq r10, xmm1
vmovq rax, xmm2
vmovq r8, xmm3
mov qword [rsp + 0x18], rcx
mov eax, dword [rax + r9*4]
add eax, dword [r10 + rcx*4 + 0x44]
mov rcx, rdx
mov r10, qword [rsp + 8]
vmovd xmm0, dword [r8 + r9*4]
vmovq r8, xmm4
vmovd xmm27, eax
lea r8, [r8 + r10*4]
mov r10, rbx
mov rdx, r8
xor r8d, r8d
vmovd eax, xmm0
add rdx, 4
tzcnt r8, r10
xor r8d, eax
vmovd eax, xmm27
add r8d, eax
mov dword [rdx - 4], r8d
blsr r10, r10
jne 0x1400f6f16
xor eax, eax
mov rdx, rcx
mov rcx, qword [rsp + 0x18]
popcnt rax, rbx
mov rbx, qword [rsp + 8]
sub eax, 1
cdqe
lea r8, [rbx + rax + 1]
mov qword [rsp + 8], r8
jmp 0x1400f6a41
movsxd rdi, r10d
mov eax, dword [rbx + rdi*4]
add rdi, 1
lea esi, [rax + rax*2]
lea r10d, [r8 + rsi*2]
shl r10d, 9
lea rax, [r14 + r10*2 + 0x1800]
vpaddw zmm30, zmm30, zmmword [rax]
vpaddw zmm31, zmm31, zmmword [rax + 0x40]
vpaddw zmm28, zmm28, zmmword [rax + 0x80]
vpaddw zmm29, zmm29, zmmword [rax + 0xc0]
vpaddw zmm27, zmm27, zmmword [rax + 0x100]
vpaddw zmm20, zmm20, zmmword [rax + 0x140]
vpaddw zmm19, zmm19, zmmword [rax + 0x180]
vpaddw zmm18, zmm18, zmmword [rax + 0x1c0]
vpaddw zmm17, zmm17, zmmword [rax + 0x200]
vpaddw zmm16, zmm16, zmmword [rax + 0x240]
vpaddw zmm5, zmm5, zmmword [rax + 0x280]
vpaddw zmm4, zmm4, zmmword [rax + 0x2c0]
vpaddw zmm3, zmm3, zmmword [rax + 0x300]
vpaddw zmm2, zmm2, zmmword [rax + 0x340]
vpaddw zmm1, zmm1, zmmword [rax + 0x380]
vpaddw zmm0, zmm0, zmmword [rax + 0x3c0]
cmp r12d, edi
jle 0x1400f6cdb
jmp 0x1400f6f68
movsxd r10, r10d
lea rdi, [rsp + 0xd0]
mov eax, dword [rdi + r10*4]
add r10, 1
lea esi, [rax + rax*2]
lea eax, [r8 + rsi*2]
shl eax, 9
lea rsi, [r14 + rax*2 + 0x1800]
vpsubw zmm30, zmm30, zmmword [rsi]
vpsubw zmm31, zmm31, zmmword [rsi + 0x40]
vpsubw zmm28, zmm28, zmmword [rsi + 0x80]
vpsubw zmm29, zmm29, zmmword [rsi + 0xc0]
vpsubw zmm27, zmm27, zmmword [rsi + 0x100]
vpsubw zmm20, zmm20, zmmword [rsi + 0x140]
vpsubw zmm19, zmm19, zmmword [rsi + 0x180]
vpsubw zmm18, zmm18, zmmword [rsi + 0x1c0]
vpsubw zmm17, zmm17, zmmword [rsi + 0x200]
vpsubw zmm16, zmm16, zmmword [rsi + 0x240]
vpsubw zmm5, zmm5, zmmword [rsi + 0x280]
vpsubw zmm4, zmm4, zmmword [rsi + 0x2c0]
vpsubw zmm3, zmm3, zmmword [rsi + 0x300]
vpsubw zmm2, zmm2, zmmword [rsi + 0x340]
vpsubw zmm1, zmm1, zmmword [rsi + 0x380]
vpsubw zmm0, zmm0, zmmword [rsi + 0x3c0]
cmp ebp, r10d
jg 0x1400f700a
mov r10d, ebp
jmp 0x1400f6cd2
vmovdqu ymm1, ymmword [r13 + 0x108]
vmovdqu ymmword [r15 + r14 + 0x30b8], ymm1
vmovdqu xmm0, xmmword [r13 + 0x128]
vmovdqu xmmword [r15 + r14 + 0x30d8], xmm0
jmp 0x1400f6ebf