Function at 0x1400f6130
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
mov rax, qword [0x144bca010]
lea rdi, [0x144bc9920]
lea rsi, [0x144bc99a0]
vmovq xmm5, rdi
vmovq xmm3, rsi
mov r12, qword [rdx + 0x140]
mov rbx, qword [rdx + 0x130]
and rbx, r12
mov r14, rcx
xor ecx, ecx
lea r11, [rsp + 0x30]
mov r13, rdx
tzcnt rcx, rbx
mov r15, r8
mov qword [rsp + 8], 0
lea rdi, [rsp + 0xc0]
imul r9, rcx, 0x3100
mov qword [rsp + 0x1a0], r14
mov rbp, rcx
vmovq xmm4, rdi
imul r10, rcx, 0x620
lea rcx, [0x144bc9720]
mov qword [rsp + 0x28], rax
mov rdi, r11
lea rax, [rsp + 0x28]
vmovq xmm2, rcx
vmovq xmm27, rbp
lea rdx, [r8 + r9]
xor r8d, r8d
vmovq xmm16, r9
vmovq xmm1, r10
mov r11, rdx
mov rsi, r8
movsxd r14, dword [rax]
vmovq rbx, xmm5
vmovq rdx, xmm1
mov qword [rsp + 0x18], rax
mov ecx, 1
mov r9, r14
lea r8, [r14 + rdx + 0x300]
shl r9d, 3
mov r8, qword [r15 + r8*8 + 0x20]
movsxd r10, r9d
lea r14, [rbx + r10*4]
mov rbx, rdi
mov rdi, rbp
mov rbp, rsi
vmovq xmm18, r14
mov rsi, r11
vmovq r14, xmm27
jmp 0x1400f624e
add rcx, 1
cmp rcx, 7
je 0x1400f62ed
mov r9, qword [rsi + rcx*8 + 0x1830]
mov rdx, qword [r13 + rcx*8 + 0x100]
and r9, r8
and rdx, r12
andn r11, rdx, r9
andn rax, r9, rdx
andn rdx, rdx, r9
jne 0x1400f631b
test rax, rax
je 0x1400f6240
vmovq r11, xmm3
mov qword [rsp + 0x10], rax
vmovq r9, xmm18
mov rdx, rax
vmovq r10, xmm2
vmovd xmm0, dword [r11 + r14*4]
mov r10d, dword [r10 + r14*4]
add r10d, dword [r9 + rcx*4]
lea r9, [rbx + rbp*4]
xor r11d, r11d
vmovd eax, xmm0
add r9, 4
tzcnt r11, rdx
xor r11d, eax
add r11d, r10d
mov dword [r9 - 4], r11d
blsr rdx, rdx
jne 0x1400f62a8
mov r10, qword [rsp + 0x10]
xor eax, eax
add rcx, 1
popcnt rax, r10
sub eax, 1
cdqe
lea rbp, [rbp + rax + 1]
cmp rcx, 7
jne 0x1400f624e
mov rax, qword [rsp + 0x18]
mov r11, rsi
mov rsi, rbp
mov rbp, rdi
mov rdi, rbx
add rax, 4
cmp rbx, rax
je 0x1400f63a0
movsxd r9, dword [rax]
mov r12, qword [r13 + r9*8 + 0x140]
jmp 0x1400f61ee
vmovq r10, xmm3
vmovq r9, xmm2
mov qword [rsp + 0x10], rax
vmovd xmm17, dword [r10 + r14*4]
vmovq r10, xmm18
mov edx, dword [r9 + r14*4]
mov r9, qword [rsp + 8]
add edx, dword [r10 + rcx*4]
vmovd xmm0, edx
vmovq rdx, xmm4
lea r9, [rdx + r9*4]
mov rdx, r11
xor r10d, r10d
vmovd eax, xmm17
add r9, 4
tzcnt r10, rdx
xor r10d, eax
vmovd eax, xmm0
add r10d, eax
mov dword [r9 - 4], r10d
blsr rdx, rdx
jne 0x1400f6354
mov r9, qword [rsp + 8]
popcnt r11, r11
sub r11d, 1
mov rax, qword [rsp + 0x10]
movsxd r10, r11d
lea rdx, [r9 + r10 + 1]
mov qword [rsp + 8], rdx
jmp 0x1400f6279
mov rbx, rbp
mov rbp, qword [rsp + 8]
mov qword [rsp + 0x18], rsi
mov rdx, r11
mov r8, qword [r13 + 0x350]
mov qword [rsp + 0x10], rbx
mov r12d, esi
mov rbx, rdi
cmp rbp, rsi
mov rax, rbp
mov r14, qword [rsp + 0x1a0]
vmovq r9, xmm16
cmova rax, rsi
xor r10d, r10d
mov byte [r8 + 0x3100], 1
lea rcx, [r8 + 0xc0]
vmovq xmm26, r8
mov r8d, r10d
mov r11d, eax
nop dword [rax + rax]
vmovdqu64 zmm31, zmmword [rdx]
xor r10d, r10d
vmovdqu64 zmm27, zmmword [rdx + 0x40]
vmovdqu64 zmm23, zmmword [rdx + 0x80]
vmovdqu64 zmm22, zmmword [rdx + 0xc0]
vmovdqu64 zmm21, zmmword [rdx + 0x100]
vmovdqu64 zmm20, zmmword [rdx + 0x140]
vmovdqu64 zmm19, zmmword [rdx + 0x180]
vmovdqu64 zmm18, zmmword [rdx + 0x1c0]
vmovdqu64 zmm17, zmmword [rdx + 0x200]
vmovdqu64 zmm16, zmmword [rdx + 0x240]
vmovdqu64 zmm5, zmmword [rdx + 0x280]
vmovdqu64 zmm4, zmmword [rdx + 0x2c0]
vmovdqu64 zmm3, zmmword [rdx + 0x300]
vmovdqu64 zmm2, zmmword [rdx + 0x340]
vmovdqu64 zmm1, zmmword [rdx + 0x380]
vmovdqu64 zmm0, zmmword [rdx + 0x3c0]
test r11d, r11d
jle 0x1400f659e
xor edi, edi
lea rax, [rsp + 0xc0]
mov esi, dword [rax + rdi*4]
lea r10d, [rsi + rsi*2]
lea esi, [r8 + r10*2]
shl esi, 9
lea r10, [r14 + rsi*2 + 0x1800]
mov esi, dword [rbx + rdi*4]
add rdi, 1
lea esi, [rsi + rsi*2]
lea esi, [r8 + rsi*2]
shl esi, 9
lea rsi, [r14 + rsi*2 + 0x1800]
vpaddw zmm25, zmm31, zmmword [rsi]
vpsubw zmm31, zmm25, zmmword [r10]
vpaddw zmm24, zmm27, zmmword [rsi + 0x40]
vpaddw zmm23, zmm23, zmmword [rsi + 0x80]
vpaddw zmm22, zmm22, zmmword [rsi + 0xc0]
vpaddw zmm21, zmm21, zmmword [rsi + 0x100]
vpaddw zmm20, zmm20, zmmword [rsi + 0x140]
vpaddw zmm19, zmm19, zmmword [rsi + 0x180]
vpaddw zmm28, zmm18, zmmword [rsi + 0x1c0]
vpaddw zmm29, zmm17, zmmword [rsi + 0x200]
vpaddw zmm30, 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 zmm27, zmm24, zmmword [r10 + 0x40]
vpsubw zmm23, zmm23, zmmword [r10 + 0x80]
vpsubw zmm22, zmm22, zmmword [r10 + 0xc0]
vpsubw zmm21, zmm21, zmmword [r10 + 0x100]
vpsubw zmm20, zmm20, zmmword [r10 + 0x140]
vpsubw zmm19, zmm19, zmmword [r10 + 0x180]
vpsubw zmm18, zmm28, zmmword [r10 + 0x1c0]
vpsubw zmm17, zmm29, zmmword [r10 + 0x200]
vpsubw zmm16, zmm30, 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 0x1400f6485
movsxd r10, r11d
cmp r10d, ebp
jl 0x1400f6840
cmp r10d, r12d
jl 0x1400f67a9
add r8d, 1
vmovdqu64 zmmword [rdx], zmm31
add rcx, 0x400
add rdx, 0x400
vmovdqu64 zmmword [rdx - 0x3c0], zmm27
vmovdqu64 zmmword [rdx - 0x380], zmm23
vmovdqu64 zmmword [rdx - 0x340], zmm22
vmovdqu64 zmmword [rdx - 0x300], zmm21
vmovdqu64 zmmword [rdx - 0x2c0], zmm20
vmovdqu64 zmmword [rdx - 0x280], zmm19
vmovdqu64 zmmword [rdx - 0x240], zmm18
vmovdqu64 zmmword [rdx - 0x200], zmm17
vmovdqu64 zmmword [rdx - 0x1c0], zmm16
vmovdqu64 zmmword [rdx - 0x180], zmm5
vmovdqu64 zmmword [rdx - 0x140], zmm4
vmovdqu64 zmmword [rdx - 0x100], zmm3
vmovdqu64 zmmword [rdx - 0xc0], zmm2
vmovdqu64 zmmword [rdx - 0x80], zmm1
vmovdqu64 zmmword [rdx - 0x40], zmm0
vmovdqu64 zmmword [rcx - 0x400], zmm31
vmovdqu64 zmmword [rcx - 0x3c0], zmm27
vmovdqu64 zmmword [rcx - 0x380], zmm23
vmovdqu64 zmmword [rcx - 0x340], zmm22
vmovdqu64 zmmword [rcx - 0x300], zmm21
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 0x1400f6400
lea rsi, [r15 + r9 + 0x1800]
mov r11, rbx
mov r8, qword [rsp + 0x18]
mov rbx, qword [rsp + 0x10]
vmovdqu ymm5, ymmword [rsi]
vmovq rax, xmm26
test ebp, ebp
jle 0x1400f6702
mov rbp, qword [rsp + 8]
lea rdx, [rsp + 0xc0]
sub ebp, 1
lea r10, [rsp + rbp*4 + 0xc4]
mov ecx, dword [rdx]
add rdx, 4
lea edi, [rcx*8]
vpsubd ymm5, ymm5, ymmword [r14 + rdi*4 + 0x8401800]
cmp r10, rdx
jne 0x1400f66e6
test r12d, r12d
jle 0x1400f672d
lea r12d, [r8 - 1]
lea r8, [rsp + r12*4 + 0x34]
mov edx, dword [r11]
add r11, 4
lea ebp, [rdx*8]
vpaddd ymm5, ymm5, ymmword [r14 + rbp*4 + 0x8401800]
cmp r11, r8
jne 0x1400f6710
vmovdqu ymmword [rsi], ymm5
imul r14, rbx, 0x3100
lea r11, [r13 + 0x110]
vmovdqu ymmword [rax + 0x30c0], ymm5
lea rax, [r15 + r9 + 0x1838]
vmovdqu xmm4, xmmword [r13 + 0x140]
mov rbx, rax
vmovdqu xmmword [r15 + r14 + 0x1820], xmm4
sub rbx, r11
cmp rbx, 0x10
jbe 0x1400f68e2
vmovdqu ymm3, ymmword [r13 + 0x108]
vmovdqu ymmword [rax], ymm3
vmovdqu xmm2, xmmword [r13 + 0x128]
vmovdqu xmmword [r15 + r9 + 0x1858], xmm2
vzeroupper
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edi, dword [rbx + r10*4]
add r10, 1
lea eax, [rdi + rdi*2]
lea esi, [r8 + rax*2]
shl esi, 9
lea rdi, [r14 + rsi*2 + 0x1800]
vpaddw zmm31, zmm31, zmmword [rdi]
vpaddw zmm27, zmm27, zmmword [rdi + 0x40]
vpaddw zmm23, zmm23, zmmword [rdi + 0x80]
vpaddw zmm22, zmm22, zmmword [rdi + 0xc0]
vpaddw zmm21, zmm21, zmmword [rdi + 0x100]
vpaddw zmm20, zmm20, zmmword [rdi + 0x140]
vpaddw zmm19, zmm19, zmmword [rdi + 0x180]
vpaddw zmm18, zmm18, zmmword [rdi + 0x1c0]
vpaddw zmm17, zmm17, zmmword [rdi + 0x200]
vpaddw zmm16, zmm16, zmmword [rdi + 0x240]
vpaddw zmm5, zmm5, zmmword [rdi + 0x280]
vpaddw zmm4, zmm4, zmmword [rdi + 0x2c0]
vpaddw zmm3, zmm3, zmmword [rdi + 0x300]
vpaddw zmm2, zmm2, zmmword [rdi + 0x340]
vpaddw zmm1, zmm1, zmmword [rdi + 0x380]
vpaddw zmm0, zmm0, zmmword [rdi + 0x3c0]
cmp r12d, r10d
jle 0x1400f65b0
jmp 0x1400f67a9
lea rdi, [rsp + 0xc0]
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 zmm31, zmm31, zmmword [rsi]
vpsubw zmm27, zmm27, zmmword [rsi + 0x40]
vpsubw zmm23, zmm23, zmmword [rsi + 0x80]
vpsubw zmm22, zmm22, zmmword [rsi + 0xc0]
vpsubw zmm21, zmm21, 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 0x1400f6848
movsxd r10, ebp
jmp 0x1400f65a7
vmovdqu ymm1, ymmword [r13 + 0x108]
vmovdqu ymmword [r15 + r14 + 0x1838], ymm1
vmovdqu xmm0, xmmword [r13 + 0x128]
vmovdqu xmmword [r15 + r14 + 0x1858], xmm0
jmp 0x1400f6792