Function at 0x1400ade20
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
mov rbp, rsp
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
mov rsi, qword [rcx + 0x10]
and qword [rax + 0x18], 0
mov eax, 0xfffffff
mov r8d, dword [rsi + 9]
mov r9d, dword [rsi + 5]
inc rsi
and r9, rax
lea r15, [0x140000000]
and r8, rax
mov rax, qword [0x14010bb18]
mov rdi, rcx
mov rcx, r15
add r9, r15
sub rcx, rax
mov r14, rdx
mov qword [rsp + 0x20], rsi
mov r12, 0xfffffffffffff000
mov qword [rsp + 0x28], rcx
jne 0x1400adef2
xor r11d, r11d
test r8, r8
je 0x1400ae1bb
mov edx, dword [rbp + 0x24]
mov r10d, dword [rbp + 0x20]
movzx ecx, byte [r11 + r9]
inc r11
add ecx, 0x7d420b0b
add r10d, ecx
add ecx, edx
mov eax, ecx
ror ecx, 0xb
imul eax, eax, 0x188c
rol eax, 0xb
xor eax, ecx
imul rax, rax, 0x7d420b0b
mov qword [rbp + 0x10], rax
mov edx, dword [rbp + 0x10]
shr rax, 0x20
add edx, eax
imul edx, edx, 0x7d420b0b
ror edx, 0xc
add r10d, edx
cmp r11, r8
jb 0x1400ade9e
mov dword [rbp + 0x24], edx
mov dword [rbp + 0x20], r10d
jmp 0x1400ae1bb
movsxd rdx, dword [0x14000003c]
lea rax, [r9 + r8]
mov qword [rsp + 0x40], rax
lea rax, [0x1400000b0]
add rdx, rax
mov eax, r9d
sub eax, r15d
mov r10d, eax
mov ebx, eax
lea r14, [rax + r8]
mov r8d, dword [rdx]
and r10, r12
mov rsi, r14
add r8, r15
sub rbx, r10
and rsi, r12
mov r12d, dword [rdx + 4]
sub r14, rsi
add r12, r8
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r14
jmp 0x1400adf52
mov eax, dword [r8]
cmp rax, r10
jae 0x1400adf57
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r12
jne 0x1400adf43
xor r11d, r11d
cmp r8, r12
je 0x1400adf91
mov eax, dword [r8]
cmp rax, r10
jne 0x1400adf91
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x1400adf91
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rbx
jae 0x1400adf91
inc r11
add rdx, 2
cmp r11, rcx
jne 0x1400adf78
mov r10d, dword [rbp + 0x24]
mov ebx, dword [rbp + 0x20]
mov rdi, qword [rsp + 0x28]
cmp r8, r12
je 0x1400ae148
mov eax, dword [r8]
cmp rax, rsi
ja 0x1400ae148
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x1400adfdf
add r8, rcx
cmp r8, r12
je 0x1400ae148
mov eax, dword [r8]
cmp rax, rsi
ja 0x1400ae148
xor r11d, r11d
jmp 0x1400adfb2
mov eax, dword [r8]
cmp rax, rsi
jne 0x1400adffb
movzx eax, word [r8 + r11*2 + 8]
and eax, 0xfff
cmp rax, r14
jae 0x1400ae148
mov rax, r11
mov ecx, 0xf000
inc r11
test word [r8 + rax*2 + 8], cx
je 0x1400adf9d
movzx edx, word [r8 + rax*2 + 8]
mov esi, edx
and esi, 0xfff
add esi, dword [r8]
add rsi, r15
xor r15d, r15d
mov r14, rsi
sub r14, r9
je 0x1400ae080
movzx ecx, byte [r15 + r9]
inc r15
add ecx, 0x7d420b0b
add ebx, ecx
add ecx, r10d
mov eax, ecx
ror ecx, 0xb
imul eax, eax, 0x188c
rol eax, 0xb
xor eax, ecx
imul rax, rax, 0x7d420b0b
mov qword [rbp + 0x28], rax
mov r10d, dword [rbp + 0x28]
shr rax, 0x20
add r10d, eax
imul r10d, r10d, 0x7d420b0b
ror r10d, 0xc
add ebx, r10d
cmp r15, r14
jb 0x1400ae02d
mov dword [rbp + 0x24], r10d
mov dword [rbp + 0x20], ebx
shr edx, 0xc
cmp edx, 3
je 0x1400ae096
sub edx, 0xa
neg edx
sbb r9d, r9d
add r9d, 3
jmp 0x1400ae09c
mov r9d, 2
mov rax, qword [rsi]
mov rdx, rdi
neg rdx
mov qword [rbp + 0x28], rax
sub r9d, 2
je 0x1400ae0c8
dec r9d
je 0x1400ae0ba
or rdx, 0xffffffffffffffff
jmp 0x1400ae0d0
add rax, rdx
mov edx, 8
mov qword [rbp + 0x28], rax
jmp 0x1400ae0d0
add dword [rbp + 0x28], edx
mov edx, 4
xor r9d, r9d
test rdx, rdx
je 0x1400ae12e
movzx ecx, byte [rbp + r9 + 0x28]
inc r9
add ecx, 0x7d420b0b
add ebx, ecx
add ecx, r10d
mov eax, ecx
ror ecx, 0xb
imul eax, eax, 0x188c
rol eax, 0xb
xor eax, ecx
imul rax, rax, 0x7d420b0b
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov r10d, dword [rsp + 0x28]
add r10d, eax
imul r10d, r10d, 0x7d420b0b
ror r10d, 0xc
add ebx, r10d
cmp r9, rdx
jb 0x1400ae0d8
mov dword [rbp + 0x24], r10d
mov dword [rbp + 0x20], ebx
mov r14, qword [rsp + 0x38]
lea r9, [rdx + rsi]
mov rsi, qword [rsp + 0x30]
lea r15, [0x140000000]
jmp 0x1400adf9d
mov r14, qword [rsp + 0x40]
mov rdi, qword [rbp + 0x10]
xor edx, edx
sub r14, r9
je 0x1400ae1ab
movzx ecx, byte [rdx + r9]
inc rdx
add ecx, 0x7d420b0b
add ebx, ecx
add ecx, r10d
mov eax, ecx
ror ecx, 0xb
imul eax, eax, 0x188c
rol eax, 0xb
xor eax, ecx
imul rax, rax, 0x7d420b0b
mov qword [rbp + 0x10], rax
mov r10d, dword [rbp + 0x10]
shr rax, 0x20
add r10d, eax
imul r10d, r10d, 0x7d420b0b
ror r10d, 0xc
add ebx, r10d
cmp rdx, r14
jb 0x1400ae158
mov dword [rbp + 0x24], r10d
mov dword [rbp + 0x20], ebx
mov r14, qword [rbp + 0x18]
mov rsi, qword [rsp + 0x20]
mov r12, 0xfffffffffffff000
add qword [rdi + 0x10], 0xd
mov eax, dword [rsi]
and eax, 0xfffffff
mov rax, qword [rax + r15]
cmp qword [rbp + 0x20], rax
je 0x1400ae282
call fcn.14009eca8
lea r9, [rdi + 0x18]
lea rsi, [fcn.1400bd550]
and r9, 0xfffffffffffffff8
mov rbx, rax
mov qword [rdi + 0x10], rsi
mov rcx, qword [0x14017dbb0]
lea r10, [r9 + 0xfff]
and rbx, r12
and r10, r12
xor r8d, r8d
mov r11d, 0xffff
imul rcx, rcx, 0x343fd
shl r8, 0x10
shr r11, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or r8, rdx
test r11, r11
jne 0x1400ae20d
mov qword [0x14017dbb0], rcx
movabs rax, 0x8000800080008001
mov qword [r14 + 0x98], rbx
mul r8
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r8, rdx
inc r8
mov qword [r14 + 0xb0], r8
mov qword [rbp + 0x10], r11
jmp 0x1400ae279
mov rax, qword [rbp + 0x10]
mov qword [r9], rax
add r9, 8
cmp r9, r10
jb 0x1400ae26e
mov qword [rdi + 0x10], rsi
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret