Function at 0x1800a8f70
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xa0
movaps xmmword [rsp + 0x90], xmm6
cmp dword [0x18014adc0], 0xb
jge 0x1800a9165
movups xmm0, xmmword [0x180126328]
movups xmmword [rbp - 9], xmm0
movups xmm1, xmmword [0x180126338]
movups xmmword [rbp + 7], xmm1
movups xmm0, xmmword [0x180126348]
movups xmmword [rbp + 0x17], xmm0
movzx eax, word [0x180126358]
mov word [rbp + 0x27], ax
movzx eax, byte [0x18012635a]
mov byte [rbp + 0x29], al
xor edi, edi
cmp dword [0x180149018], 2
jl 0x1800a9112
movdqa xmm5, xmmword [0x18012ef50]
movdqa xmm4, xmmword [0x18012f100]
movdqa xmm6, xmmword [0x18012ef70]
movdqa xmm0, xmmword [str.7777777777777777]
movdqa xmmword [rbp - 0x29], xmm0
lea rcx, [rbp - 5]
mov edx, dword [rbp - 0x29]
nop word [rax + rax]
movd xmm2, edi
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x18012f030]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [rdi + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x18012f030]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add edi, 8
mov eax, edi
lea rcx, [rcx + 8]
cmp edi, 0x30
jl 0x1800a9010
cmp eax, 0x33
jge 0x1800a914d
movsxd rax, edi
lea r8, [rbp - 9]
add r8, rax
nop dword [rax]
mov eax, 0x5397829d
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, dil
sub al, cl
add al, 0x37
xor byte [r8], al
inc edi
lea r8, [r8 + 1]
cmp edi, 0x33
jl 0x1800a9120
xor r8d, r8d
lea rdx, [rbp - 9]
lea rcx, [rbp + 0x67]
call fcn.1800387f0
mov rcx, qword [rax]
jmp 0x1800a9237
movsd xmm0, qword [0x18012ecc8]
movsd xmm1, qword [0x18014adb8]
comisd xmm0, xmm1
jbe 0x1800a9184
lea rdx, [0x18014c730]
jmp 0x1800a91b9
movsd xmm0, qword [0x18012ece8]
comisd xmm0, xmm1
jbe 0x1800a919b
lea rdx, [0x18014c750]
jmp 0x1800a91b9
lea rax, [0x18014c770]
lea rdx, [0x18014c790]
movsd xmm0, qword [0x18012ed38]
comisd xmm0, xmm1
cmova rdx, rax
lea rcx, [rbp - 9]
call fcn.18002d010
xor r9d, r9d
xor r8d, r8d
mov rdx, rax
lea rcx, [rbp + 0x67]
call fcn.1800ac090
mov rbx, rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x29], xmm0
xor edi, edi
mov qword [rbp - 0x19], rdi
lea edx, [rdi + 1]
lea rcx, [rbp - 0x29]
call fcn.18000f200
mov rcx, qword [rbp - 0x29]
mov byte [rcx], 0xe8
inc rcx
mov qword [rbp - 0x21], rcx
mov dword [rsp + 0x28], 0x800
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [rbp - 0x29]
lea rdx, [rbp + 0x77]
mov rcx, rbx
call fcn.1800acbf0
mov rdx, rax
mov rcx, qword [rax]
test rcx, rcx
je 0x1800a9237
movsxd rax, dword [rcx + 1]
add rcx, 5
add rcx, rax
mov qword [rdx], rcx
mov qword [0x18014b760], rcx
xorps xmm0, xmm0
xorps xmm1, xmm1
xor r8d, r8d
lea rdx, [0x18011f470]
movups xmmword [rbp - 0x29], xmm0
movdqu xmmword [rbp - 0x19], xmm1
test rcx, rcx
lea rcx, [rbp - 0x29]
jne 0x1800a92b1
call fcn.180016150
nop
cmp byte [0x18014add8], 0
je 0x1800a92a4
mov byte [rbp + 0x67], 0
mov dword [rbp + 0x6f], 2
lea rax, [rbp + 0x67]
mov qword [rsp + 0x28], rax
lea rax, [0x18014bfd8]
mov qword [rsp + 0x20], rax
lea r9, [0x18014bfc8]
lea r8, [rbp - 0x29]
lea rdx, [rbp + 0x6f]
call fcn.180028480
nop
lea rcx, [rbp - 0x29]
call fcn.18002d3d0
xor al, al
jmp 0x1800a9307
call fcn.180016150
nop
cmp byte [0x18014add8], 0
je 0x1800a92f5
mov byte [rbp + 0x67], 0
mov dword [rbp + 0x6f], 2
lea rax, [rbp + 0x67]
mov qword [rsp + 0x28], rax
lea rax, [0x18014bfd8]
mov qword [rsp + 0x20], rax
lea r9, [0x18014bfc8]
lea r8, [rbp - 0x29]
lea rdx, [rbp + 0x6f]
call fcn.180028480
nop
lea rcx, [rbp - 0x29]
call fcn.18002d3d0
mov byte [0x1801490b8], 0
mov al, 1
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa0
pop rdi
pop rbx
pop rbp
ret