Function at 0x1400af324
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov r14d, dword [rsp + 0x58]
mov r15b, dl
mov rbp, rcx
movzx edi, r8b
mov ecx, 0x10624dd3
movzx esi, r9w
mov r9d, 0x51eb851f
mov r10d, r14d
mov eax, 0xd1b71759
mov r11d, 0xcccccccd
mul r14d
mov ebx, edx
shr ebx, 0xd
mov eax, ebx
imul eax, eax, 0x2710
sub r10d, eax
mov eax, ecx
mul r10d
mov eax, ecx
mov ecx, r14d
mov r8d, edx
shr r8d, 6
movzx r13d, r8b
mov r8d, 0x66666667
mul r14d
shr edx, 6
mov eax, r9d
imul edx, edx, 0x3e8
sub ecx, edx
mul ecx
mov eax, r9d
mov ecx, r14d
mov r10d, edx
mul r14d
mov eax, r11d
shr edx, 5
shr r10d, 5
mov dword [rsp + 0x40], r10d
imul edx, edx, 0x64
sub ecx, edx
mul ecx
mov eax, r11d
mov r9d, edx
mul r14d
shr r9d, 3
shr edx, 3
movzx r12d, r9b
mov al, dl
shl al, 2
add dl, al
movzx eax, bl
lea r11d, [rax + r13 + 1]
add dl, dl
mov eax, r8d
sub r14b, dl
imul r11d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r11d, eax
movzx eax, r10b
movzx ecx, r11b
lea r10d, [rcx + rax + 1]
mov eax, r8d
imul r10d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
movzx eax, r10b
lea r8d, [rax + r12 + 1]
mov eax, 0x66666667
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
mov r9, rdi
lea rdi, [0x1400d4b08]
add edx, eax
and r9d, 0xf
movzx ebx, bl
or r9, 0xc0
lea eax, [rdx + rdx*4]
add eax, eax
shl r9, 0xc
sub r8d, eax
mov rax, rsi
and eax, 0xfff
or r9, rax
movzx eax, byte [rbx + rdi]
shl r9, 4
or r9, rax
movzx eax, r11b
movzx ecx, byte [rax + rdi]
shl r9, 4
movzx eax, r10b
or r9, rcx
movzx ecx, byte [rax + rdi]
mov eax, 0x66666667
shl r9, 4
or r9, rcx
movzx ecx, r8b
movzx edx, byte [rcx + rdi]
shl r9, 4
movzx ecx, r14b
or r9, rdx
movzx edx, r8b
lea r8d, [rdx + rcx + 1]
shl r9, 4
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r8d, eax
movzx eax, r8b
movzx ecx, byte [rax + rdi]
or r9, rcx
lea rcx, [rsp + 0x38]
mov rax, r9
bswap rax
shr rax, 0x18
xor r8d, r8d
lea r10d, [r8 + 5]
mov qword [rsp + 0x38], rax
mov edx, r8d
movzx eax, byte [rcx]
shl eax, 8
xor eax, edx
movzx edx, ax
mov eax, 8
bt edx, 0xf
jae 0x1400af522
add edx, edx
xor edx, 0x1021
jmp 0x1400af524
add edx, edx
sub rax, 1
jne 0x1400af512
inc rcx
sub r10, 1
jne 0x1400af502
shl r9, 0x10
mov al, dl
mov cl, dl
shl al, 4
mov qword [rsp + 0x38], r9
shr cl, 4
shr r9, 0x10
and r9b, 0xf
or r9b, al
mov byte [rsp + 0x38], r9b
mov rax, qword [rsp + 0x38]
mov r9b, 1
shr rax, 0x14
xor al, dl
and al, 0xf
xor al, dl
mov byte [rsp + 0x39], al
mov rax, qword [rsp + 0x38]
shr rax, 0x18
xor cl, al
movzx eax, dx
and cl, 0xf
shr ax, 4
xor cl, al
mov byte [rsp + 0x3a], cl
mov rax, qword [rsp + 0x38]
movzx ecx, dx
shr cx, 8
shr rax, 0x1c
shr dx, 8
xor cl, al
and cl, 0xf
xor cl, dl
mov byte [rsp + 0x3b], cl
mov rdx, qword [rsp + 0x38]
mov cl, r8b
mov rax, rdx
shr rax, cl
inc cl
and al, 1
xor r9b, al
cmp cl, 0x38
jb 0x1400af5ae
movabs rax, 0xff00000000000000
or rdx, rax
movzx eax, r9b
add rdx, rdx
or rdx, rax
mov qword [rsp + 0x38], rdx
mov eax, dword [rsp + 0x38]
shr rdx, 0x20
mov dword [rbp + 4], edx
mov dword [rbp + 8], eax
cmp r15b, r8b
je 0x1400af662
shl r12d, 4
movzx eax, r14b
shl r13d, 4
movsxd rdx, r12d
mov cl, 1
or rdx, rax
movsxd rax, r13d
shl rdx, 9
or rdx, rax
movzx eax, byte [rsp + 0x40]
or rdx, rax
movabs rax, 0x712000000
shl rdx, 9
or rdx, rbx
shl rdx, 0x25
or rdx, rax
mov rax, rdx
shr rax, cl
inc cl
and al, 1
xor r8b, al
cmp cl, 0x40
jb 0x1400af62d
movzx eax, r8b
mov dword [rbp], 0x907f0082
or rdx, rax
mov qword [rsp + 0x38], rdx
mov eax, dword [rsp + 0x38]
shr rdx, 0x20
mov dword [rbp + 0x10], eax
mov dword [rbp + 0xc], edx
jmp 0x1400af669
mov dword [rbp], 0x907f0042
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret