Function at 0x140010ea8
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
movsxd r9, dword [rsp + 0x110]
mov r13, r8
movsxd r11, dword [0x14016aa8c]
mov rsi, rcx
mov rbx, rdx
lea eax, [r9 + r9]
movsxd r14, dword [r8 + r11*4]
movsxd r10, eax
movsxd rax, dword [rdx + r10*4]
xor rax, qword [0x14016aa90]
mov r10d, dword [rdx]
mov edx, dword [0x14016aa84]
mov qword [rsp + 0x90], rax
mov word [rsp + 0x100], dx
lea eax, [r10 + 0xa]
movsxd r8, eax
mov eax, dword [r13 + r8*4]
sub eax, dword [0x14016aab0]
cdqe
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x118]
movzx r15d, byte [rax + 0xe21]
mov rax, qword [0x14016aa30]
sub r15, qword [rax + 0x3e10]
lea eax, [r10 + 4]
movsxd rcx, eax
mov rax, qword [r14]
movsxd rdi, dword [r13 + rcx*4]
mov qword [rsp + 0x70], rdi
movzx ebp, word [rdi + rax*8]
cmp ebp, dword [0x14016aa80]
mov dword [rsp + 0x54], ebp
jg 0x1400112f0
mov ecx, ebp
mov qword [rsp + 0x88], r9
shl rcx, 3
lea rax, [rsi + rbp*4]
mov r12d, ebp
mov qword [rsp + 0x58], rcx
shl r12, 5
mov r8, r9
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x68], rax
mov rax, qword [0x14016aa78]
mov rcx, qword [0x14016aa38]
movsxd rsi, ebp
sub rcx, rsi
movsxd rdx, edx
movsxd r8, dword [rax + r8*4]
mov r9, rsi
xor r8, qword [rsp + 0x78]
call fcn.1400126c8
mov ecx, dword [0x14016aa8c]
shl ecx, 2
movsxd rdx, ecx
mov dword [r13 + rdx*4], eax
mov rax, qword [rsp + 0x68]
movsxd rcx, dword [0x14016aab4]
movzx r8d, word [rax]
mov eax, ebp
cdq
and r8d, 0x1bef
idiv dword [0x14016aa80]
mov rdx, rsi
movsxd r9, eax
call fcn.1400126c8
mov rcx, qword [r14]
xor edx, edx
add r14, 8
mov word [r15 + rcx*2], ax
dec qword [r14]
mov eax, dword [rbx]
mov r8, qword [r14]
add eax, eax
mov rcx, qword [rsp + 0xf0]
cdqe
movzx eax, word [rcx + rax*2]
sub rax, qword [0x14016aa38]
movzx ecx, word [rdi + r8*2]
div rcx
mov word [rdi + r8*2], ax
inc qword [r14]
mov eax, dword [rbx]
mov r8, qword [r14]
lea eax, [rax*4 + 0xa]
movsxd rcx, eax
movzx eax, word [rdi + r8*2 + 0x50]
movsxd r8, dword [0x14016aab4]
and eax, 0x1e78
movzx edx, word [rdi + rcx*2]
mov rdi, qword [0x14016aa90]
add edx, 0xbdc
add eax, edx
xor dword [0x14016aab0], eax
movsxd rax, dword [r13]
lea r13, [r13 - 4]
mov rcx, qword [r14]
mov rbx, qword [r12 + r14]
movzx r9d, word [r15 + rax*2]
movzx r11d, word [r15 + rcx*4]
mov rax, qword [rsp + 0x108]
lea r10, [rsi + rbx]
mov esi, 0x1f9
movsxd rax, dword [rax + 0x3b58]
xor r11, rax
mov eax, dword [r13 + rcx*4 + 0x18]
add eax, dword [rsp + 0x110]
movsxd rcx, eax
mov eax, 0x9ed3b7b9
imul ebp
mov qword [rsp + 0x48], rcx
mov ecx, 0x92
mov qword [rsp + 0x40], r11
add edx, ebp
sar edx, 0xc
mov eax, edx
mov qword [rsp + 0x38], r10
shr eax, 0x1f
add eax, edx
mov word [rsp + 0x30], si
cdqe
lea rdx, [rdi - 0x143d]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call fcn.140012d60
mov rcx, qword [r14]
mov rbx, qword [rsp + 0xf8]
add rcx, rcx
mov dword [rbx + rcx*8], eax
mov rcx, qword [0x14016aa48]
mov rax, qword [rsp + 0x58]
movsxd r8, dword [r14 + rcx*8]
mov rdx, r8
mov dword [rsp + 0x50], r8d
cmp r8, qword [rax + r14]
jae 0x14001129e
movzx r9d, word [rsp + 0x100]
mov eax, ebp
mov rsi, qword [rsp + 0xf8]
mov edi, ebp
mov r12, qword [rsp + 0x58]
mov rbx, rdx
imul eax, ebp
shl rbx, 5
add rbx, 0x191c
sub edi, r8d
mov ebp, eax
mov eax, dword [0x14016aa8c]
add eax, 9
movsxd rcx, eax
mov rax, qword [rcx*8 + 0x191c]
or rax, 0x311
movsxd rcx, edi
add rax, r9
mov r9, qword [rsp + 0x88]
xor qword [0x14016aa60], rax
mov rax, qword [r14]
mov qword [r14 + rax*8], rcx
movsxd rax, dword [rsi]
movsxd r10, dword [0x14016aab4]
mov rcx, qword [rsp + 0x108]
and r10, rdx
mov rdx, qword [rsp + 0x78]
movsxd rcx, dword [rcx + rax*4]
inc qword [r14]
sub rdx, rcx
mov rax, qword [r14]
mov rcx, r10
mov r8, qword [rbx]
sub r8, qword [r14 + rax*8]
mov rax, qword [0x14016aa30]
sub r9, qword [r12 + rax]
call fcn.1400126c8
mov rcx, qword [r14]
lea rbx, [rbx + 0x20]
movsxd r9, dword [rsp + 0x50]
dec edi
movsxd rdx, eax
mov rax, qword [0x14016aa30]
mov qword [rax + rcx*8], rdx
mov rax, r9
or rax, 0x5d4
or qword [0x14016aa90], rax
inc qword [r14]
mov edx, dword [rsi]
mov eax, edx
mov rcx, qword [r14]
shl eax, 2
movsxd r8, eax
lea rax, [rcx + rcx*2]
mov rcx, qword [rsp + 0x90]
movzx ecx, word [rcx + rax*2]
mov eax, ebp
sub eax, ecx
lea ecx, [rdx + rdx]
movsxd rdx, ecx
mov rcx, qword [rsp + 0x118]
movzx ecx, byte [rdx + rcx]
cdq
idiv ecx
xor word [r15 + r8*2], dx
mov rdx, qword [rsp + 0x70]
movsxd rax, dword [rsi]
movsxd rcx, dword [0x14016aa8c]
movzx eax, word [rdx + rax*2]
cdq
idiv r9d
inc r9d
or dword [r13 + rcx*4], edx
movsxd rdx, r9d
mov dword [rsp + 0x50], r9d
movzx r9d, word [rsp + 0x100]
cmp rdx, qword [r12 + r14]
jb 0x140011163
mov ebp, dword [rsp + 0x54]
mov r12, qword [rsp + 0x80]
mov rcx, qword [0x14016aa48]
mov rbx, qword [rsp + 0xf8]
mov rax, qword [rsp + 0x58]
add qword [rsp + 0x68], 4
inc ebp
mov rdi, qword [rsp + 0x70]
add r12, 0x20
add rax, 8
mov dword [rsp + 0x54], ebp
cmp ebp, dword [0x14016aa80]
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x58], rax
jg 0x1400112df
mov edx, dword [0x14016aa84]
mov r8, qword [rsp + 0x88]
jmp 0x140010f9e
mov r11d, dword [0x14016aa8c]
mov rsi, qword [rsp + 0xf0]
jmp 0x1400112f7
mov rcx, qword [0x14016aa48]
inc rcx
xor edx, edx
mov qword [0x14016aa48], rcx
dec r11d
movzx eax, word [rdi + rcx*2]
div rcx
mov dword [0x14016aa8c], r11d
lea eax, [r11*4 + 0xb]
mov qword [0x14016aa48], rdx
movsxd r8, eax
mov rax, qword [0x14016aa98]
movzx ecx, byte [rax + rdx]
mov eax, 0x7a005e81
add ecx, 0x17c1
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0xc
xor word [r15 + r8*2], cx
dec qword [r14]
mov r9, qword [r14]
mov rcx, qword [0x14016aa78]
movzx eax, word [rsi + r9*2 + 0x12]
xor eax, dword [rcx + 0x56d4]
movzx ecx, word [r15 + r9*8]
cdq
idiv ecx
mov r8d, eax
mov eax, 0x30894435
imul r8d
sar edx, 0xa
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x1519
sub r8d, ecx
movzx ecx, word [r15 + r9*4]
movzx eax, r8w
imul ecx, eax
mov eax, 0x119f
mov word [r15 + r9*4], cx
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret