Function at 0x6d326540
Capabilities:
Encode data using xor

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
test rcx, rcx
je 0x6d326a6c
test rdx, rdx
je 0x6d326a85
xor eax, eax
test r8, r8
lea rdi, [r8 - 1]
je 0x6d326a48
mov rsi, rcx
neg rsi
and esi, 0xf
cmp rsi, r8
cmova rsi, r8
cmp r8, 0x12
ja 0x6d326a53
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 0x6d3266f5
test rbx, rbx
je 0x6d326689
cmp rbx, 1
je 0x6d32666e
cmp rbx, 2
je 0x6d326657
cmp rbx, 3
je 0x6d326641
cmp rbx, 4
je 0x6d32662a
cmp rbx, 5
je 0x6d326614
cmp rbx, 6
je 0x6d3265fd
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 0x6d3266f5
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 0x6d326689
cmp r8, rsi
je 0x6d326a29
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 0x6d326912
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 0x6d3268c0
test rdx, rdx
je 0x6d32682a
cmp rdx, 1
je 0x6d32680b
cmp rdx, 2
je 0x6d3267f5
cmp rdx, 3
je 0x6d3267df
cmp rdx, 4
je 0x6d3267c9
cmp rdx, 5
je 0x6d3267b3
cmp rdx, 6
je 0x6d32679d
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 0x6d3268c0
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 0x6d32682a
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 0x6d326a29
movzx r8d, byte [r9]
xor r8b, byte [r10]
or eax, r8d
test r11, r11
je 0x6d326a29
movzx esi, byte [r10 + 1]
xor sil, byte [r9 + 1]
or eax, esi
cmp r11, 1
je 0x6d326a29
movzx ebx, byte [r10 + 2]
xor bl, byte [r9 + 2]
or eax, ebx
cmp r11, 2
je 0x6d326a29
movzx edx, byte [r10 + 3]
xor dl, byte [r9 + 3]
or eax, edx
cmp r11, 3
je 0x6d326a29
movzx r12d, byte [r10 + 4]
xor r12b, byte [r9 + 4]
or eax, r12d
cmp r11, 4
je 0x6d326a29
movzx edi, byte [r10 + 5]
xor dil, byte [r9 + 5]
or eax, edi
cmp r11, 5
je 0x6d326a29
movzx ebp, byte [r10 + 6]
xor bpl, byte [r9 + 6]
or eax, ebp
cmp r11, 6
je 0x6d326a29
movzx ecx, byte [r10 + 7]
xor cl, byte [r9 + 7]
or eax, ecx
cmp r11, 7
je 0x6d326a29
movzx r8d, byte [r10 + 8]
xor r8b, byte [r9 + 8]
or eax, r8d
cmp r11, 8
je 0x6d326a29
movzx esi, byte [r10 + 9]
xor sil, byte [r9 + 9]
or eax, esi
cmp r11, 9
je 0x6d326a29
movzx ebx, byte [r10 + 0xa]
xor bl, byte [r9 + 0xa]
or eax, ebx
cmp r11, 0xa
je 0x6d326a29
movzx edx, byte [r10 + 0xb]
xor dl, byte [r9 + 0xb]
or eax, edx
cmp r11, 0xb
je 0x6d326a29
movzx r12d, byte [r10 + 0xc]
xor r12b, byte [r9 + 0xc]
or eax, r12d
cmp r11, 0xc
je 0x6d326a29
movzx edi, byte [r10 + 0xd]
xor dil, byte [r9 + 0xd]
or eax, edi
cmp r11, 0xd
je 0x6d326a29
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 0x6d326588
mov r11, rdi
mov r9, rdx
mov r10, rcx
xor eax, eax
jmp 0x6d3266fe
lea rdx, str.src_misc_mem_neq.c
lea rcx, str.a___NULL
mov r8d, 0x29
call fcn.6d31f090
lea rdx, str.src_misc_mem_neq.c
lea rcx, str.b___NULL
mov r8d, 0x2a
call fcn.6d31f090
nop
nop