Function at 0x140089ca5
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
nop
push r13
mov qword [rsp], rdi
movzx eax, byte [rdx + 1]
xchg r14, r14
xchg rbx, r8
mov r8, rbx
xchg r8, rbx
movzx r11d, byte [rdx]
mov dword [rsp - 0x20], 0x6d55bdd5
xchg rcx, r8
mov rcx, r8
xchg r8, rcx
movzx ecx, byte [rdx + 5]
shl r11d, 1
shl r11d, 5
shl r11d, 1
shl r11d, 1
or r11d, eax
movzx eax, byte [rdx + 2]
mov dword [rsp - 0x44], esi
shl r11d, 3
shl r11d, 3
shl r11d, 1
shl r11d, 1
or r11d, eax
movzx eax, byte [rdx + 3]
shl r11d, 1
shl r11d, 5
shl r11d, 1
shl r11d, 1
or r11d, eax
movzx eax, byte [rdx + 4]
shl eax, 7
shl eax, 1
or eax, ecx
xchg r12, r12
movzx ecx, byte [rdx + 6]
shl eax, 7
shl eax, 1
or eax, ecx
mov dword [rsp - 0x28], 0x638bd21d
movzx ecx, byte [rdx + 7]
shl eax, 2
shl eax, 5
shl eax, 1
or eax, ecx
mov dword [rsp - 0x34], 0x5e04aa7d
mov ecx, dword [r8 + 4]
dec ecx
movsxd rdi, ecx
test ecx, ecx
xchg r13, r13
jle 0x140089f63
mov rdx, qword [r8 + 8]
xchg rsi, r13
mov qword [rsp + 0x10], r13
xchg r13, rsi
lea rsi, [rdi - 1]
lea rsi, [rdi + rsi*2]
xchg rsi, rsi
xchg r14, rbp
mov qword [rsp + 0x18], rbp
xchg r14, rbp
dec rdi
xchg r13, r13
lea r14, [0x1404a1560]
shr rdi, 1
lea rsi, [rdx + rsi*4]
mov dword [rsp - 0x24], ecx
inc rdi
nop dword [rax + rax]
mov r10d, dword [rsi + 0xc]
lea rsi, [rsi - 0x18]
mov dword [rsp - 0x20], edi
mov edx, eax
mov r9d, eax
and edx, 0x3ff00
mov dword [rsp - 0x20], 0x13f04643
ror r9d, 0xa
ror r9d, 2
ror r9d, 2
shl edx, 2
and r9d, 0xffc00
mov ecx, eax
xchg r13, r13
shr ecx, 3
shr ecx, 2
shr ecx, 0xa
shr ecx, 1
and ecx, 0x3ff
or r9d, ecx
mov ecx, eax
mov r11, r11
and ecx, 0x3ff
or edx, ecx
mov r8d, edx
xor edx, r9d
mov r13, r13
and edx, dword [rsi + 0x28]
xor r10, r8
mov r8d, dword [rsi + 0x20]
mov dword [rsp - 0x28], 0x5c8fa7ba
xor r10, rdx
xor r8, r9
mov r9d, dword [rsi + 0x14]
xor r8, rdx
mov r12, r12
xchg rcx, r8
mov r8, rcx
xchg rcx, r8
and r8d, 0x3ff
mov rsi, rsi
shr rcx, 7
shr rcx, 3
mov edx, dword [r14 + rcx*4]
xchg r10, r9
mov rcx, r9
xchg r9, r10
shr rcx, 6
shr rcx, 3
shr rcx, 1
xor edx, 0xe225836
and r10d, 0x3ff
mov ecx, dword [r14 + rcx*4 + 0x2000]
mov dword [rsp - 0xc], edi
xor ecx, 0xe225836
or edx, ecx
mov ecx, dword [r14 + r8*4 + 0x1000]
xchg rbx, rbx
xor ecx, 0xe225836
or edx, ecx
mov ecx, dword [r14 + r10*4 + 0x3000]
xor ecx, 0xe225836
mov dword [rsp - 0x18], esp
or edx, ecx
xor r11d, edx
mov edx, r11d
xchg r9, r9
mov r8d, r11d
ror r8d, 0xb
ror r8d, 2
ror r8d, 1
and edx, 0x3ff00
mov dword [rsp - 0x1c], esp
and r8d, 0xffc00
shl edx, 1
shl edx, 1
mov ecx, r11d
mov dword [rsp - 0x18], ecx
shr ecx, 5
shr ecx, 0xa
shr ecx, 1
and ecx, 0x3ff
or r8d, ecx
mov dword [rsp - 0x2c], 0xf9e01c
mov ecx, r11d
and ecx, 0x3ff
xor r9, r8
xchg r15, r15
or edx, ecx
mov ecx, dword [rsi + 0x18]
mov r10d, edx
mov r10, r10
xor edx, r8d
and edx, dword [rsi + 0x1c]
xor r10, rcx
xor r10, rdx
xchg r8, r8
xor r9, rdx
xchg rcx, rdi
mov rdi, r10
xchg rdi, rcx
and r10d, 0x3ff
mov r14, r14
shr rcx, 0xa
mov r8d, dword [r14 + rcx*4 + 0x2000]
xchg rcx, rbx
mov rbx, r9
xchg rbx, rcx
shr rcx, 7
shr rcx, 1
shr rcx, 1
shr rcx, 1
xor r8d, 0xe225836
and r9d, 0x3ff
mov dword [rsp - 0x34], ebx
mov edx, dword [r14 + rcx*4]
mov ecx, dword [r14 + r10*4 + 0x3000]
xor edx, 0xe225836
xor ecx, 0xe225836
mov dword [rsp - 0x38], 0x343d2091
or r8d, edx
or r8d, ecx
mov ecx, dword [r14 + r9*4 + 0x1000]
mov dword [rsp - 0x3c], 0x18d5c195
xor ecx, 0xe225836
or r8d, ecx
xor eax, r8d
mov r8, r8
sub rdi, 1
jne 0x140089d42
mov r14, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x10]
mov dword [rsp - 0x3c], edx
nop dword [rax]
mov byte [rbx + 3], al
mov byte [rbx + 7], r11b
shr eax, 1
shr eax, 1
shr eax, 4
shr eax, 2
mov byte [rbx + 2], al
shr r11d, 4
shr r11d, 2
shr r11d, 1
shr r11d, 1
mov byte [rbx + 6], r11b
mov rdi, rdi
shr eax, 6
shr eax, 1
shr eax, 1
mov byte [rbx + 1], al
mov rbp, rbp
shr r11d, 4
shr r11d, 1
shr r11d, 1
shr r11d, 1
shr r11d, 1
mov byte [rbx + 5], r11b
shr eax, 5
shr eax, 1
shr eax, 1
shr eax, 1
mov byte [rbx], al
shr r11d, 1
shr r11d, 6
shr r11d, 1
mov byte [rbx + 4], r11b
mov dword [rsp - 0x1c], 0x58393feb
mov rbx, qword [rsp + 0x20]
pop rdi
ret