Function at 0x1800a9ee0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov byte [rsp + 0x10], dl
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x10
mov r11d, dword [rbp + 0x60]
mov r14, rcx
movzx edi, r8b
mov ecx, r11d
movzx esi, r9w
mov r8d, 0x10624dd3
mov r15d, 0x51eb851f
mov r9d, 0xcccccccd
mov eax, 0xd1b71759
mul r11d
mov eax, r8d
mov ebx, edx
mul r11d
shr ebx, 0xd
shr edx, 6
imul eax, edx, 0x3e8
movzx r10d, bl
inc r10d
sub ecx, eax
mov eax, r15d
mul ecx
mov eax, r9d
mov r13d, edx
mul r11d
mov al, r11b
shr r13d, 5
shr edx, 3
mov cl, dl
shl cl, 2
add dl, cl
imul ecx, ebx, 0x2710
add dl, dl
sub al, dl
mov edx, r11d
mov byte [rbp + 0x50], al
mov eax, r8d
sub edx, ecx
mul edx
mov eax, r9d
movzx r9d, r13b
shr edx, 6
movzx r12d, dl
add r10d, r12d
mul r10d
shr edx, 3
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
mov eax, 0xcccccccd
movzx edx, r10b
inc edx
add r9d, edx
mul r9d
mov eax, r15d
shr edx, 3
lea ecx, [rdx + rdx*4]
mul r11d
add ecx, ecx
shr edx, 5
sub r9d, ecx
imul eax, edx, 0x64
mov ecx, 0xcccccccd
movzx r8d, r9b
inc r8d
sub r11d, eax
mov eax, ecx
mul r11d
mov eax, ecx
mov r11d, edi
shr edx, 3
and r11d, 0xf
movzx r15d, dl
add r8d, r15d
movzx ecx, bl
mul r8d
mov qword [rbp - 0x10], rcx
shr edx, 3
lea eax, [rdx + rdx*4]
add eax, eax
sub r8d, eax
or r11, 0xc0
movzx ebx, byte [rbp + 0x50]
lea rdi, [0x1800f7e18]
shl r11, 0xc
mov eax, esi
and eax, 0xfff
or r11, rax
movzx eax, byte [rcx + rdi]
shl r11, 4
or r11, rax
movzx eax, r10b
shl r11, 4
movzx ecx, byte [rax + rdi]
or r11, rcx
movzx eax, r9b
shl r11, 4
movzx ecx, byte [rax + rdi]
mov eax, 0xcccccccd
or r11, rcx
movzx ecx, r8b
shl r11, 4
movzx edx, byte [rcx + rdi]
or r11, rdx
movzx edx, r8b
lea r8d, [rbx + 1]
shl r11, 4
add r8d, edx
mul r8d
shr edx, 3
lea eax, [rdx + rdx*4]
add eax, eax
sub r8d, eax
movzx eax, r8b
movzx ecx, byte [rax + rdi]
or r11, rcx
lea rcx, [rbp + 0x40]
mov rax, r11
mov r9, r11
bswap rax
shr rax, 0x18
xor r8d, r8d
mov qword [rbp + 0x40], rax
mov edx, r8d
lea r10d, [r8 + 5]
movzx eax, byte [rcx]
shl eax, 8
xor eax, edx
movzx edx, ax
mov eax, 8
bt edx, 0xf
jae 0x1800aa0c1
add edx, edx
xor edx, 0x1021
jmp 0x1800aa0c3
add edx, edx
sub rax, 1
jne 0x1800aa0b1
inc rcx
sub r10, 1
jne 0x1800aa0a1
mov al, dl
shl r9, 0x10
shl al, 4
mov cl, dl
mov qword [rbp + 0x40], r9
and r11b, 0xf
or al, r11b
shr cl, 4
mov byte [rbp + 0x40], al
mov r9b, 1
mov rax, qword [rbp + 0x40]
shr rax, 0x14
xor al, dl
and al, 0xf
xor al, dl
mov byte [rbp + 0x41], al
mov rax, qword [rbp + 0x40]
shr rax, 0x18
xor cl, al
movzx eax, dx
and cl, 0xf
shr ax, 4
xor cl, al
mov byte [rbp + 0x42], cl
movzx ecx, dx
mov rax, qword [rbp + 0x40]
shr cx, 8
shr rax, 0x1c
xor cl, al
shr dx, 8
and cl, 0xf
xor cl, dl
mov byte [rbp + 0x43], cl
mov cl, r8b
mov rdx, qword [rbp + 0x40]
mov rax, rdx
shr rax, cl
inc cl
and al, 1
xor r9b, al
cmp cl, 0x38
jb 0x1800aa13f
movabs rax, 0xff00000000000000
or rdx, rax
movzx eax, r9b
add rdx, rdx
or rdx, rax
mov qword [rbp + 0x40], rdx
mov eax, dword [rbp + 0x40]
shr rdx, 0x20
mov dword [r14 + 4], edx
mov dword [r14 + 8], eax
cmp byte [rbp + 0x48], r8b
je 0x1800aa1f1
shl r15d, 4
mov cl, 1
movzx eax, bl
shl r12d, 4
mov edx, r15d
or rdx, rax
mov eax, r12d
shl rdx, 9
or rdx, rax
movzx eax, r13b
or rdx, rax
movabs rax, 0x712000000
shl rdx, 9
or rdx, qword [rbp - 0x10]
shl rdx, 0x25
or rdx, rax
mov rax, rdx
shr rax, cl
inc cl
and al, 1
xor r8b, al
cmp cl, 0x40
jb 0x1800aa1be
movzx eax, r8b
or rax, rdx
mov qword [rbp + 0x40], rax
shr rax, 0x20
mov dword [r14 + 0xc], eax
mov eax, dword [rbp + 0x40]
mov dword [r14 + 0x10], eax
mov eax, 0x907f0082
jmp 0x1800aa1f6
mov eax, 0x907f0042
mov dword [r14], eax
mov rbx, qword [rsp + 0x68]
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret