Function at 0x5fcbd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rdi, qword [rcx + 0xe0]
mov qword [rsp + 0xb8], rdx
mov rbx, rcx
mov rsi, r8
test rdi, rdi
je 0x5fce47
mov r8d, 0x10
lea rcx, [rcx + rdi + 0xd0]
mov r14, r8
sub r14, rdi
cmp rsi, r14
jb 0x5fd170
mov r8, r14
lea rsi, [rdi + rsi - 0x10]
call sym.memcpy
mov ebp, dword [rbx + 0x18]
mov r15d, dword [rbx + 0x1c]
mov ecx, dword [rbx + 0x20]
mov r8d, dword [rbx + 4]
mov r13d, ebp
mov r9d, r15d
mov r10d, dword [rbx + 0xc]
mov r11d, dword [rbx + 0x10]
shr r13d, 2
shr r9d, 2
lea eax, [r13 + rbp]
shr ecx, 2
lea edx, [r9 + r15]
mov r9d, dword [rbx]
mov dword [rsp + 0x20], eax
mov eax, dword [rbx + 0x20]
mov dword [rsp + 0x28], edx
mov edx, dword [rbx + 0xd4]
add eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, dword [rbx + 0xd0]
lea rcx, [r8 + rdx]
mov edx, r9d
mov r8d, eax
lea r12d, [r9 + rax]
mov r9d, dword [rsp + 0x28]
add r8, rdx
mov edx, dword [rbx + 8]
shr r8, 0x20
mov qword [rsp + 0x38], r9
add r8, rcx
mov ecx, dword [rbx + 0xd8]
add rcx, rdx
mov rdx, r8
mov r8d, r8d
shr rdx, 0x20
add rcx, rdx
mov edx, dword [rbx + 0xdc]
add rdx, r10
mov r10, rcx
mov ecx, ecx
shr r10, 0x20
add rdx, r10
mov r10, rdx
mov edx, edx
shr r10, 0x20
lea r13d, [r11 + r10 + 1]
mov r11d, dword [rbx + 0x14]
mov r10d, dword [rsp + 0x2c]
mov rax, r11
mov qword [rsp + 0x30], r10
imul r10, r8
imul rax, r12
add r10, rax
mov rax, r9
mov r9, r8
imul rax, rcx
add rax, r10
mov r10d, dword [rsp + 0x20]
imul r10, rdx
add r10, rax
mov eax, ebp
mov rbp, r15
imul rbp, r12
imul r9, rax
add r9, rbp
mov rbp, r11
imul rbp, rcx
add r9, rbp
mov rbp, qword [rsp + 0x30]
imul rbp, rdx
add rbp, r9
mov r9d, dword [rsp + 0x28]
imul r9d, r13d
add rbp, r9
mov r9d, dword [rbx + 0x20]
imul r9, r12
imul r15, r8
imul r8, r11
add r9, r15
mov r15, rcx
imul r15, rax
imul rax, r12
imul rcx, qword [rsp + 0x30]
add r9, r15
mov r15, r11
imul r15, rdx
add rax, r8
imul rdx, qword [rsp + 0x38]
add rax, rcx
mov rcx, r10
shr rcx, 0x20
add r9, r15
mov r15d, dword [rsp + 0x2c]
add rdx, rax
imul r15d, r13d
add rdx, rcx
add r15, r9
mov r9d, dword [rbx + 0x14]
imul r9d, r13d
imul r13d, dword [rsp + 0x20]
add r13, rdx
mov rax, r13
shr rax, 0x20
add rbp, rax
mov rcx, rbp
shr rcx, 0x20
add rcx, r15
mov rax, rcx
shr rax, 0x20
add r9d, eax
mov eax, r9d
mov edx, r9d
and r9d, 3
and edx, 0xfffffffc
shr eax, 2
add eax, edx
lea r11d, [rax + r10]
mov edx, eax
xor r10d, eax
xor edx, r11d
mov dword [rbx], r11d
or r10d, edx
xor r10d, r11d
shr r10d, 0x1f
lea r12d, [r10 + r13]
mov edx, r10d
xor r13d, r10d
xor edx, r12d
mov dword [rbx + 4], r12d
or edx, r13d
xor edx, r12d
shr edx, 0x1f
lea eax, [rdx + rbp]
mov r15d, edx
xor ebp, edx
xor r15d, eax
mov dword [rbx + 8], eax
or r15d, ebp
add qword [rsp + 0xb8], r14
xor r15d, eax
shr r15d, 0x1f
lea edx, [r15 + rcx]
mov eax, r15d
xor r15d, ecx
xor eax, edx
mov dword [rbx + 0xc], edx
or r15d, eax
xor r15d, edx
shr r15d, 0x1f
add r9d, r15d
mov dword [rbx + 0x10], r9d
mov rbp, rsi
and rsi, 0xfffffffffffffff0
mov qword [rsp + 0x20], rsi
and ebp, 0xf
cmp rsi, 0xf
ja 0x5fcef8
test rbp, rbp
jne 0x5fce80
mov qword [rbx + 0xe0], rbp
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rbx + 0xd0]
cmp ebp, 8
jb 0x5fd190
mov rdi, qword [rsp + 0xb8]
lea r9, [rbx + 0xd8]
and r9, 0xfffffffffffffff8
mov rdx, qword [rdi]
mov qword [rbx + 0xd0], rdx
mov rdi, qword [rsp + 0xb8]
mov rdx, qword [rdi + rbp - 8]
mov qword [rax + rbp - 8], rdx
mov rdx, qword [rsp + 0xb8]
sub rax, r9
sub rdx, rax
add eax, ebp
and eax, 0xfffffff8
cmp eax, 8
jb 0x5fce65
and eax, 0xfffffff8
xor ecx, ecx
mov r8d, ecx
add ecx, 8
mov r10, qword [rdx + r8]
mov qword [r9 + r8], r10
cmp ecx, eax
jb 0x5fcedc
jmp 0x5fce65
mov esi, dword [rbx + 0x18]
mov r10d, dword [rbx + 0x1c]
mov qword [rsp + 0x58], rbp
mov r8d, dword [rbx + 0x20]
mov edi, dword [rbx + 0x14]
mov qword [rsp + 0xb0], rbx
mov eax, esi
mov r14d, dword [rbx]
mov r9d, dword [rbx + 4]
shr eax, 2
mov edx, dword [rbx + 0xc]
mov ecx, dword [rbx + 0x10]
mov dword [rsp + 0x28], edi
lea r15d, [rax + rsi]
mov eax, r10d
shr eax, 2
mov dword [rsp + 0x2c], r15d
lea r13d, [rax + r10]
mov eax, r8d
mov qword [rsp + 0x48], r15
mov r15d, r10d
shr eax, 2
mov r10d, r8d
mov dword [rsp + 0x30], r13d
lea r12d, [rax + r8]
mov qword [rsp + 0x50], r10
mov r10, qword [rsp + 0x20]
add r10, qword [rsp + 0xb8]
mov eax, dword [rbx + 8]
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x40], r10
mov r10, qword [rsp + 0xb8]
nop dword [rax]
mov r11d, dword [r10]
mov r8d, r14d
mov rbp, qword [rsp + 0x50]
add r8, r11
mov rbx, r11
mov r11d, dword [r10 + 4]
shr r8, 0x20
add ebx, r14d
mov r14, r15
add r9, r11
mov r11d, dword [r10 + 8]
imul r14, rbx
add r9, r8
imul rbp, rbx
mov r8d, eax
mov rax, r9
add r8, r11
mov r11d, dword [r10 + 0xc]
shr rax, 0x20
add r8, rax
mov eax, edx
mov rdx, r8
add rax, r11
mov r8d, r8d
shr rdx, 0x20
add rax, rdx
mov rdx, rax
mov eax, eax
shr rdx, 0x20
lea r11d, [rcx + rdx + 1]
mov edx, r9d
mov rcx, rdi
mov r9, rdx
imul rcx, rbx
imul r9, r12
add rcx, r9
mov r9, r8
imul r9, r13
add r9, rcx
mov rcx, qword [rsp + 0x48]
imul rcx, rax
add r9, rcx
mov rcx, rdx
imul rcx, rsi
add rcx, r14
mov r14, r8
imul r14, rdi
add rcx, r14
mov r14, rax
imul r14, r12
add r14, rcx
mov ecx, dword [rsp + 0x30]
imul ecx, r11d
add r14, rcx
mov rcx, rdx
imul rcx, r15
add rcx, rbp
mov rbp, r8
imul rbp, rsi
add rcx, rbp
imul rbx, rsi
mov rbp, rax
imul rbp, rdi
imul rdx, rdi
imul r8, r12
add rbp, rcx
mov ecx, dword [rsp + 0x38]
imul rax, r13
add rdx, rbx
imul ecx, r11d
add rdx, r8
mov r8, r9
add rdx, rax
shr r8, 0x20
add rdx, r8
add rbp, rcx
mov ecx, dword [rsp + 0x28]
imul ecx, r11d
imul r11d, dword [rsp + 0x2c]
add r11, rdx
mov rbx, r11
shr rbx, 0x20
add rbx, r14
mov rax, rbx
shr rax, 0x20
add rbp, rax
mov r8, rbp
shr r8, 0x20
add ecx, r8d
mov edx, ecx
mov eax, ecx
and ecx, 3
and eax, 0xfffffffc
shr edx, 2
mov r8d, ecx
add edx, eax
lea r14d, [rdx + r9]
mov eax, edx
xor r9d, edx
xor eax, r14d
or eax, r9d
xor eax, r14d
shr eax, 0x1f
lea r9d, [rax + r11]
mov edx, eax
xor edx, r9d
xor r11d, eax
add r10, 0x10
or r11d, edx
xor r11d, r9d
shr r11d, 0x1f
lea eax, [r11 + rbx]
mov edx, r11d
xor ebx, r11d
xor edx, eax
or ebx, edx
xor ebx, eax
shr ebx, 0x1f
lea edx, [rbx + rbp]
mov ecx, ebx
xor ebp, ebx
xor ecx, edx
or ecx, ebp
xor ecx, edx
shr ecx, 0x1f
add ecx, r8d
cmp r10, qword [rsp + 0x40]
jne 0x5fcf80
movd xmm1, eax
movd xmm2, edx
movd xmm0, r14d
mov rbx, qword [rsp + 0xb0]
movd xmm3, r9d
punpckldq xmm1, xmm2
mov rax, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x58]
punpckldq xmm0, xmm3
add qword [rsp + 0xb8], rax
punpcklqdq xmm0, xmm1
mov dword [rbx + 0x10], ecx
movups xmmword [rbx], xmm0
jmp 0x5fce60
mov r8, rsi
add rsi, rdi
call sym.memcpy
mov qword [rbx + 0xe0], rsi
jmp 0x5fce6c
test bpl, 4
jne 0x5fd1d0
test ebp, ebp
je 0x5fce65
mov rdi, qword [rsp + 0xb8]
movzx edx, byte [rdi]
mov byte [rbx + 0xd0], dl
test bpl, 2
je 0x5fce65
mov rdi, qword [rsp + 0xb8]
movzx edx, word [rdi + rbp - 2]
mov word [rax + rbp - 2], dx
jmp 0x5fce65
mov rdi, qword [rsp + 0xb8]
mov edx, dword [rdi]
mov dword [rbx + 0xd0], edx
mov rdi, qword [rsp + 0xb8]
mov edx, dword [rdi + rbp - 4]
mov dword [rax + rbp - 4], edx
jmp 0x5fce65