Function at 0x1401ad360
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push r12
push rsi
mov rsi, rcx
push rbx
mov rbx, rdx
and rsp, 0xfffffffffffffff0
sub rsp, 0x20
mov rax, qword [rcx + 8]
lea rcx, [rax + 0x68]
call fcn.140030c20
mov rcx, qword [rsi + 8]
mov r12, qword [rcx + 0x28]
test r12, r12
je 0x1401ad61f
lea r10, [rbx + 0x3c]
mov r9, rbx
mov esi, 0x9e3779b9
mov r11d, 0x9e3779b9
mov r8d, 0xfeedbeef
movzx edx, byte [r9 + 5]
movzx eax, byte [r9 + 6]
shl edx, 8
shl eax, 0x10
add edx, eax
movzx eax, byte [r9 + 4]
add edx, eax
movzx eax, byte [r9 + 7]
shl eax, 0x18
add edx, eax
movzx eax, byte [r9 + 9]
add edx, esi
movzx esi, byte [r9 + 0xa]
shl eax, 8
shl esi, 0x10
add eax, esi
movzx esi, byte [r9 + 8]
add eax, esi
movzx esi, byte [r9 + 0xb]
shl esi, 0x18
add eax, esi
movzx esi, byte [r9 + 2]
add eax, r8d
movzx r8d, byte [r9 + 1]
shl esi, 0x10
shl r8d, 8
add r8d, esi
movzx esi, byte [r9]
add r8d, esi
movzx esi, byte [r9 + 3]
shl esi, 0x18
add r8d, esi
sub r8d, edx
sub edx, eax
sub r8d, eax
add r8d, r11d
mov r11d, eax
shr r11d, 0xd
xor r8d, r11d
sub edx, r8d
sub eax, r8d
mov r11d, edx
mov edx, r8d
shl edx, 8
xor edx, r11d
sub eax, edx
mov r11d, eax
mov eax, edx
shr eax, 0xd
xor eax, r11d
sub r8d, edx
add r9, 0xc
mov r11d, r8d
mov r8d, eax
sub edx, eax
sub r11d, eax
shr r8d, 0xc
xor r8d, r11d
sub edx, r8d
sub eax, r8d
mov r11d, edx
mov edx, r8d
shl edx, 0x10
xor edx, r11d
sub eax, edx
sub r8d, edx
mov r11d, eax
mov eax, edx
shr eax, 5
xor eax, r11d
mov r11d, eax
sub r8d, eax
sub edx, eax
shr r11d, 3
xor r11d, r8d
mov esi, r11d
sub edx, r11d
sub eax, r11d
shl esi, 0xa
xor esi, edx
mov r8d, esi
sub eax, esi
shr r8d, 0xf
xor r8d, eax
cmp r9, r10
jne 0x1401ad3ac
movzx eax, byte [rbx + 0x3f]
movzx edx, byte [rbx + 0x3e]
add r8d, 0x40
shl edx, 0x10
shl eax, 0x18
add eax, edx
movzx edx, byte [rbx + 0x3c]
add eax, edx
movzx edx, byte [rbx + 0x3d]
shl edx, 8
add eax, edx
mov edx, r8d
add eax, r11d
shr edx, 0xd
sub eax, esi
sub esi, r8d
sub eax, r8d
xor edx, eax
mov eax, edx
sub esi, edx
sub r8d, edx
shl eax, 8
mov r9d, r8d
xor eax, esi
mov r8d, eax
sub r9d, eax
sub edx, eax
shr r8d, 0xd
xor r8d, r9d
mov r9d, r8d
sub edx, r8d
sub eax, r8d
shr r9d, 0xc
xor r9d, edx
sub eax, r9d
sub r8d, r9d
mov edx, eax
mov eax, r9d
shl eax, 0x10
xor eax, edx
mov edx, eax
sub r8d, eax
shr edx, 5
xor edx, r8d
sub r9d, eax
mov r8d, edx
sub r9d, edx
sub eax, edx
shr r8d, 3
xor r9d, r8d
mov r8d, r9d
sub eax, r9d
sub edx, r9d
shl r8d, 0xa
xor eax, r8d
mov r8, qword [r12 + 0x60]
sub edx, eax
shr eax, 0xf
mov esi, dword [r8 + 8]
xor eax, edx
lea edx, [rsi - 1]
and edx, eax
shl rdx, 4
add rdx, qword [r8]
mov r12, qword [rdx]
test r12, r12
je 0x1401ad61f
mov r8, qword [r8 + 0x20]
mov rdx, r8
sub r12, r8
neg rdx
jmp 0x1401ad5b0
mov r12, qword [r12 + 0x80]
test r12, r12
je 0x1401ad61f
add r12, rdx
cmp dword [r12 + 0x94], eax
jne 0x1401ad5a0
cmp dword [r12 + 0x90], 0x40
jne 0x1401ad5a0
mov r9, qword [r12 + 0x88]
mov r10, qword [r9]
mov r8, qword [r9 + 8]
xor r10, qword [rbx]
xor r8, qword [rbx + 8]
or r8, r10
jne 0x1401ad5a0
mov r10, qword [r9 + 0x10]
mov r8, qword [r9 + 0x18]
xor r10, qword [rbx + 0x10]
xor r8, qword [rbx + 0x18]
or r8, r10
jne 0x1401ad5a0
mov r10, qword [r9 + 0x20]
mov r8, qword [r9 + 0x28]
xor r10, qword [rbx + 0x20]
xor r8, qword [rbx + 0x28]
or r8, r10
jne 0x1401ad5a0
mov r10, qword [r9 + 0x30]
mov r8, qword [r9 + 0x38]
xor r10, qword [rbx + 0x30]
xor r8, qword [rbx + 0x38]
or r8, r10
jne 0x1401ad5a0
add rcx, 0x68
call fcn.140030f90
lea rsp, [rbp - 0x18]
mov rax, r12
pop rbx
pop rsi
pop r12
pop rbp
ret