Function at 0x1800a8f00
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 0x1800a90f4
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 0x1800a90a2
movdqa xmm5, xmmword [0x18012ef60]
movdqa xmm4, xmmword [0x18012f050]
movdqa xmm6, xmmword [0x18012efa0]
movdqa xmm0, xmmword [0x18012f060]
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, 1
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 [0x18012f040]
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, 1
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 [0x18012f040]
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 0x1800a8fa0
cmp eax, 0x33
jge 0x1800a90dc
movsxd rax, edi
lea r8, [rbp - 9]
add r8, rax
nop dword [rax]
mov eax, 0x94f2095
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx eax, dil
sub al, cl
add al, 0x34
xor byte [r8], al
inc edi
lea r8, [r8 + 1]
cmp edi, 0x33
jl 0x1800a90b0
xor r8d, r8d
lea rdx, [rbp - 9]
lea rcx, [rbp + 0x67]
call fcn.1800387f0
mov rcx, qword [rax]
jmp 0x1800a91c6
movsd xmm0, qword [0x18012ecd8]
movsd xmm1, qword [0x18014adb8]
comisd xmm0, xmm1
jbe 0x1800a9113
lea rdx, [0x18014c730]
jmp 0x1800a9148
movsd xmm0, qword [0x18012ecf8]
comisd xmm0, xmm1
jbe 0x1800a912a
lea rdx, [0x18014c750]
jmp 0x1800a9148
lea rax, [0x18014c770]
lea rdx, [0x18014c790]
movsd xmm0, qword [0x18012ed48]
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.1800ac000
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.1800acb60
mov rdx, rax
mov rcx, qword [rax]
test rcx, rcx
je 0x1800a91c6
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 0x1800a9240
call fcn.180016150
nop
cmp byte [0x18014add8], 0
je 0x1800a9233
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 0x1800a9296
call fcn.180016150
nop
cmp byte [0x18014add8], 0
je 0x1800a9284
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