Function at 0x140160380
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
mov ebp, 2
lea rsi, [rdx + rdx]
xor r15d, r15d
mov qword [rsp + 0x160], rbp
mov qword [rsp + 0x168], r15
mov ebx, ebp
mov edi, ebp
nop word [rax + rax]
movzx r8d, word [rcx + 2]
lea rax, [rdi - 2]
and eax, 3
lea edx, [rbx - 2]
and edx, 4
lea r11, [rsp + 0x10]
shl edx, 2
add rdx, rax
lea r11, [r11 + rdx*8]
movzx edx, word [rcx]
mov r10d, edx
add edx, r8d
sub r10, r8
movzx r8d, word [rcx + 6]
shl r10, 0x20
add r10, rdx
movzx edx, word [rcx + 4]
mov r9d, edx
add edx, r8d
sub r9, r8
movzx r8d, word [rcx + 0xa]
shl r9, 0x20
add r9, rdx
movzx edx, word [rcx + 8]
lea rax, [r9 + r10]
sub r10, r9
mov qword [r11 + 0x20], r10
mov r10d, edx
add edx, r8d
mov qword [r11], rax
sub r10, r8
movzx r8d, word [rcx + 0xe]
shl r10, 0x20
add r10, rdx
movzx edx, word [rcx + 0xc]
mov r9d, edx
add rcx, rsi
add edx, r8d
sub r9, r8
shl r9, 0x20
add r9, rdx
lea edx, [rbx - 1]
movzx r8d, word [rcx + 2]
and edx, 4
shl edx, 2
lea rax, [r9 + r10]
sub r10, r9
mov qword [r11 + 0x60], r10
mov qword [r11 + 0x40], rax
lea rax, [rdi - 1]
and eax, 3
lea r11, [rsp + 0x10]
add rdx, rax
lea r11, [r11 + rdx*8]
movzx edx, word [rcx]
mov r10d, edx
add edx, r8d
sub r10, r8
movzx r8d, word [rcx + 6]
shl r10, 0x20
add r10, rdx
movzx edx, word [rcx + 4]
mov r9d, edx
add edx, r8d
sub r9, r8
movzx r8d, word [rcx + 0xa]
shl r9, 0x20
add r9, rdx
movzx edx, word [rcx + 8]
lea rax, [r9 + r10]
sub r10, r9
mov qword [r11], rax
mov qword [r11 + 0x20], r10
mov r10d, edx
sub r10, r8
add edx, r8d
movzx r8d, word [rcx + 0xe]
shl r10, 0x20
add r10, rdx
movzx edx, word [rcx + 0xc]
mov r9d, edx
add edx, r8d
sub r9, r8
shl r9, 0x20
add rcx, rsi
add r9, rdx
mov edx, ebx
and edx, 4
shl edx, 2
movzx r8d, word [rcx + 2]
lea rax, [r9 + r10]
sub r10, r9
mov qword [r11 + 0x40], rax
mov rax, rdi
mov qword [r11 + 0x60], r10
and eax, 3
add rdx, rax
lea r11, [rsp + 0x10]
lea r11, [r11 + rdx*8]
movzx edx, word [rcx]
mov r10d, edx
add edx, r8d
sub r10, r8
movzx r8d, word [rcx + 6]
shl r10, 0x20
add r10, rdx
movzx edx, word [rcx + 4]
mov r9d, edx
add edx, r8d
sub r9, r8
shl r9, 0x20
add r9, rdx
movzx edx, word [rcx + 0xa]
lea rax, [r9 + r10]
sub r10, r9
mov qword [r11], rax
movzx eax, word [rcx + 8]
mov r9d, eax
mov qword [r11 + 0x20], r10
sub r9, rdx
lea r10, [rsp + 0x10]
shl r9, 0x20
add r9, rax
movzx eax, word [rcx + 0xc]
add r9, rdx
mov r8d, eax
movzx edx, word [rcx + 0xe]
add rcx, rsi
sub r8, rdx
shl r8, 0x20
add r8, rax
add r8, rdx
lea edx, [rbx + 1]
and edx, 4
shl edx, 2
lea rax, [r8 + r9]
sub r9, r8
mov qword [r11 + 0x40], rax
lea rax, [rdi + 1]
mov qword [r11 + 0x60], r9
and eax, 3
add rdx, rax
movzx eax, word [rcx]
lea r10, [r10 + rdx*8]
mov r9d, eax
movzx edx, word [rcx + 2]
sub r9, rdx
shl r9, 0x20
add r9, rax
movzx eax, word [rcx + 4]
add r9, rdx
mov r8d, eax
movzx edx, word [rcx + 6]
sub r8, rdx
shl r8, 0x20
add r8, rax
add r8, rdx
movzx edx, word [rcx + 0xa]
lea rax, [r8 + r9]
sub r9, r8
mov qword [r10], rax
mov qword [r10 + 0x20], r9
movzx eax, word [rcx + 8]
add ebx, 4
mov r9d, eax
add rdi, 4
sub r9, rdx
shl r9, 0x20
add r9, rax
movzx eax, word [rcx + 0xc]
add r9, rdx
mov r8d, eax
movzx edx, word [rcx + 0xe]
add rcx, rsi
sub r8, rdx
shl r8, 0x20
add r8, rax
add r8, rdx
lea rax, [r8 + r9]
sub r9, r8
mov qword [r10 + 0x40], rax
lea eax, [rbx - 2]
mov qword [r10 + 0x60], r9
cmp eax, 8
jl 0x1401603c0
mov r13, rbp
lea r14, [rsp + 0x70]
mov ebp, 0xffffffff
movabs r12, 0x100000001
nop
mov rax, qword [r14 - 0x58]
mov rbx, qword [r14 - 0x60]
mov rdx, qword [r14 - 0x50]
lea rdi, [rax + rbx]
sub rbx, rax
mov rax, qword [r14 - 0x48]
lea rcx, [rax + rdx]
sub rdx, rax
lea r11, [rcx + rdi]
sub rdi, rcx
mov r9, r11
mov qword [r14 - 0x50], rdi
shr r9, 0x1f
lea r10, [rdx + rbx]
mov qword [r14 - 0x60], r11
sub rbx, rdx
mov qword [r14 - 0x58], r10
and r9, r12
mov qword [r14 - 0x48], rbx
imul r9, rbp
mov rax, rbx
mov rdx, rdi
shr rax, 0x1f
mov r8, r10
and rax, r12
shr rdx, 0x1f
imul rax, rbp
and rdx, r12
shr r8, 0x1f
imul rdx, rbp
and r8, r12
lea rsi, [r9 + r11]
lea rcx, [rax + rbx]
xor rsi, r9
mov rbx, qword [r14 - 0x40]
xor rcx, rax
imul r8, rbp
lea rax, [rdx + rdi]
add rsi, r15
xor rax, rdx
mov rdx, qword [r14 - 0x30]
add rcx, rax
lea rax, [r8 + r10]
xor rax, r8
add rcx, rax
mov rax, qword [r14 - 0x38]
add rsi, rcx
lea rdi, [rax + rbx]
sub rbx, rax
mov rax, qword [r14 - 0x28]
lea rcx, [rax + rdx]
sub rdx, rax
lea r11, [rcx + rdi]
sub rdi, rcx
mov r9, r11
mov qword [r14 - 0x40], r11
shr r9, 0x1f
lea r10, [rdx + rbx]
mov qword [r14 - 0x30], rdi
sub rbx, rdx
mov qword [r14 - 0x38], r10
and r9, r12
mov qword [r14 - 0x28], rbx
mov rax, rbx
mov rdx, rdi
shr rax, 0x1f
mov r8, r10
and rax, r12
shr rdx, 0x1f
imul rax, rbp
imul r9, rbp
lea rcx, [rax + rbx]
shr r8, 0x1f
xor rcx, rax
and rdx, r12
imul rdx, rbp
and r8, r12
imul r8, rbp
lea rax, [rdx + rdi]
xor rax, rdx
add rcx, rax
mov rbx, qword [r14 - 0x20]
lea rax, [r8 + r10]
mov rdx, qword [r14 - 0x10]
xor rax, r8
add rcx, rax
lea rax, [r9 + r11]
xor rax, r9
add rsi, rax
mov rax, qword [r14 - 0x18]
add rsi, rcx
lea rdi, [rax + rbx]
sub rbx, rax
mov rax, qword [r14 - 8]
lea rcx, [rax + rdx]
sub rdx, rax
lea r11, [rcx + rdi]
sub rdi, rcx
mov r9, r11
mov qword [r14 - 0x10], rdi
shr r9, 0x1f
lea r10, [rdx + rbx]
mov qword [r14 - 0x20], r11
sub rbx, rdx
mov qword [r14 - 0x18], r10
and r9, r12
mov qword [r14 - 8], rbx
imul r9, rbp
mov rax, rbx
mov rdx, rdi
shr rax, 0x1f
mov r8, r10
and rax, r12
shr rdx, 0x1f
imul rax, rbp
and rdx, r12
shr r8, 0x1f
imul rdx, rbp
lea rcx, [rax + rbx]
and r8, r12
mov rbx, qword [r14]
xor rcx, rax
imul r8, rbp
lea rax, [rdx + rdi]
xor rax, rdx
mov rdx, qword [r14 + 0x10]
add rcx, rax
lea rax, [r8 + r10]
xor rax, r8
add rcx, rax
lea rax, [r9 + r11]
xor rax, r9
add rsi, rax
mov rax, qword [r14 + 8]
add rsi, rcx
lea rdi, [rax + rbx]
sub rbx, rax
mov rax, qword [r14 + 0x18]
lea rcx, [rax + rdx]
sub rdx, rax
lea r11, [rcx + rdi]
sub rdi, rcx
mov r9, r11
mov qword [r14], r11
shr r9, 0x1f
lea r10, [rdx + rbx]
mov qword [r14 + 0x10], rdi
sub rbx, rdx
mov qword [r14 + 8], r10
and r9, r12
mov qword [r14 + 0x18], rbx
mov r8, r10
mov rdx, rdi
shr r8, 0x1f
mov rax, rbx
shr rdx, 0x1f
and r8, r12
and rdx, r12
imul r8, rbp
imul rdx, rbp
imul r9, rbp
shr rax, 0x1f
and rax, r12
lea r15, [r9 + r11]
imul rax, rbp
xor r15, r9
lea r14, [r14 + 0x80]
add r15, rsi
lea rcx, [rax + rbx]
xor rcx, rax
lea rax, [rdx + rdi]
xor rax, rdx
add rcx, rax
lea rax, [r8 + r10]
xor rax, r8
add rcx, rax
add r15, rcx
sub r13, 1
jne 0x140160660
mov rbp, qword [rsp + 0x160]
lea r14, [rsp + 0xd0]
mov r12, qword [rsp + 0x168]
movabs r13, 0x100000001
mov qword [rsp], r15
mov r15d, 0xffffffff
nop dword [rax + rax]
mov rax, qword [r14 - 0x80]
mov rbx, qword [r14 - 0xc0]
mov rdx, qword [r14 - 0x40]
lea rdi, [rbx + rax]
sub rbx, rax
mov rax, qword [r14]
lea rcx, [rdx + rax]
sub rdx, rax
lea r11, [rcx + rdi]
sub rdi, rcx
mov r10, r11
shr r10, 0x1f
lea r9, [rdx + rbx]
and r10, r13
sub rbx, rdx
mov r8, r9
shr r8, 0x1f
mov rax, rbx
shr rax, 0x1f
and r8, r13
and rax, r13
mov rdx, rdi
imul rax, r15
imul r8, r15
imul r10, r15
lea rcx, [rax + rbx]
shr rdx, 0x1f
mov rbx, qword [r14 - 0xb8]
xor rcx, rax
and rdx, r13
imul rdx, r15
lea rsi, [r10 + r11]
xor rsi, r10
add rsi, r12
lea rax, [rdx + rdi]
xor rax, rdx
mov rdx, qword [r14 - 0x38]
add rcx, rax
lea rax, [r8 + r9]
xor rax, r8
add rcx, rax
mov rax, qword [r14 - 0x78]
add rsi, rcx
lea rdi, [rbx + rax]
sub rbx, rax
mov rax, qword [r14 + 8]
lea rcx, [rdx + rax]
sub rdx, rax
lea r11, [rcx + rdi]
sub rdi, rcx
mov r10, r11
shr r10, 0x1f
lea r9, [rdx + rbx]
and r10, r13
sub rbx, rdx
mov r8, r9
shr r8, 0x1f
mov rax, rbx
shr rax, 0x1f
and r8, r13
and rax, r13
mov rdx, rdi
imul rax, r15
imul r8, r15
imul r10, r15
lea rcx, [rax + rbx]
shr rdx, 0x1f
xor rcx, rax
and rdx, r13
imul rdx, r15
lea rax, [rdx + rdi]
xor rax, rdx
add rcx, rax
lea rax, [r8 + r9]
xor rax, r8
add rcx, rax
lea rax, [r10 + r11]
xor rax, r10
add rsi, rax
mov rax, qword [r14 - 0x70]
add rsi, rcx
mov rbx, qword [r14 - 0xb0]
mov rdx, qword [r14 - 0x30]
lea r14, [r14 + 0x20]
lea rdi, [rbx + rax]
sub rbx, rax
mov rax, qword [r14 - 0x10]
lea rcx, [rdx + rax]
sub rdx, rax
lea r11, [rcx + rdi]
sub rdi, rcx
mov r10, r11
shr r10, 0x1f
lea r9, [rdx + rbx]
and r10, r13
sub rbx, rdx
mov r8, r9
shr r8, 0x1f
mov rax, rbx
shr rax, 0x1f
and r8, r13
and rax, r13
mov rdx, rdi
imul rax, r15
imul r8, r15
imul r10, r15
lea rcx, [rax + rbx]
shr rdx, 0x1f
mov rbx, qword [r14 - 0xc8]
xor rcx, rax
and rdx, r13
imul rdx, r15
lea rax, [rdx + rdi]
xor rax, rdx
mov rdx, qword [r14 - 0x48]
add rcx, rax
lea rax, [r8 + r9]
xor rax, r8
add rcx, rax
lea rax, [r10 + r11]
xor rax, r10
add rsi, rax
mov rax, qword [r14 - 0x88]
add rsi, rcx
lea rdi, [rbx + rax]
sub rbx, rax
mov rax, qword [r14 - 8]
lea rcx, [rdx + rax]
sub rdx, rax
lea r11, [rcx + rdi]
sub rdi, rcx
mov r10, r11
shr r10, 0x1f
lea r9, [rdx + rbx]
and r10, r13
sub rbx, rdx
mov r8, r9
shr r8, 0x1f
mov rax, rbx
shr rax, 0x1f
and r8, r13
and rax, r13
mov rdx, rdi
imul rax, r15
imul r10, r15
imul r8, r15
lea rcx, [rax + rbx]
shr rdx, 0x1f
xor rcx, rax
and rdx, r13
imul rdx, r15
lea r12, [r10 + r11]
xor r12, r10
add r12, rsi
lea rax, [rdx + rdi]
xor rax, rdx
add rcx, rax
lea rax, [r8 + r9]
xor rax, r8
add rcx, rax
add r12, rcx
sub rbp, 1
jne 0x140160910
mov r8d, dword [rsp + 0x10]
mov rax, r12
add r8d, dword [rsp + 0x50]
add r8d, dword [rsp + 0x90]
add r8d, dword [rsp + 0xd0]
mov r15, qword [rsp]
mov rbx, qword [rsp + 0x150]
shr rax, 0x20
mov ecx, r12d
add rax, rcx
mov rcx, r15
sub rax, r8
shr rcx, 0x20
shl rax, 0x20
add rax, rcx
mov ecx, r15d
add rax, rcx
sub rax, r8
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret