Function at 0x4126b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
test rcx, rcx
je 0x412c57
test rdx, rdx
je 0x412c3e
xor eax, eax
test r8, r8
lea r9, [r8 - 1]
je 0x412bf2
mov r10, rcx
mov r11d, 0x11
neg r10
and r10d, 0xf
lea rax, [r10 + 0xf]
cmp rax, 0x11
cmovb rax, r11
cmp rax, r9
ja 0x412c20
test r10, r10
je 0x412c30
movzx r11d, byte [rcx]
lea rsi, [rcx + 1]
lea rbx, [rdx + 1]
xor r11b, byte [rdx]
cmp r10, 1
lea r9, [r8 - 2]
je 0x4128d5
movzx ebx, byte [rcx + 1]
lea rsi, [rcx + 2]
lea r9, [r8 - 3]
xor bl, byte [rdx + 1]
or r11d, ebx
cmp r10, 2
lea rbx, [rdx + 2]
je 0x4128d5
movzx esi, byte [rcx + 2]
lea rbx, [rdx + 3]
lea r9, [r8 - 4]
xor sil, byte [rdx + 2]
or r11d, esi
cmp r10, 3
lea rsi, [rcx + 3]
je 0x4128d5
movzx edi, byte [rcx + 3]
lea rsi, [rcx + 4]
lea rbx, [rdx + 4]
xor dil, byte [rdx + 3]
lea r9, [r8 - 5]
or r11d, edi
cmp r10, 4
je 0x4128d5
movzx ebp, byte [rcx + 4]
lea rsi, [rcx + 5]
lea rbx, [rdx + 5]
xor bpl, byte [rdx + 4]
lea r9, [r8 - 6]
or r11d, ebp
cmp r10, 5
je 0x4128d5
movzx r9d, byte [rcx + 5]
lea rsi, [rcx + 6]
lea rbx, [rdx + 6]
xor r9b, byte [rdx + 5]
or r11d, r9d
cmp r10, 6
lea r9, [r8 - 7]
je 0x4128d5
movzx eax, byte [rcx + 6]
lea rsi, [rcx + 7]
lea rbx, [rdx + 7]
xor al, byte [rdx + 6]
lea r9, [r8 - 8]
or r11d, eax
cmp r10, 7
je 0x4128d5
movzx ebx, byte [rcx + 7]
lea rsi, [rcx + 8]
lea r9, [r8 - 9]
xor bl, byte [rdx + 7]
or r11d, ebx
cmp r10, 8
lea rbx, [rdx + 8]
je 0x4128d5
movzx esi, byte [rcx + 8]
lea rbx, [rdx + 9]
lea r9, [r8 - 0xa]
xor sil, byte [rdx + 8]
or r11d, esi
cmp r10, 9
lea rsi, [rcx + 9]
je 0x4128d5
movzx edi, byte [rcx + 9]
lea rsi, [rcx + 0xa]
lea rbx, [rdx + 0xa]
xor dil, byte [rdx + 9]
lea r9, [r8 - 0xb]
or r11d, edi
cmp r10, 0xa
je 0x4128d5
movzx ebp, byte [rcx + 0xa]
lea rsi, [rcx + 0xb]
lea rbx, [rdx + 0xb]
xor bpl, byte [rdx + 0xa]
lea r9, [r8 - 0xc]
or r11d, ebp
cmp r10, 0xb
je 0x4128d5
movzx r9d, byte [rcx + 0xb]
lea rsi, [rcx + 0xc]
lea rbx, [rdx + 0xc]
xor r9b, byte [rdx + 0xb]
or r11d, r9d
cmp r10, 0xc
lea r9, [r8 - 0xd]
je 0x4128d5
movzx eax, byte [rcx + 0xc]
lea rsi, [rcx + 0xd]
lea rbx, [rdx + 0xd]
xor al, byte [rdx + 0xc]
lea r9, [r8 - 0xe]
or r11d, eax
cmp r10, 0xd
je 0x4128d5
movzx ebx, byte [rcx + 0xd]
lea rsi, [rcx + 0xe]
lea r9, [r8 - 0xf]
xor bl, byte [rdx + 0xd]
or r11d, ebx
cmp r10, 0xf
lea rbx, [rdx + 0xe]
jne 0x4128d5
movzx esi, byte [rdx + 0xe]
lea rbx, [rdx + 0xf]
lea r9, [r8 - 0x10]
xor sil, byte [rcx + 0xe]
or r11d, esi
lea rsi, [rcx + 0xf]
sub r8, r10
add rdx, r10
add rcx, r10
mov rbp, r8
movdqu xmm0, xmmword [rdx]
shr rbp, 4
mov r10d, 1
mov eax, 0x10
lea rdi, [rbp - 1]
pxor xmm0, xmmword [rcx]
and edi, 7
cmp rbp, 1
jbe 0x412a73
test rdi, rdi
je 0x4129e4
cmp rdi, 1
je 0x4129c5
cmp rdi, 2
je 0x4129af
cmp rdi, 3
je 0x412999
cmp rdi, 4
je 0x412983
cmp rdi, 5
je 0x41296d
cmp rdi, 6
je 0x412957
movdqu xmm1, xmmword [rdx + 0x10]
mov r10d, 2
mov eax, 0x20
pxor xmm1, xmmword [rcx + 0x10]
por xmm0, xmm1
movdqu xmm2, xmmword [rdx + rax]
add r10, 1
pxor xmm2, xmmword [rcx + rax]
add rax, 0x10
por xmm0, xmm2
movdqu xmm3, xmmword [rdx + rax]
add r10, 1
pxor xmm3, xmmword [rcx + rax]
add rax, 0x10
por xmm0, xmm3
movdqu xmm4, xmmword [rdx + rax]
add r10, 1
pxor xmm4, xmmword [rcx + rax]
add rax, 0x10
por xmm0, xmm4
movdqu xmm5, xmmword [rdx + rax]
add r10, 1
pxor xmm5, xmmword [rcx + rax]
add rax, 0x10
por xmm0, xmm5
movdqu xmm1, xmmword [rdx + rax]
add r10, 1
pxor xmm1, xmmword [rcx + rax]
add rax, 0x10
por xmm0, xmm1
movdqu xmm2, xmmword [rdx + rax]
add r10, 1
pxor xmm2, xmmword [rcx + rax]
add rax, 0x10
cmp rbp, r10
por xmm0, xmm2
jbe 0x412a73
movdqu xmm3, xmmword [rdx + rax]
add r10, 8
pxor xmm3, xmmword [rcx + rax]
movdqu xmm4, xmmword [rdx + rax + 0x10]
pxor xmm4, xmmword [rcx + rax + 0x10]
movdqu xmm5, xmmword [rdx + rax + 0x20]
por xmm0, xmm3
pxor xmm5, xmmword [rcx + rax + 0x20]
movdqu xmm1, xmmword [rdx + rax + 0x30]
por xmm0, xmm4
pxor xmm1, xmmword [rcx + rax + 0x30]
movdqu xmm2, xmmword [rdx + rax + 0x40]
por xmm0, xmm5
pxor xmm2, xmmword [rcx + rax + 0x40]
movdqu xmm3, xmmword [rdx + rax + 0x50]
por xmm0, xmm1
pxor xmm3, xmmword [rcx + rax + 0x50]
movdqu xmm4, xmmword [rdx + rax + 0x60]
por xmm0, xmm2
pxor xmm4, xmmword [rcx + rax + 0x60]
por xmm0, xmm3
por xmm4, xmm0
movdqu xmm0, xmmword [rdx + rax + 0x70]
pxor xmm0, xmmword [rcx + rax + 0x70]
sub rax, 0xffffffffffffff80
cmp rbp, r10
por xmm0, xmm4
ja 0x4129e4
movdqa xmm5, xmm0
mov rbp, r8
and rbp, 0xfffffffffffffff0
psrldq xmm5, 8
por xmm0, xmm5
sub r9, rbp
lea rcx, [rsi + rbp]
lea rdx, [rbx + rbp]
movdqa xmm1, xmm0
psrldq xmm1, 4
por xmm0, xmm1
movdqa xmm2, xmm0
psrldq xmm2, 2
por xmm0, xmm2
movdqa xmm3, xmm0
psrldq xmm3, 1
por xmm0, xmm3
movaps xmmword [rsp + 0x20], xmm0
movzx eax, byte [rsp + 0x20]
or eax, r11d
cmp rbp, r8
je 0x412bdb
lea rdi, [rdx + r9 + 1]
add r9, 1
and r9d, 7
je 0x412b7a
cmp r9, 1
je 0x412b64
cmp r9, 2
je 0x412b51
cmp r9, 3
je 0x412b3e
cmp r9, 4
je 0x412b2d
cmp r9, 5
je 0x412b1d
cmp r9, 6
jne 0x412c00
movzx r10d, byte [rdx]
add rcx, 1
add rdx, 1
xor r10b, byte [rcx - 1]
or eax, r10d
movzx ebx, byte [rdx]
add rcx, 1
add rdx, 1
xor bl, byte [rcx - 1]
or eax, ebx
movzx esi, byte [rdx]
add rcx, 1
add rdx, 1
xor sil, byte [rcx - 1]
or eax, esi
movzx r9d, byte [rdx]
add rcx, 1
add rdx, 1
xor r9b, byte [rcx - 1]
or eax, r9d
movzx r11d, byte [rdx]
add rcx, 1
add rdx, 1
xor r11b, byte [rcx - 1]
or eax, r11d
movzx ebp, byte [rdx]
add rdx, 1
add rcx, 1
xor bpl, byte [rcx - 1]
or eax, ebp
cmp rdx, rdi
je 0x412bdb
movzx r8d, byte [rdx]
movzx r10d, byte [rdx + 1]
add rdx, 8
xor r8b, byte [rcx]
xor r10b, byte [rcx + 1]
add rcx, 8
movzx ebx, byte [rdx - 6]
movzx esi, byte [rdx - 5]
xor bl, byte [rcx - 6]
xor sil, byte [rcx - 5]
movzx r9d, byte [rdx - 4]
movzx r11d, byte [rdx - 3]
xor r9b, byte [rcx - 4]
or eax, r8d
xor r11b, byte [rcx - 3]
movzx ebp, byte [rdx - 2]
or eax, r10d
xor bpl, byte [rcx - 2]
or eax, ebx
or eax, esi
or eax, r9d
or eax, r11d
or ebp, eax
movzx eax, byte [rdx - 1]
xor al, byte [rcx - 1]
or eax, ebp
cmp rdx, rdi
jne 0x412b7a
mov edx, eax
shr dl, 4
or edx, eax
mov ecx, edx
shr cl, 2
or edx, ecx
mov eax, edx
shr al, 1
or eax, edx
and eax, 1
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
movzx r8d, byte [rdx]
add rcx, 1
add rdx, 1
xor r8b, byte [rcx - 1]
or eax, r8d
jmp 0x412b0a
xor eax, eax
jmp 0x412acf
mov rbx, rdx
mov rsi, rcx
xor r11d, r11d
jmp 0x4128d5
lea rdx, str.src_misc_mem_neq.c
lea rcx, str.b___NULL
mov r8d, 0x2a
call fcn.00409b50
lea rdx, str.src_misc_mem_neq.c
lea rcx, str.a___NULL
mov r8d, 0x29
call fcn.00409b50
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop