Function at 0x14005f450
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
mov esi, dword [rcx]
mov r10d, dword [rcx + 4]
mov eax, r9d
or eax, r8d
mov rbp, r9
mov r12, r8
mov r13d, edx
mov rdi, rcx
test al, 7
jne 0x14005f84e
mov qword [rsp + 0x28], rbx
test r13, 0xfffffffffffffff8
je 0x14005f654
nop dword [rax]
mov rbx, qword [r12]
lea eax, [rsi + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
lea eax, [r9 + 1]
mov r11d, dword [rdi + rcx*4 + 8]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 8
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x10
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x18
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x20
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x28
or r11, rax
lea eax, [r9 + 1]
movzx r9d, al
mov edx, dword [rdi + r9*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
add r13d, 0xfffffff8
add r12, 8
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
add rbp, 8
mov dword [rdi + r9*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x30
or r11, rax
lea eax, [r9 + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + rsi*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
shl rax, 0x38
or rax, r11
xor rax, rbx
mov qword [rbp - 8], rax
mov eax, r13d
test rax, 0xfffffffffffffff8
jne 0x14005f490
test r13d, r13d
je 0x14005f837
xor r11d, r11d
mov qword [rsp + 0x30], r14
mov r14, qword [r12]
or r12, 0xffffffffffffffff
mov edx, r13d
mov ecx, 8
sub cl, r13b
and edx, 7
mov qword [rsp + 0x38], r15
mov r15, qword [rbp]
shl cl, 3
mov ebx, r11d
shr r12, cl
dec rdx
cmp rdx, 6
ja case.default.0x14005f6ab
lea rcx, [0x140000000]
mov eax, dword [rcx + rdx*4 + 0x5fc3c]
add rax, rcx
jmp rax
lea eax, [rsi + 1]
mov ebx, 8
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
mov dword [rdi + rsi*4 + 8], ecx
lea eax, [rcx + rdx]
movzx ecx, al
mov r11d, dword [rdi + rcx*4 + 8]
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov ecx, ebx
shl rax, cl
or r11, rax
add ebx, 8
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov ecx, ebx
shl rax, cl
or r11, rax
add ebx, 8
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov ecx, ebx
shl rax, cl
or r11, rax
add ebx, 8
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov ecx, ebx
shl rax, cl
or r11, rax
add ebx, 8
lea eax, [rsi + 1]
movzx esi, al
mov edx, dword [rdi + rsi*4 + 8]
lea eax, [rdx + r10]
movzx r10d, al
mov ecx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], edx
lea eax, [rcx + rdx]
mov dword [rdi + rsi*4 + 8], ecx
movzx ecx, al
mov eax, dword [rdi + rcx*4 + 8]
mov ecx, ebx
shl rax, cl
or r11, rax
add ebx, 8
lea eax, [rsi + 1]
mov ecx, ebx
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov edx, dword [rdi + r10*4 + 8]
mov dword [rdi + r10*4 + 8], r8d
lea eax, [rdx + r8]
mov dword [rdi + rsi*4 + 8], edx
movzx edx, al
mov eax, dword [rdi + rdx*4 + 8]
shl rax, cl
or r11, rax
xor r11, r14
mov r14, qword [rsp + 0x30]
and r11, r12
not r12
and r12, r15
mov r15, qword [rsp + 0x38]
or r11, r12
mov qword [rbp], r11
mov rbx, qword [rsp + 0x28]
mov dword [rdi + 4], r10d
mov dword [rdi], esi
mov rbp, qword [rsp + 0x40]
pop r13
pop r12
pop rdi
pop rsi
ret
mov r11d, r13d
shr r11d, 3
test r11d, r11d
je 0x14005fa25
nop
lea eax, [rsi + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
mov dword [rdi + r10*4 + 8], r8d
add eax, r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12]
mov byte [rbp], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
mov dword [rdi + r10*4 + 8], r8d
add eax, r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 1]
mov byte [rbp + 1], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
mov dword [rdi + r10*4 + 8], r8d
add eax, r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 2]
mov byte [rbp + 2], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
mov dword [rdi + r10*4 + 8], r8d
add eax, r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 3]
mov byte [rbp + 3], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 4]
mov byte [rbp + 4], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 5]
mov byte [rbp + 5], al
lea eax, [r9 + 1]
movzx r9d, al
mov r8d, dword [rdi + r9*4 + 8]
lea eax, [r8 + r10]
add rbp, 8
add r12, 8
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + r9*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 - 2]
mov byte [rbp - 2], al
lea eax, [r9 + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 - 1]
dec r11d
mov byte [rbp - 1], al
jne 0x14005f860
and r13d, 7
je 0x14005fc2a
lea eax, [rsi + 1]
inc rbp
inc r12
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 - 1]
dec r13d
mov byte [rbp - 1], al
je 0x14005fc2a
nop word [rax + rax]
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12]
dec r13d
mov byte [rbp], al
je 0x14005fc2a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 1]
dec r13d
mov byte [rbp + 1], al
je 0x14005fc2a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 2]
dec r13d
mov byte [rbp + 2], al
je 0x14005fc2a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 3]
dec r13d
mov byte [rbp + 3], al
je 0x14005fc2a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 4]
dec r13d
mov byte [rbp + 4], al
je 0x14005fc2a
lea eax, [rsi + 1]
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 + 5]
dec r13d
mov byte [rbp + 5], al
je 0x14005fc2a
lea eax, [rsi + 1]
add rbp, 7
add r12, 7
movzx esi, al
mov r8d, dword [rdi + rsi*4 + 8]
lea eax, [r8 + r10]
movzx r10d, al
mov eax, dword [rdi + r10*4 + 8]
mov dword [rdi + rsi*4 + 8], eax
add eax, r8d
mov dword [rdi + r10*4 + 8], r8d
movzx ecx, al
movzx eax, byte [rdi + rcx*4 + 8]
xor al, byte [r12 - 1]
dec r13d
mov byte [rbp - 1], al
jne 0x14005fa80
mov rbp, qword [rsp + 0x40]
mov dword [rdi + 4], r10d
mov dword [rdi], esi
pop r13
pop r12
pop rdi
pop rsi
ret