Function at 0x140016950
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
mov rsi, qword [r8]
lea rdi, [rcx + 2]
mov r9, qword [r8 + 0x10]
mov rbx, rdx
mov r11, qword [r8 + 8]
sub rbx, rcx
mov ebp, 3
nop
mov r8, r11
imul r8, rsi
mov r10, r8
imul r10, rsi
lea rax, [r11 + r10]
add rax, r9
mov r9, r10
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi - 2]
mov word [rdi - 2], ax
imul r9, rsi
lea rax, [rdx + r9]
add rax, r8
mov r8, r9
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi]
mov word [rdi], ax
imul r8, rsi
lea rax, [rdx + r8]
add rax, r10
mov r10, r8
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 2]
mov word [rdi + 2], ax
imul r10, rsi
lea rax, [rdx + r10]
add rax, r9
mov r9, r10
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 4]
mov word [rdi + 4], ax
imul r9, rsi
mov r11, r9
imul r11, rsi
lea rax, [rdx + r9]
add rax, r8
mov r8, r11
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 6]
mov word [rdi + 6], ax
lea rax, [rdx + r11]
add rax, r10
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 8]
mov word [rdi + 8], ax
imul r8, rsi
lea rax, [rdx + r8]
add rax, r9
mov r9, r8
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 0xa]
mov word [rdi + 0xa], ax
imul r9, rsi
lea rax, [rdx + r9]
mov r10, r9
add rax, r11
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 0xc]
mov word [rdi + 0xc], ax
imul r10, rsi
lea rax, [r10 + r8]
mov r8, r10
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 0xe]
mov word [rdi + 0xe], ax
imul r8, rsi
lea rax, [r8 + r9]
mov r9, r8
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 0x10]
mov word [rdi + 0x10], ax
imul r9, rsi
lea rax, [r9 + r10]
mov r10, r9
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 0x12]
mov word [rdi + 0x12], ax
imul r10, rsi
lea rax, [r10 + r8]
mov r8, r10
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 0x14]
mov word [rdi + 0x14], ax
imul r8, rsi
lea rax, [r8 + r9]
mov r9, r8
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 0x16]
mov word [rdi + 0x16], ax
imul r9, rsi
lea rax, [r9 + r10]
mov r10, r9
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi + 0x18]
imul r10, rsi
mov word [rdi + 0x18], ax
lea rax, [r10 + r8]
add rax, rdx
mov rdx, rax
shr rdx, 0x20
shl rax, 0x20
lea rdi, [rdi + 0x2a]
or rdx, rax
mov r8, r10
movzx eax, dx
xor ax, word [rbx + rdi - 0x10]
mov word [rdi - 0x10], ax
imul r8, rsi
lea rax, [r8 + r9]
mov r9, r8
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi - 0xe]
mov word [rdi - 0xe], ax
imul r9, rsi
lea rax, [r9 + r10]
mov r10, r9
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi - 0xc]
mov word [rdi - 0xc], ax
imul r10, rsi
lea rax, [r10 + r8]
mov r8, r10
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi - 0xa]
mov word [rdi - 0xa], ax
imul r8, rsi
mov r11, r8
imul r11, rsi
lea rax, [r8 + r9]
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi - 8]
mov word [rdi - 8], ax
lea rax, [r11 + r10]
add rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
or rdx, rax
movzx eax, dx
xor ax, word [rbx + rdi - 6]
mov word [rdi - 6], ax
lea rax, [r8 + rdx]
mov rdx, r11
imul rdx, rsi
add rdx, rax
mov r9, rdx
shl rdx, 0x20
shr r9, 0x20
or r9, rdx
movzx eax, r9w
xor ax, word [rbx + rdi - 4]
mov word [rdi - 4], ax
sub rbp, 1
jne 0x140016980
mov rbx, qword [rsp + 8]
xor eax, eax
mov rbp, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov word [rcx + 0x7e], ax
mov rax, rcx
ret