Function at 0x1400036f0
Capabilities:
Encode data using xor

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