Function at 0x4e8d80
Capabilities:
Encode data using xor

Disassembly:
mov rbx, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 8]
mov rbp, qword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x30]
movzx edx, byte [rax]
lea r9, [rsi + rbx]
cmp rsi, r9
jge 0x4e8ded
inc cl
movzx ecx, cl
test ecx, 0xf
je 0x4e8dfc
movzx eax, byte [rbp + rcx*4]
add dl, al
movzx edx, dl
movzx ebx, byte [rbp + rdx*4]
mov byte [rbp + rcx*4], bl
add bl, al
movzx ebx, bl
mov byte [rbp + rdx*4], al
movzx r8d, byte [rbp + rbx*4]
xor r8b, byte [rsi]
mov byte [rdi], r8b
inc rsi
inc rdi
cmp rsi, r9
jl 0x4e8dad
mov rbx, qword [rsp + 0x30]
mov byte [rbx], dl
mov rax, qword [rsp + 0x28]
mov byte [rax], cl
ret
sub r9, 0x10
cmp rsi, r9
jg 0x4e90c7
add rsi, 0x10
add rdi, 0x10
lea r12, [rbp + rcx*4]
movzx eax, byte [r12]
add dl, al
movzx edx, dl
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], al
movzx ebx, byte [r12 + 4]
add dl, bl
movzx edx, dl
mov byte [r12], r8b
add r8b, al
movzx r8d, r8b
pinsrw xmm0, word [rbp + r8*4], 0
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], bl
movzx eax, byte [r12 + 8]
add dl, al
movzx edx, dl
mov byte [r12 + 4], r8b
add r8b, bl
movzx r8d, r8b
pinsrw xmm1, word [rbp + r8*4], 0
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], al
movzx ebx, byte [r12 + 0xc]
add dl, bl
movzx edx, dl
mov byte [r12 + 8], r8b
add r8b, al
movzx r8d, r8b
pinsrw xmm0, word [rbp + r8*4], 1
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], bl
movzx eax, byte [r12 + 0x10]
add dl, al
movzx edx, dl
mov byte [r12 + 0xc], r8b
add r8b, bl
movzx r8d, r8b
pinsrw xmm1, word [rbp + r8*4], 1
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], al
movzx ebx, byte [r12 + 0x14]
add dl, bl
movzx edx, dl
mov byte [r12 + 0x10], r8b
add r8b, al
movzx r8d, r8b
pinsrw xmm0, word [rbp + r8*4], 2
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], bl
movzx eax, byte [r12 + 0x18]
add dl, al
movzx edx, dl
mov byte [r12 + 0x14], r8b
add r8b, bl
movzx r8d, r8b
pinsrw xmm1, word [rbp + r8*4], 2
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], al
movzx ebx, byte [r12 + 0x1c]
add dl, bl
movzx edx, dl
mov byte [r12 + 0x18], r8b
add r8b, al
movzx r8d, r8b
pinsrw xmm0, word [rbp + r8*4], 3
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], bl
movzx eax, byte [r12 + 0x20]
add dl, al
movzx edx, dl
mov byte [r12 + 0x1c], r8b
add r8b, bl
movzx r8d, r8b
pinsrw xmm1, word [rbp + r8*4], 3
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], al
movzx ebx, byte [r12 + 0x24]
add dl, bl
movzx edx, dl
mov byte [r12 + 0x20], r8b
add r8b, al
movzx r8d, r8b
pinsrw xmm0, word [rbp + r8*4], 4
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], bl
movzx eax, byte [r12 + 0x28]
add dl, al
movzx edx, dl
mov byte [r12 + 0x24], r8b
add r8b, bl
movzx r8d, r8b
pinsrw xmm1, word [rbp + r8*4], 4
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], al
movzx ebx, byte [r12 + 0x2c]
add dl, bl
movzx edx, dl
mov byte [r12 + 0x28], r8b
add r8b, al
movzx r8d, r8b
pinsrw xmm0, word [rbp + r8*4], 5
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], bl
movzx eax, byte [r12 + 0x30]
add dl, al
movzx edx, dl
mov byte [r12 + 0x2c], r8b
add r8b, bl
movzx r8d, r8b
pinsrw xmm1, word [rbp + r8*4], 5
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], al
movzx ebx, byte [r12 + 0x34]
add dl, bl
movzx edx, dl
mov byte [r12 + 0x30], r8b
add r8b, al
movzx r8d, r8b
pinsrw xmm0, word [rbp + r8*4], 6
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], bl
movzx eax, byte [r12 + 0x38]
add dl, al
movzx edx, dl
mov byte [r12 + 0x34], r8b
add r8b, bl
movzx r8d, r8b
pinsrw xmm1, word [rbp + r8*4], 6
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], al
movzx ebx, byte [r12 + 0x3c]
add dl, bl
movzx edx, dl
mov byte [r12 + 0x38], r8b
add r8b, al
movzx r8d, r8b
pinsrw xmm0, word [rbp + r8*4], 7
movzx r8d, byte [rbp + rdx*4]
mov byte [rbp + rdx*4], bl
mov byte [r12 + 0x3c], r8b
add r8b, bl
movzx r8d, r8b
pinsrw xmm1, word [rbp + r8*4], 7
add cl, 0x10
psllq xmm1, 8
pxor xmm0, xmm1
movdqu xmm2, xmmword [rsi - 0x10]
pxor xmm2, xmm0
movdqu xmmword [rdi - 0x10], xmm2
cmp rsi, r9
jle 0x4e8e09
dec cl
add r9, 0x10
cmp rsi, r9
jge 0x4e8ded
inc cl
movzx ecx, cl
movzx eax, byte [rbp + rcx*4]
add dl, al
movzx edx, dl
movzx ebx, byte [rbp + rdx*4]
mov byte [rbp + rcx*4], bl
add bl, al
movzx ebx, bl
mov byte [rbp + rdx*4], al
movzx r8d, byte [rbp + rbx*4]
xor r8b, byte [rsi]
mov byte [rdi], r8b
inc rsi
inc rdi
jmp 0x4e90cd