Function at 0x1800353f0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
mov edi, dword [rsp + 0x50]
mov ebp, 0x100
movzx ebx, r9w
mov rsi, rdx
sub ebx, 0xffffff80
mov r14, rcx
shr ebx, 8
sub bp, bx
mov dword [rsp + 0x48], ebp
cmp edi, 4
jb 0x180035653
mov qword [rsp + 0x30], r12
mov r12, rcx
mov qword [rsp + 0x38], r13
sub r12, rdx
mov qword [rsp + 0x40], r15
mov r13d, edi
mov r15, r8
movzx eax, bp
sub r15, rdx
mov ebp, eax
shr r13, 2
nop word [rax + rax]
mov r10d, dword [r8]
mov r9d, r10d
mov edx, dword [rsi]
mov ecx, r10d
shr r9d, 8
and ecx, 0xff00ff
and r9d, 0xffff00ff
shr r10d, 8
mov eax, edx
movzx r11d, bx
shr eax, 8
and r10d, 0xff00ff
and eax, 0xffff00ff
imul r9d, r11d
imul eax, ebp
imul ecx, r11d
imul r10d, r11d
add r9d, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, ebp
and edx, 0xff00ff
imul edx, ebp
add ecx, eax
add r10d, edx
shr ecx, 8
xor r9d, ecx
and r9d, 0xff00ff
xor r9d, r10d
mov dword [r14], r9d
mov r10d, dword [r15 + rsi + 4]
mov r9d, r10d
mov edx, dword [rsi + 4]
mov ecx, r10d
shr r9d, 8
and ecx, 0xff00ff
and r9d, 0xffff00ff
imul ecx, r11d
imul r9d, r11d
mov eax, edx
shr eax, 8
and eax, 0xffff00ff
shr r10d, 8
imul eax, ebp
and r10d, 0xff00ff
imul r10d, r11d
add r9d, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, ebp
and edx, 0xff00ff
imul edx, ebp
add ecx, eax
shr ecx, 8
add r10d, edx
xor r9d, ecx
and r9d, 0xff00ff
xor r9d, r10d
mov dword [r12 + rsi + 4], r9d
mov r10d, dword [r15 + rsi + 8]
mov r9d, r10d
mov edx, dword [rsi + 8]
mov ecx, r10d
shr r9d, 8
and ecx, 0xff00ff
and r9d, 0xffff00ff
imul ecx, r11d
imul r9d, r11d
mov eax, edx
shr eax, 8
and eax, 0xffff00ff
imul eax, ebp
add r9d, eax
mov eax, edx
and eax, 0xff00ff
imul eax, ebp
add ecx, eax
shr ecx, 8
xor r9d, ecx
and r9d, 0xff00ff
shr r10d, 8
and r10d, 0xff00ff
shr edx, 8
imul r10d, r11d
and edx, 0xff00ff
imul edx, ebp
add r8, 0x10
add r14, 0x10
add edi, 0xfffffffc
add r10d, edx
xor r9d, r10d
mov dword [r12 + rsi + 8], r9d
mov r10d, dword [r15 + rsi + 0xc]
mov r9d, r10d
mov edx, dword [rsi + 0xc]
mov ecx, r10d
shr r9d, 8
mov eax, edx
shr eax, 8
and r9d, 0xffff00ff
and eax, 0xffff00ff
imul r9d, r11d
imul eax, ebp
and ecx, 0xff00ff
shr r10d, 8
imul ecx, r11d
and r10d, 0xff00ff
imul r10d, r11d
add r9d, eax
mov eax, edx
shr edx, 8
and eax, 0xff00ff
imul eax, ebp
and edx, 0xff00ff
imul edx, ebp
add ecx, eax
shr ecx, 8
add r10d, edx
xor r9d, ecx
and r9d, 0xff00ff
xor r9d, r10d
mov dword [r12 + rsi + 0xc], r9d
add rsi, 0x10
sub r13, 1
jne 0x180035450
mov ebp, dword [rsp + 0x48]
mov r15, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x30]
test edi, edi
je 0x1800356ee
sub rsi, r8
movzx r11d, bp
sub r14, r8
movzx ebx, bx
nop dword [rax + rax]
mov edx, dword [r8]
mov eax, edx
mov r9d, dword [rsi + r8]
lea r8, [r8 + 4]
shr eax, 8
mov r10d, r9d
shr r10d, 8
and eax, 0xffff00ff
and r10d, 0xffff00ff
imul eax, ebx
imul r10d, r11d
mov ecx, r9d
and ecx, 0xff00ff
shr r9d, 8
imul ecx, r11d
and r9d, 0xff00ff
imul r9d, r11d
add r10d, eax
mov eax, edx
shr edx, 8
and eax, 0xff00ff
imul eax, ebx
and edx, 0xff00ff
imul edx, ebx
add ecx, eax
shr ecx, 8
add r9d, edx
xor r10d, ecx
and r10d, 0xff00ff
xor r10d, r9d
mov dword [r14 + r8 - 4], r10d
add edi, 0xffffffff
jne 0x180035670
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret