Function at 0x1800ad950
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rdi
push r13
sub rsp, 0x60
mov rax, qword [rcx + 0x10]
mov r13, r9
mov rbx, r8
mov rdi, rdx
cmp qword [rcx + 8], rax
jne 0x1800ad982
call fcn.180036630
mov rcx, qword [rsp + 0x80]
test r13, r13
je 0x1800ade58
mov qword [rsp + 0x88], rbp
lea rax, [rdi + 4]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], r12
lea r12, [rbx + 4]
sub rbx, rdi
mov qword [rsp + 0x48], r14
add rbx, 0xfffffffffffffffc
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
nop word [rax + rax]
movzx esi, word [rax - 4]
movzx r14d, word [rax - 2]
movzx r15d, word [rax]
movzx ebp, word [rax + 2]
lea rax, [0x180000000]
mov r12, qword [rcx + 8]
rol si, 8
rol r14w, 8
rol r15w, 8
rol bp, 8
xor r13d, r13d
movzx r11d, word [r12 + r13 + 6]
movzx ebx, si
rol bx, 1
and bx, word [r12 + r13]
xor bx, r14w
movzx ecx, bx
rol cx, 1
or cx, word [r12 + r13 + 2]
xor cx, word [r12 + r13 + 4]
xor cx, si
movzx r8d, cl
movzx edx, cx
shr rdx, 7
and r8b, 0x7f
movzx ecx, r8b
movzx r9d, word [rax + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rax + 0x202a10]
mov edx, r11d
movzx r11d, word [r12 + r13 + 0xa]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rax + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rax + 0x202a10]
xor cl, dl
movzx edi, cl
movzx ecx, word [r12 + r13 + 8]
xor cx, bx
shl di, 9
movzx edx, cx
or di, r8w
movzx r8d, cl
shr rdx, 7
and r8b, 0x7f
xor di, bx
movzx ecx, r8b
movzx r9d, word [rax + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rax + 0x202a10]
mov edx, r11d
movzx r11d, word [r12 + r13 + 0xe]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rax + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rax + 0x202a10]
xor cl, dl
movzx ebx, cl
movzx ecx, word [r12 + r13 + 0xc]
shl bx, 9
xor cx, di
or bx, r8w
movzx edx, cx
xor bx, di
movzx r8d, cl
and r8b, 0x7f
shr rdx, 7
xor r15w, bx
movzx ecx, r8b
movzx r9d, word [rax + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rax + 0x202a10]
mov edx, r11d
movzx r11d, word [r12 + r13 + 0x16]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rax + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rax + 0x202a10]
xor cl, dl
movzx edx, cl
movzx ecx, word [r12 + r13 + 0x14]
xor cx, r15w
shl dx, 9
or dx, r8w
movzx r8d, cl
xor dx, bx
and r8b, 0x7f
xor bp, dx
movzx edx, cx
shr rdx, 7
movzx ecx, r8b
movzx r9d, word [rax + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rax + 0x202a10]
mov edx, r11d
movzx r11d, word [r12 + r13 + 0x1a]
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rax + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rax + 0x202a10]
xor cl, dl
movzx ebx, cl
movzx ecx, word [r12 + r13 + 0x18]
xor cx, bp
shl bx, 9
movzx edx, cx
or bx, r8w
movzx r8d, cl
shr rdx, 7
and r8b, 0x7f
xor bx, bp
movzx ecx, r8b
movzx r9d, word [rax + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rax + 0x202a10]
xor r10b, cl
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
mov edx, r11d
movzx r11d, word [r12 + r13 + 0x1e]
and edx, 0x1ff
movzx ecx, r9w
xor rdx, rcx
movzx ecx, r10b
movzx r8d, word [rax + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rax + 0x202a10]
xor cl, dl
movzx edi, cl
movzx ecx, word [r12 + r13 + 0x1c]
xor cx, bx
shl di, 9
movzx edx, cx
or di, r8w
movzx r8d, cl
shr rdx, 7
and r8b, 0x7f
xor di, bx
movzx ecx, r8b
movzx r9d, word [rax + rdx*2 + 0x202a90]
xor r9w, cx
movzx edx, r8b
movzx ecx, r11w
shr cx, 9
movzx r10d, byte [rdx + rax + 0x202a10]
mov edx, r11d
xor r10b, cl
and edx, 0x1ff
movzx ecx, r9b
and cl, 0x7f
xor r10b, cl
movzx ecx, r9w
xor rdx, rcx
movzx r9d, di
rol r9w, 1
and r9w, word [r12 + r13 + 0x10]
movzx ecx, r10b
movzx r8d, word [rax + rdx*2 + 0x202a90]
xor r8w, cx
movzx ecx, r10b
movzx edx, r8b
and dl, 0x7f
movzx ecx, byte [rcx + rax + 0x202a10]
xor cl, dl
movzx edx, cl
shl dx, 9
or dx, r8w
xor r9w, dx
xor r9w, di
movzx ecx, r9w
xor r14w, r9w
rol cx, 1
or cx, word [r12 + r13 + 0x12]
add r13, 0x20
xor cx, di
xor si, cx
cmp r13, 0x80
jne 0x1800ada01
mov r12, qword [rsp + 0x28]
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x80]
rol si, 8
rol r14w, 8
rol r15w, 8
rol bp, 8
mov word [rdx + rax], si
add rax, 8
mov word [r12 - 2], r14w
mov word [r12], r15w
mov word [r12 + 2], bp
add r12, 8
sub qword [rsp + 0x98], 1
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], r12
jne 0x1800ad9d0
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x88]
add rsp, 0x60
pop r13
pop rdi
pop rbx
ret