Function at 0x18000ae70
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push rdi
push r13
sub rsp, 0x40
mov rbp, r8
mov rdi, rdx
mov rsi, rcx
test rdx, rdx
je 0x18000b16e
mov r13, rdx
mov rax, rdx
shr r13, 2
mov edx, 4
shr rax, 2
inc r13
test dil, 3
cmove r13, rax
mov rcx, r13
mov qword [rsp + 0x20], r13
call fcn.1800d23b0
mov rbx, rax
test rax, rax
je 0x18000b16e
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x38], r14
xor r14d, r14d
mov r9d, r14d
test rdi, rdi
je 0x18000af07
nop dword [rax]
movzx edx, byte [r9 + rsi]
mov rcx, r9
shr rcx, 2
lea r8, [rax + rcx*4]
movzx ecx, r9b
and cl, 3
inc r9
shl cl, 3
shl edx, cl
or dword [r8], edx
cmp r9, rdi
jb 0x18000aee0
mov edx, 4
mov ecx, edx
call fcn.1800d23b0
mov r12, rax
test rax, rax
jne 0x18000af3a
mov rcx, rbx
call fcn.1800ca7c8
xor eax, eax
mov r12, qword [rsp + 0x70]
mov r14, qword [rsp + 0x38]
add rsp, 0x40
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
movzx eax, byte [rbp + 2]
lea r8d, [r13 - 1]
movzx ecx, byte [rbp + 3]
xor edx, edx
shl ecx, 8
or ecx, eax
mov qword [rsp + 0x30], r15
movzx eax, byte [rbp + 1]
mov r15d, 0xb54cda56
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x78], r8d
movzx eax, byte [rbp]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 6]
or dword [r12], ecx
movzx ecx, byte [rbp + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xa]
or dword [r12 + 4], ecx
movzx ecx, byte [rbp + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xe]
or dword [r12 + 8], ecx
movzx ecx, byte [rbp + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc]
shl ecx, 8
or ecx, eax
mov eax, 0x34
or dword [r12 + 0xc], ecx
mov ecx, dword [rbx]
div r13d
imul edx, eax, 0x61c88647
sub r15d, edx
cmp r8d, 1
jb 0x18000b0dd
test r15d, r15d
je 0x18000b0dd
mov r13d, r8d
lea r14, [rbx + r8*4]
nop dword [rax]
mov edi, r15d
mov r10d, r8d
shr rdi, 2
mov rsi, r13
and edi, 3
mov r11, r14
nop dword [rax]
nop word [rax + rax]
dec r10d
lea r11, [r11 - 4]
mov eax, ecx
mov ebp, r10d
shr eax, 3
mov r8d, dword [rbx + r10*4]
mov r9d, r8d
shl r9d, 4
mov edx, r8d
xor r9d, eax
shr edx, 5
lea eax, [rcx*4]
xor edx, eax
mov rax, rsi
and eax, 3
add r9d, edx
xor rax, rdi
dec rsi
xor r8d, dword [r12 + rax*4]
mov eax, r15d
xor eax, ecx
add r8d, eax
xor r9d, r8d
sub dword [r11 + 4], r9d
mov ecx, dword [r11 + 4]
test r10d, r10d
jne 0x18000b030
mov r8d, dword [r14]
lea r9d, [rcx*4]
mov eax, r8d
mov edx, ecx
shr eax, 5
xor ecx, r15d
xor r9d, eax
shr edx, 3
mov eax, r8d
and ebp, 3
xor rbp, rdi
shl eax, 4
xor edx, eax
add r9d, edx
xor r8d, dword [r12 + rbp*4]
add r8d, ecx
xor r9d, r8d
mov r8d, dword [rsp + 0x78]
sub dword [rbx], r9d
mov ecx, dword [rbx]
add r15d, 0x61c88647
jne 0x18000b010
mov r13, qword [rsp + 0x20]
xor r14d, r14d
mov edi, dword [rbx + r13*4 - 4]
lea r13, [r13*4 - 4]
mov r15, qword [rsp + 0x30]
lea rax, [r13 - 3]
cmp rdi, rax
jb 0x18000b153
cmp rdi, r13
ja 0x18000b153
mov rax, 0xffffffffffffffff
mov edx, edi
add rdx, 1
cmovb rdx, rax
lea ecx, [rax + 2]
call fcn.1800d23b0
mov rsi, rax
test rdi, rdi
je 0x18000b142
nop
mov rdx, r14
movzx ecx, r14b
shr rdx, 2
and cl, 3
shl cl, 3
mov eax, dword [rbx + rdx*4]
shr eax, cl
mov byte [r14 + rsi], al
inc r14
cmp r14, rdi
jb 0x18000b120
mov rax, qword [rsp + 0x88]
mov byte [rsi + rdi], 0
mov qword [rax], rdi
jmp 0x18000b156
mov rsi, r14
mov rcx, rbx
call fcn.1800ca7c8
mov rcx, r12
call fcn.1800ca7c8
mov rax, rsi
jmp 0x18000af25
xor eax, eax
add rsp, 0x40
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret