Function at 0x14018b730
Capabilities:
Encode data using xor

Disassembly:
push r12
sub rsp, 0x30
mov r10, rcx
test r9, r9
je 0x14018b990
movzx r11d, byte [r8]
test rdx, rdx
je 0x14018b755
mov eax, r11d
and eax, 0x80
mov dword [rdx], eax
cmp r9, 1
je 0x14018b9c8
movzx eax, byte [r8]
test al, al
jne 0x14018b7c0
mov eax, r11d
xor al, byte [r8 + 1]
lea r12, [r9 - 1]
jns 0x14018b9f8
test r10, r10
je 0x14018b7b2
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 0x14018b798
mov rax, r12
add rsp, 0x30
pop r12
ret
mov r12, r9
cmp al, 0xff
jne 0x14018b778
lea rax, [r9 - 2]
lea rcx, [r9 - 1]
cmp rax, 0xe
jbe 0x14018ba24
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 0x14018b7f8
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 0x14018b980
movzx ecx, byte [r8 + rdx]
or eax, ecx
lea rcx, [rdx + 1]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 1]
or eax, ecx
lea rcx, [rdx + 2]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 2]
or eax, ecx
lea rcx, [rdx + 3]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 3]
or eax, ecx
lea rcx, [rdx + 4]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 4]
or eax, ecx
lea rcx, [rdx + 5]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 5]
or eax, ecx
lea rcx, [rdx + 6]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 6]
or eax, ecx
lea rcx, [rdx + 7]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 7]
or eax, ecx
lea rcx, [rdx + 8]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 8]
or eax, ecx
lea rcx, [rdx + 9]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 9]
or eax, ecx
lea rcx, [rdx + 0xa]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 0xa]
or eax, ecx
lea rcx, [rdx + 0xb]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 0xb]
or eax, ecx
lea rcx, [rdx + 0xc]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 0xc]
or eax, ecx
lea rcx, [rdx + 0xd]
cmp r9, rcx
jbe 0x14018b980
movzx ecx, byte [r8 + rdx + 0xd]
or eax, ecx
lea rcx, [rdx + 0xe]
cmp r9, rcx
jbe 0x14018b980
movzx edx, byte [r8 + rdx + 0xe]
or eax, edx
nop
test eax, eax
jne 0x14018b767
mov r12, r9
jmp 0x14018b778
mov dword [rsp + 0x20], 0x9a
lea r9, str.crypto_asn1_a_int.c
mov r8d, 0xde
xor r12d, r12d
mov edx, 0xe2
mov ecx, 0xd
call fcn.1401d1f90
mov rax, r12
add rsp, 0x30
pop r12
ret
mov r12d, 1
test r10, r10
je 0x14018b7b2
movzx eax, byte [r8]
mov edx, eax
neg eax
test r11b, r11b
cmovns eax, edx
mov byte [r10], al
mov rax, r12
add rsp, 0x30
pop r12
ret
mov dword [rsp + 0x20], 0xbb
lea r9, str.crypto_asn1_a_int.c
mov r8d, 0xdd
xor r12d, r12d
mov edx, 0xe2
mov ecx, 0xd
call fcn.1401d1f90
jmp 0x14018b7b2
mov edx, 1
xor eax, eax
jmp 0x14018b86d