Function at 0x1400a2b50
Capabilities:
Encode data using xor

Disassembly:
push r12
sub rsp, 0x20
mov r10, rcx
test r9, r9
je 0x1400a2db0
movzx r11d, byte [r8]
test rdx, rdx
je 0x1400a2b75
mov eax, r11d
and eax, 0x80
mov dword [rdx], eax
cmp r9, 1
je 0x1400a2df0
movzx eax, byte [r8]
test al, al
jne 0x1400a2be0
mov eax, r11d
xor al, byte [r8 + 1]
lea r12, [r9 - 1]
jns 0x1400a2e20
test r10, r10
je 0x1400a2bd2
movsx eax, r11b
sub r9, r12
sar r11b, 7
lea rdx, [r12 - 1]
shr eax, 0x1f
add r8, r9
nop dword [rax + rax]
movzx ecx, byte [r8 + rdx]
xor ecx, r11d
movzx ecx, cl
add eax, ecx
mov byte [r10 + rdx], al
shr eax, 8
sub rdx, 1
jae 0x1400a2bb8
mov rax, r12
add rsp, 0x20
pop r12
ret
mov r12, r9
cmp al, 0xff
jne 0x1400a2b98
lea rax, [r9 - 2]
lea rcx, [r9 - 1]
cmp rax, 0xe
jbe 0x1400a2e57
mov rdx, rcx
pxor xmm3, xmm3
pxor xmm4, xmm4
mov rax, r8
and rdx, 0xfffffffffffffff0
pxor xmm2, xmm2
add rdx, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax + 1]
add rax, 0x10
movdqa xmm1, xmm0
punpckhbw xmm0, xmm4
punpcklbw xmm1, xmm4
movdqa xmm5, xmm1
punpcklwd xmm1, xmm2
punpckhwd xmm5, xmm2
por xmm1, xmm5
movdqa xmm5, xmm0
punpcklwd xmm0, xmm2
punpckhwd xmm5, xmm2
por xmm0, xmm5
por xmm1, xmm0
por xmm3, xmm1
cmp rax, rdx
jne 0x1400a2c18
movdqa xmm0, xmm3
mov r12, rcx
psrldq xmm0, 8
and r12, 0xfffffffffffffff0
por xmm3, xmm0
lea rdx, [r12 + 1]
movdqa xmm0, xmm3
psrldq xmm0, 4
por xmm3, xmm0
movd eax, xmm3
cmp rcx, r12
je 0x1400a2da0
movzx ecx, byte [r8 + rdx]
or eax, ecx
lea rcx, [rdx + 1]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 1]
or eax, ecx
lea rcx, [rdx + 2]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 2]
or eax, ecx
lea rcx, [rdx + 3]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 3]
or eax, ecx
lea rcx, [rdx + 4]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 4]
or eax, ecx
lea rcx, [rdx + 5]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 5]
or eax, ecx
lea rcx, [rdx + 6]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 6]
or eax, ecx
lea rcx, [rdx + 7]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 7]
or eax, ecx
lea rcx, [rdx + 8]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 8]
or eax, ecx
lea rcx, [rdx + 9]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 9]
or eax, ecx
lea rcx, [rdx + 0xa]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 0xa]
or eax, ecx
lea rcx, [rdx + 0xb]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 0xb]
or eax, ecx
lea rcx, [rdx + 0xc]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 0xc]
or eax, ecx
lea rcx, [rdx + 0xd]
cmp r9, rcx
jbe 0x1400a2da0
movzx ecx, byte [r8 + rdx + 0xd]
or eax, ecx
lea rcx, [rdx + 0xe]
cmp r9, rcx
jbe 0x1400a2da0
movzx edx, byte [r8 + rdx + 0xe]
or eax, edx
nop
test eax, eax
jne 0x1400a2b87
mov r12, r9
jmp 0x1400a2b98
call fcn.1401106f0
lea r8, str.c2i_ibuf
mov edx, 0xa0
xor r12d, r12d
lea rcx, str.crypto_asn1_a_int.c
call fcn.140110820
xor r8d, r8d
mov edx, 0xde
mov ecx, 0xd
call fcn.140110910
mov rax, r12
add rsp, 0x20
pop r12
ret
mov r12d, 1
test r10, r10
je 0x1400a2bd2
movzx eax, byte [r8]
mov edx, eax
neg eax
test r11b, r11b
cmovns eax, edx
mov byte [r10], al
mov rax, r12
add rsp, 0x20
pop r12
ret
call fcn.1401106f0
lea r8, str.c2i_ibuf
mov edx, 0xc1
xor r12d, r12d
lea rcx, str.crypto_asn1_a_int.c
call fcn.140110820
xor r8d, r8d
mov edx, 0xdd
mov ecx, 0xd
call fcn.140110910
jmp 0x1400a2bd2
mov edx, 1
xor eax, eax
jmp 0x1400a2c8d