Function at 0x65b65410
Capabilities:
Encode data using xor

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
test rcx, rcx
je 0x65b6593c
test rdx, rdx
je 0x65b65955
xor eax, eax
test r8, r8
lea rdi, [r8 - 1]
je 0x65b65918
mov rsi, rcx
neg rsi
and esi, 0xf
cmp rsi, r8
cmova rsi, r8
cmp r8, 0x12
ja 0x65b65923
mov rsi, r8
lea rbp, [rdx + rsi]
mov rbx, rdx
lea r9, [rdx + 1]
not rbx
movzx eax, byte [rdx]
lea r10, [rcx + 1]
add rbx, rbp
xor al, byte [rcx]
lea r11, [rdi - 1]
and ebx, 7
cmp r9, rbp
je 0x65b655c5
test rbx, rbx
je 0x65b65559
cmp rbx, 1
je 0x65b6553e
cmp rbx, 2
je 0x65b65527
cmp rbx, 3
je 0x65b65511
cmp rbx, 4
je 0x65b654fa
cmp rbx, 5
je 0x65b654e4
cmp rbx, 6
je 0x65b654cd
movzx r9d, byte [r9]
lea r11, [rdi - 2]
xor r9b, byte [r10]
lea r10, [rcx + 2]
or eax, r9d
lea r9, [rdx + 2]
movzx r12d, byte [r9]
add r10, 1
add r9, 1
xor r12b, byte [r10 - 1]
sub r11, 1
or eax, r12d
movzx ebx, byte [r9]
add r10, 1
add r9, 1
xor bl, byte [r10 - 1]
sub r11, 1
or eax, ebx
movzx r12d, byte [r9]
add r10, 1
add r9, 1
xor r12b, byte [r10 - 1]
sub r11, 1
or eax, r12d
movzx ebx, byte [r9]
add r10, 1
add r9, 1
xor bl, byte [r10 - 1]
sub r11, 1
or eax, ebx
movzx r12d, byte [r9]
add r10, 1
add r9, 1
xor r12b, byte [r10 - 1]
sub r11, 1
or eax, r12d
movzx ebx, byte [r9]
add r9, 1
add r10, 1
xor bl, byte [r10 - 1]
sub r11, 1
or eax, ebx
cmp r9, rbp
je 0x65b655c5
movzx r12d, byte [r9]
movzx ebx, byte [r9 + 1]
add r9, 8
xor r12b, byte [r10]
xor bl, byte [r10 + 1]
sub r11, 8
add r10, 8
or eax, r12d
movzx r12d, byte [r9 - 6]
xor r12b, byte [r10 - 6]
or eax, ebx
movzx ebx, byte [r9 - 5]
xor bl, byte [r10 - 5]
or eax, r12d
movzx r12d, byte [r9 - 4]
xor r12b, byte [r10 - 4]
or eax, ebx
movzx ebx, byte [r9 - 3]
xor bl, byte [r10 - 3]
or eax, r12d
movzx r12d, byte [r9 - 2]
xor r12b, byte [r10 - 2]
or eax, ebx
or r12d, eax
movzx eax, byte [r9 - 1]
xor al, byte [r10 - 1]
or eax, r12d
cmp r9, rbp
jne 0x65b65559
cmp r8, rsi
je 0x65b658f9
sub r8, rsi
sub rdi, rsi
lea rbx, [r8 - 0x10]
shr rbx, 4
add rbx, 1
mov rbp, rbx
shl rbp, 4
cmp rdi, 0xe
jbe 0x65b657e2
add rcx, rsi
add rsi, rdx
lea rdx, [rbx - 1]
movdqu xmm0, xmmword [rsi]
mov r12d, 1
and edx, 7
cmp rbx, 1
mov edi, 0x10
movdqa xmm1, xmmword [rcx]
pxor xmm1, xmm0
jbe 0x65b65790
test rdx, rdx
je 0x65b656fa
cmp rdx, 1
je 0x65b656db
cmp rdx, 2
je 0x65b656c5
cmp rdx, 3
je 0x65b656af
cmp rdx, 4
je 0x65b65699
cmp rdx, 5
je 0x65b65683
cmp rdx, 6
je 0x65b6566d
movdqu xmm2, xmmword [rsi + 0x10]
mov r12d, 2
mov edi, 0x20
pxor xmm2, xmmword [rcx + 0x10]
por xmm1, xmm2
movdqu xmm3, xmmword [rsi + rdi]
add r12, 1
pxor xmm3, xmmword [rcx + rdi]
add rdi, 0x10
por xmm1, xmm3
movdqu xmm4, xmmword [rsi + rdi]
add r12, 1
pxor xmm4, xmmword [rcx + rdi]
add rdi, 0x10
por xmm1, xmm4
movdqu xmm5, xmmword [rsi + rdi]
add r12, 1
pxor xmm5, xmmword [rcx + rdi]
add rdi, 0x10
por xmm1, xmm5
movdqu xmm0, xmmword [rsi + rdi]
add r12, 1
pxor xmm0, xmmword [rcx + rdi]
add rdi, 0x10
por xmm1, xmm0
movdqu xmm2, xmmword [rsi + rdi]
add r12, 1
pxor xmm2, xmmword [rcx + rdi]
add rdi, 0x10
por xmm1, xmm2
movdqu xmm3, xmmword [rsi + rdi]
add r12, 1
pxor xmm3, xmmword [rcx + rdi]
add rdi, 0x10
cmp rbx, r12
por xmm1, xmm3
jbe 0x65b65790
movdqu xmm4, xmmword [rsi + rdi]
add r12, 8
pxor xmm4, xmmword [rcx + rdi]
movdqu xmm5, xmmword [rsi + rdi + 0x10]
pxor xmm5, xmmword [rcx + rdi + 0x10]
movdqu xmm0, xmmword [rsi + rdi + 0x20]
por xmm1, xmm4
pxor xmm0, xmmword [rcx + rdi + 0x20]
movdqu xmm2, xmmword [rsi + rdi + 0x30]
por xmm1, xmm5
pxor xmm2, xmmword [rcx + rdi + 0x30]
movdqu xmm3, xmmword [rsi + rdi + 0x40]
por xmm1, xmm0
pxor xmm3, xmmword [rcx + rdi + 0x40]
movdqu xmm4, xmmword [rsi + rdi + 0x50]
por xmm1, xmm2
pxor xmm4, xmmword [rcx + rdi + 0x50]
movdqu xmm5, xmmword [rsi + rdi + 0x60]
por xmm1, xmm3
pxor xmm5, xmmword [rcx + rdi + 0x60]
por xmm1, xmm4
por xmm5, xmm1
movdqu xmm1, xmmword [rsi + rdi + 0x70]
pxor xmm1, xmmword [rcx + rdi + 0x70]
sub rdi, 0xffffffffffffff80
cmp rbx, r12
por xmm5, xmm1
movdqa xmm1, xmm5
ja 0x65b656fa
nop dword [rax]
movdqa xmm0, xmm1
add r10, rbp
add r9, rbp
sub r11, rbp
psrldq xmm0, 8
por xmm0, xmm1
movdqa xmm2, xmm0
psrldq xmm2, 4
por xmm0, xmm2
movdqa xmm3, xmm0
psrldq xmm3, 2
por xmm0, xmm3
movdqa xmm4, xmm0
psrldq xmm4, 1
por xmm0, xmm4
movaps xmmword [rsp + 0x20], xmm0
movzx ecx, byte [rsp + 0x20]
or eax, ecx
cmp r8, rbp
je 0x65b658f9
movzx r8d, byte [r9]
xor r8b, byte [r10]
or eax, r8d
test r11, r11
je 0x65b658f9
movzx esi, byte [r10 + 1]
xor sil, byte [r9 + 1]
or eax, esi
cmp r11, 1
je 0x65b658f9
movzx ebx, byte [r10 + 2]
xor bl, byte [r9 + 2]
or eax, ebx
cmp r11, 2
je 0x65b658f9
movzx edx, byte [r10 + 3]
xor dl, byte [r9 + 3]
or eax, edx
cmp r11, 3
je 0x65b658f9
movzx r12d, byte [r10 + 4]
xor r12b, byte [r9 + 4]
or eax, r12d
cmp r11, 4
je 0x65b658f9
movzx edi, byte [r10 + 5]
xor dil, byte [r9 + 5]
or eax, edi
cmp r11, 5
je 0x65b658f9
movzx ebp, byte [r10 + 6]
xor bpl, byte [r9 + 6]
or eax, ebp
cmp r11, 6
je 0x65b658f9
movzx ecx, byte [r10 + 7]
xor cl, byte [r9 + 7]
or eax, ecx
cmp r11, 7
je 0x65b658f9
movzx r8d, byte [r10 + 8]
xor r8b, byte [r9 + 8]
or eax, r8d
cmp r11, 8
je 0x65b658f9
movzx esi, byte [r10 + 9]
xor sil, byte [r9 + 9]
or eax, esi
cmp r11, 9
je 0x65b658f9
movzx ebx, byte [r10 + 0xa]
xor bl, byte [r9 + 0xa]
or eax, ebx
cmp r11, 0xa
je 0x65b658f9
movzx edx, byte [r10 + 0xb]
xor dl, byte [r9 + 0xb]
or eax, edx
cmp r11, 0xb
je 0x65b658f9
movzx r12d, byte [r10 + 0xc]
xor r12b, byte [r9 + 0xc]
or eax, r12d
cmp r11, 0xc
je 0x65b658f9
movzx edi, byte [r10 + 0xd]
xor dil, byte [r9 + 0xd]
or eax, edi
cmp r11, 0xd
je 0x65b658f9
movzx r9d, byte [r9 + 0xe]
xor r9b, byte [r10 + 0xe]
or eax, r9d
mov r10d, eax
shr r10b, 4
or r10d, eax
mov r11d, r10d
shr r11b, 2
or r10d, r11d
mov eax, r10d
shr al, 1
or eax, r10d
and eax, 1
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
test rsi, rsi
jne 0x65b65458
mov r11, rdi
mov r9, rdx
mov r10, rcx
xor eax, eax
jmp 0x65b655ce
lea rdx, str.src_misc_mem_neq.c
lea rcx, str.a___NULL
mov r8d, 0x29
call fcn.65b5df60
lea rdx, str.src_misc_mem_neq.c
lea rcx, str.b___NULL
mov r8d, 0x2a
call fcn.65b5df60
nop
nop