Function at 0x14000252c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov r13, qword [0x1402c75e8]
mov r11, rdx
movsxd rdi, dword [0x1402c7660]
inc r13
movsxd r10, dword [0x1402c75d8]
mov r9, qword [0x1402c7648]
movzx r15d, cl
mov qword [rsp + 0x60], rdi
mov dword [rsp + 0xe0], r10d
movsxd r12, dword [rdx + r15*4]
inc r15b
movzx eax, r15b
or r12, 0x11be
mov qword [rsp + 0x78], r12
mov byte [rsp + 0xd0], r15b
mov r8d, dword [rdx + rax*4]
mov eax, 0x9126d6e5
imul r8d
add edx, r8d
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x387
movzx edx, word [0x1402c75cc]
sub r8d, eax
movzx eax, word [0x1402c7610]
movsxd rbx, r8d
mov r8d, 0xffff
add ax, r8w
mov qword [rsp + 0x68], rbx
mov word [0x1402c7610], ax
movzx eax, ax
mov qword [rsp + 0xe8], rax
mov eax, edx
add rax, rax
add dx, r8w
movsxd r8, dword [0x1402c7644]
mov ecx, dword [r11 + rax*8]
mov eax, dword [r11 + r13*4]
mov word [0x1402c75cc], dx
cmp ecx, eax
jle 0x14000262b
inc r15b
movzx eax, r15b
mov byte [rsp + 0xd0], r15b
mov eax, dword [rax*8 + 0x23d]
cmp dword [0x1402c75c0], eax
jg 0x14000263c
inc r9
mov qword [rsp + 0x70], r9
cmp r8, r9
jb 0x140002713
mov ecx, dword [0x1402c75c4]
mov eax, 0x426ca73b
movsxd rbx, dword [0x1402c7658]
mov rsi, r8
add rsi, qword [0x1402c75f8]
lea r8, [r13 + 1]
imul ecx
movzx r14d, r15b
xor rbx, r10
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1ed5
mov rdx, qword [rsp + 0x60]
movzx r11d, word [rdx + 0x11c6]
sub ecx, eax
movzx eax, word [r12 + 0x134e]
xor edx, edx
movsxd rbp, ecx
mov rcx, qword [0x1402c7648]
and rbp, rax
lea eax, [r14 + r14]
movzx eax, word [rdi + rax*2]
imul rdi, rax, 0x1b40
movzx eax, word [r12 + 0x91e]
movzx r9d, word [r12 + rbp*2 + 8]
xor r11, rax
mov eax, 0x682
div rbp
xor rbp, 0x19ed
mov rdx, rsi
mov r10, rax
movzx eax, r15b
mov qword [rsp + 0x40], r10
xor r8, rax
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbp
call fcn.140001650
mov ecx, dword [0x1402c765c]
shl ecx, 2
movsxd rdx, ecx
mov rcx, qword [rsp + 0x68]
mov byte [rdx + rcx], al
mov eax, r14d
jmp 0x140002b60
movsxd rdi, dword [0x1402c7620]
cmp edi, dword [0x1402c763c]
jle 0x1400027ec
mov rdx, qword [rsp + 0x60]
lea r14, [rdi*4 + 0x23d]
movsxd r12, r10d
movzx ebp, r15b
mov r15, rbx
lea rsi, [rdx + r12*2]
mov eax, dword [0x1402c7618]
xor edx, edx
mov ecx, 0x1d9d
mov dword [r14], eax
call fcn.140002b74
movsxd rcx, dword [0x1402c765c]
inc r12d
movsxd rbx, edi
mov byte [rcx + r15], al
mov rcx, rbx
inc dword [0x1402c765c]
movzx eax, word [rsi]
lea rsi, [rsi + 2]
movzx edx, word [0x1402c7640]
imul edx, eax
call fcn.140002b74
xor edx, edx
movsxd r13, eax
dec r13
lea r14, [r14 + 4]
mov rax, r13
inc edi
div rbx
movsxd rax, dword [0x1402c7644]
xor rdx, rax
xor rdx, rbp
sub rdx, qword [0x1402c75e0]
cmp edi, dword [0x1402c763c]
mov qword [0x1402c75e0], rdx
jg 0x140002741
mov r15b, byte [rsp + 0xd0]
mov r11, qword [rsp + 0xd8]
mov r9, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
mov dword [rsp + 0xe0], r12d
mov r10d, dword [rsp + 0xe0]
mov r12, qword [rsp + 0x78]
movzx ecx, word [0x1402c7638]
xor edx, edx
add rcx, rcx
movzx r8d, r15b
mov r14d, r8d
shl r14d, 2
imul eax, dword [r11 + rcx*8 + 0x18], 0x1e9a
mov dword [r11 + rcx*8 + 0x18], eax
movzx eax, byte [rbx + 0x6c1]
mov rbp, qword [0x1402c75f8]
mov rcx, qword [rsp + 0xe8]
imul eax, r8d
movzx ecx, word [rcx + rbp*2]
imul eax, eax, 0x1be
div ecx
movsxd rcx, eax
lea eax, [r8 + r8]
xor r9, rcx
mov qword [rsp + 0x70], r9
mov esi, dword [r11 + rax*4]
movsxd rax, r10d
movzx edi, byte [rax + rbx]
movsxd rax, dword [r14*4 + 0x23d]
or rdi, rax
mov eax, 0x2e20b43
imul dword [0x1402c75c8]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rsp + 0xe8]
movsxd r8, edx
mov rdx, rdi
movzx r9d, word [rax + r9*2 + 0x12]
lea eax, [r10 + 2]
movsxd rcx, eax
mov rax, qword [rsp + 0x60]
mov bl, byte [r11 + rcx*4]
movzx r10d, word [rax + rbp*2]
inc rbp
mov rcx, qword [rsp + 0x70]
mov rax, qword [0x1402c75f0]
sub bl, cl
mov r11d, dword [0x1402c75c0]
dec rcx
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], r10d
mov qword [rsp + 0x30], rcx
mov qword [0x1402c75f8], rbp
lea rbp, [rcx + 2]
mov dword [rsp + 0x28], r11d
mov ecx, esi
mov byte [rsp + 0x20], bl
call fcn.140004188
mov word [r12 + rbp*2], ax
mov r9, qword [0x1402c7618]
mov eax, dword [0x1402c765c]
inc eax
mov dword [0x1402c765c], eax
add eax, 0x27
movsxd rcx, eax
mov rax, qword [rsp + 0x60]
movzx ecx, word [rax + rcx*2]
movabs rax, 0xa58565110345f35
mul r9
mov eax, 0x18bf
shr rdx, 8
movzx r8d, dx
movzx edx, r9w
imul r8d, eax
inc r9
mov eax, 0xffff
mov qword [0x1402c7618], r9
add word [0x1402c75cc], ax
sub dx, r8w
call fcn.140002b74
movzx ecx, word [0x1402c75cc]
mov rdi, qword [rsp + 0xd8]
add ecx, 8
mov esi, dword [rsp + 0xe0]
mov dword [rdi + rcx*4], eax
movsxd rdx, dword [0x1402c765c]
inc esi
mov r9, qword [0x1402c75f0]
lea eax, [rdx + 5]
movsxd rcx, eax
mov rax, qword [rsp + 0xe8]
movzx r8d, word [rax + rcx*2]
lea eax, [rsi + 4]
movsxd rcx, eax
movsxd rax, dword [rdi + rcx*4]
mov rcx, qword [rsp + 0x68]
and r8, rax
mov rax, qword [0x1402c75f8]
movzx ebx, byte [rcx + rbp]
movzx r11d, word [r12 + rax*2]
movzx eax, byte [rcx + rbp + 6]
mov rcx, qword [rsp + 0xe8]
or r11, rax
lea rax, [r13 + 0x793]
movzx edx, word [rcx + rdx*2]
movzx r10d, word [rcx + rbp*4]
mov rcx, qword [0x1402c7608]
add r10, 0x1cbc
mov qword [rsp + 0x50], rdx
mov rdx, r13
mov qword [rsp + 0x48], 0x712
mov qword [rsp + 0x40], r9
mov r9d, 0xc6f
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r11
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
call fcn.140003c28
mov r10, qword [rsp + 0xe8]
xor edx, edx
mov dword [rdi + r14*4], eax
inc r15b
movzx ecx, word [0x1402c7640]
mov rax, qword [0x1402c75d0]
mov r14, qword [rsp + 0xd8]
or rax, rbp
mov rbp, qword [rsp + 0x60]
div rcx
movsxd r9, esi
xor edx, edx
movzx r8d, r15b
sub rax, r8
mov qword [rsp + 0x40], 0x171b
movzx r15d, r15b
movzx ecx, word [r10 + r9*2]
lea rbx, [r9 + r13]
div rcx
mov word [r10 + r9*2], ax
lea eax, [r15 + 4]
movzx r11d, word [rbp + r9*2]
mov r10b, byte [r12 + r8*2]
mov edi, r11d
mov r9d, dword [r14 + rax*4]
sub r10b, 0x6d
mov rax, qword [0x1402c75f8]
or r9d, 0xe18
or edi, dword [0x1402c75c4]
mov ecx, dword [r14 + rax*4 + 0x14]
mov eax, 0x3046e825
imul ecx
mov ecx, edi
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x38], edx
mov rdx, rbx
mov qword [rsp + 0x30], r11
mov dword [rsp + 0x28], r9d
mov r9d, r8d
mov byte [rsp + 0x20], r10b
call fcn.140004188
movsxd rcx, eax
mov rax, qword [rsp + 0xe8]
movzx eax, word [rax + rcx*2 + 0x4e]
movzx ecx, word [rbp + r13*2 - 2]
xor edx, edx
lea r11, [r13 - 2]
div ecx
movsxd rax, dword [0x1402c765c]
imul edx, dword [rax*4 + 0x23d]
imul edx, r15d
movsxd rax, edx
add r11, rax
movsxd rdx, esi
lea eax, [rsi + rsi]
movsxd rcx, eax
mov r8d, dword [r14 + rcx*4]
mov rcx, qword [rsp + 0x68]
movzx eax, byte [rdx + rcx]
cmp r8d, eax
jne 0x140002b5d
mov r10d, dword [0x1402c75c0]
lea r9, [rdx + rcx]
mov rax, qword [0x1402c75d8]
xor edx, edx
movsxd rcx, r8d
dec r11
div rcx
inc r9
inc r8d
imul ecx, eax, 0x109e
add ecx, r11d
imul r10d, ecx
mov dword [0x1402c75c0], r10d
movzx ecx, byte [r9]
cmp r8d, ecx
je 0x140002b28
mov eax, r15d
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret