Function at 0x14009dde4
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov rax, qword [0x14017dbf0]
test rax, rax
je 0x14009e232
mov r15, qword [0x14017dbf0]
xor eax, eax
test byte [r15], 1
mov qword [rsp + 0x38], r15
mov qword [rbp + 0x10], rax
je 0x14009e1b6
xor esi, esi
mov qword [rbp + 0x20], rsi
cmp dword [r15 + 4], eax
jbe 0x14009e1b6
lea rdi, [r15 + 0xc]
lea r14, [0x140000000]
mov qword [rbp + 0x28], rdi
mov rax, qword [0x14010bb18]
mov r9d, dword [rdi]
mov r8d, dword [rdi + 4]
shr r9, 1
mov rcx, r14
and r8d, 0xfffffff
and r9d, 0xfffffff
add r9, r14
sub rcx, rax
mov qword [rbp + 0x18], rcx
jne 0x14009ded7
xor r11d, r11d
test r8, r8
je 0x14009e196
mov edx, dword [rbp + 0x14]
mov r10d, dword [rbp + 0x10]
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 + 0x18], rax
mov edx, dword [rbp + 0x18]
shr rax, 0x20
add edx, eax
imul edx, edx, 0x7d420b0b
ror edx, 0xc
add r10d, edx
cmp r11, r8
jb 0x14009de83
mov dword [rbp + 0x14], edx
mov dword [rbp + 0x10], r10d
jmp 0x14009e196
movsxd rdx, dword [0x14000003c]
lea rax, [r9 + r8]
mov qword [rsp + 0x30], rax
lea rax, [0x1400000b0]
add rdx, rax
mov eax, r9d
mov r12d, dword [rdx + 4]
sub eax, r14d
lea rdi, [r8 + rax]
mov r8d, dword [rdx]
mov r10d, eax
mov r13, rdi
and r10, 0xfffffffffffff000
mov ebx, eax
and r13, 0xfffffffffffff000
add r8, r14
sub rbx, r10
sub rdi, r13
add r12, r8
mov qword [rsp + 0x28], rdi
jmp 0x14009df3a
mov eax, dword [r8]
cmp rax, r10
jae 0x14009df3f
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r12
jne 0x14009df2b
xor r11d, r11d
cmp r8, r12
je 0x14009df79
mov eax, dword [r8]
cmp rax, r10
jne 0x14009df79
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x14009df79
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rbx
jae 0x14009df79
inc r11
add rdx, 2
cmp r11, rcx
jne 0x14009df60
mov r10d, dword [rbp + 0x14]
mov ebx, dword [rbp + 0x10]
mov r15, qword [rbp + 0x18]
cmp r8, r12
je 0x14009e12a
mov eax, dword [r8]
cmp rax, r13
ja 0x14009e12a
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x14009dfc6
add r8, rcx
cmp r8, r12
je 0x14009e12a
mov eax, dword [r8]
cmp rax, r13
ja 0x14009e12a
xor r11d, r11d
jmp 0x14009df99
mov eax, dword [r8]
cmp rax, r13
jne 0x14009dfe2
movzx eax, word [r8 + r11*2 + 8]
and eax, 0xfff
cmp rax, rdi
jae 0x14009e12a
mov rax, r11
mov ecx, 0xf000
inc r11
test word [r8 + rax*2 + 8], cx
je 0x14009df84
movzx edx, word [r8 + rax*2 + 8]
mov edi, edx
and edi, 0xfff
add edi, dword [r8]
add rdi, r14
xor r14d, r14d
mov rsi, rdi
sub rsi, r9
je 0x14009e067
movzx ecx, byte [r14 + r9]
inc r14
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 + 0x18], rax
mov r10d, dword [rbp + 0x18]
shr rax, 0x20
add r10d, eax
imul r10d, r10d, 0x7d420b0b
ror r10d, 0xc
add ebx, r10d
cmp r14, rsi
jb 0x14009e014
mov dword [rbp + 0x14], r10d
mov dword [rbp + 0x10], ebx
shr edx, 0xc
cmp edx, 3
je 0x14009e07d
sub edx, 0xa
neg edx
sbb r9d, r9d
add r9d, 3
jmp 0x14009e083
mov r9d, 2
mov rax, qword [rdi]
mov rdx, r15
neg rdx
mov qword [rbp + 0x18], rax
sub r9d, 2
je 0x14009e0af
dec r9d
je 0x14009e0a1
or rdx, 0xffffffffffffffff
jmp 0x14009e0b7
add rax, rdx
mov edx, 8
mov qword [rbp + 0x18], rax
jmp 0x14009e0b7
add dword [rbp + 0x18], edx
mov edx, 4
xor r9d, r9d
test rdx, rdx
je 0x14009e115
movzx ecx, byte [rbp + r9 + 0x18]
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 + 0x20], rax
shr rax, 0x20
mov r10d, dword [rsp + 0x20]
add r10d, eax
imul r10d, r10d, 0x7d420b0b
ror r10d, 0xc
add ebx, r10d
cmp r9, rdx
jb 0x14009e0bf
mov dword [rbp + 0x14], r10d
mov dword [rbp + 0x10], ebx
lea r9, [rdx + rdi]
mov rdi, qword [rsp + 0x28]
lea r14, [0x140000000]
jmp 0x14009df84
mov rdi, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
xor edx, edx
sub rdi, r9
je 0x14009e18e
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 + 0x18], rax
mov r10d, dword [rbp + 0x18]
shr rax, 0x20
add r10d, eax
imul r10d, r10d, 0x7d420b0b
ror r10d, 0xc
add ebx, r10d
cmp rdx, rdi
jb 0x14009e13b
mov dword [rbp + 0x14], r10d
mov dword [rbp + 0x10], ebx
mov rsi, qword [rbp + 0x20]
mov rdi, qword [rbp + 0x28]
mov eax, dword [r15 + 4]
inc rsi
add rdi, 8
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], rdi
cmp rsi, rax
jb 0x14009de42
mov rax, qword [rbp + 0x10]
cmp rax, qword [0x14017dbf8]
je 0x14009e232
mov rax, qword [0x14017dbb0]
xor ebx, ebx
mov r8d, 0xffff
imul rax, rax, 0x343fd
shl rbx, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or rbx, rdx
test r8, r8
jne 0x14009e1ce
mov qword [0x14017dbb0], rax
call fcn.14009eca8
mov r11, rax
movabs rax, 0x8000800080008001
and r11, 0xfffffffffffff000
mul rbx
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub rbx, rdx
mov rdx, r11
lea rcx, [rbx + 1]
call fcn.1400bd550
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret