Function at 0x1800ab364
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
mov byte [rsp + 0x10], dl
push rsi
push rdi
push r12
push r13
push r14
push r15
mov r11d, dword [rsp + 0x58]
mov r14, rcx
movzx edi, r8b
mov ecx, r11d
mov r13b, r11b
movzx esi, r9w
mov r8d, 0x10624dd3
mov ebp, 0x51eb851f
mov eax, 0xd1b71759
mov r9d, 0xcccccccd
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, ebp
mul ecx
mov eax, r9d
mov r12d, edx
mul r11d
mov eax, r8d
shr r12d, 5
shr edx, 3
mov cl, dl
shl cl, 2
add dl, cl
imul ecx, ebx, 0x2710
add dl, dl
movzx ebx, bl
sub r13b, dl
mov edx, r11d
sub edx, ecx
mul edx
mov eax, r9d
movzx r9d, r12b
shr edx, 6
movzx r15d, dl
add r10d, r15d
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, ebp
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 ebp, dl
or r11, 0xc0
add r8d, ebp
mul r8d
shr edx, 3
lea eax, [rdx + rdx*4]
add eax, eax
sub r8d, eax
mov eax, esi
shl r11, 0xc
and eax, 0xfff
lea rdi, [0x1800f9238]
or r11, rax
movzx eax, byte [rbx + 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
inc edx
movzx r8d, r13b
add r8d, edx
shl r11, 4
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, [rsp + 0x38]
mov rax, r11
mov r9, r11
bswap rax
shr rax, 0x18
xor r8d, r8d
mov qword [rsp + 0x38], 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 0x1800ab539
add edx, edx
xor edx, 0x1021
jmp 0x1800ab53b
add edx, edx
sub rax, 1
jne 0x1800ab529
inc rcx
sub r10, 1
jne 0x1800ab519
mov al, dl
shl r9, 0x10
shl al, 4
mov cl, dl
mov qword [rsp + 0x38], r9
and r11b, 0xf
or al, r11b
shr cl, 4
mov byte [rsp + 0x38], al
mov r9b, 1
mov rax, qword [rsp + 0x38]
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
movzx ecx, dx
mov rax, qword [rsp + 0x38]
shr cx, 8
shr rax, 0x1c
xor cl, al
shr dx, 8
and cl, 0xf
xor cl, dl
mov byte [rsp + 0x3b], cl
mov cl, r8b
mov rdx, qword [rsp + 0x38]
mov rax, rdx
shr rax, cl
inc cl
and al, 1
xor r9b, al
cmp cl, 0x38
jb 0x1800ab5c0
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 [r14 + 4], edx
mov dword [r14 + 8], eax
cmp byte [rsp + 0x40], r8b
je 0x1800ab675
shl ebp, 4
mov cl, 1
movzx eax, r13b
shl r15d, 4
mov edx, ebp
or rdx, rax
mov eax, r15d
shl rdx, 9
or rdx, rax
movzx eax, r12b
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 0x1800ab640
movzx eax, r8b
or rax, rdx
mov qword [rsp + 0x38], rax
shr rax, 0x20
mov dword [r14 + 0xc], eax
mov eax, dword [rsp + 0x38]
mov dword [r14 + 0x10], eax
mov eax, 0x907f0082
jmp 0x1800ab67a
mov eax, 0x907f0042
mov dword [r14], eax
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret