Function at 0x1401590e0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
sub rsp, 0x38
mov r10, rcx
test r9, r9
je 0x140159330
movzx r11d, byte [r8]
test rdx, rdx
je 0x140159105
mov eax, r11d
and eax, 0x80
mov dword [rdx], eax
cmp r9, 1
je 0x140159360
movzx eax, byte [r8]
test al, al
jne 0x140159170
mov eax, r11d
xor al, byte [r8 + 1]
lea rbx, [r9 - 1]
jns 0x140159380
test r10, r10
je 0x140159162
movsx eax, r11b
sub r9, rbx
lea rdx, [rbx - 1]
sar r11b, 7
shr eax, 0x1f
add r8, r9
nop word [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 0x140159148
mov rax, rbx
add rsp, 0x38
pop rbx
pop rsi
ret
mov rbx, r9
cmp al, 0xff
jne 0x140159128
lea rax, [r9 - 2]
lea rcx, [r9 - 1]
cmp rax, 0xe
jbe 0x1401593ab
mov rsi, rcx
pxor xmm5, xmm5
pxor xmm3, xmm3
mov rax, r8
and rsi, 0xfffffffffffffff0
pxor xmm2, xmm2
lea rdx, [r8 + rsi]
nop dword [rax + rax]
movdqu xmm0, xmmword [rax + 1]
add rax, 0x10
movdqa xmm1, xmm0
punpckhbw xmm0, xmm3
punpcklbw xmm1, xmm3
movdqa xmm4, xmm1
punpcklwd xmm1, xmm2
punpckhwd xmm4, xmm2
por xmm1, xmm4
movdqa xmm4, xmm0
punpcklwd xmm0, xmm2
punpckhwd xmm4, xmm2
por xmm0, xmm4
por xmm1, xmm0
por xmm5, xmm1
cmp rax, rdx
jne 0x1401591a8
movdqa xmm1, xmm5
movdqa xmm4, xmm5
lea rdx, [rsi + 1]
psrldq xmm1, 8
por xmm1, xmm5
psrldq xmm5, 8
movdqa xmm0, xmm1
por xmm4, xmm5
psrldq xmm0, 4
por xmm1, xmm0
movd eax, xmm1
cmp rcx, rsi
je 0x140159317
mov rbx, r9
sub rbx, rsi
lea rcx, [rbx - 1]
sub rbx, 2
cmp rbx, 6
jbe 0x1401592aa
movq xmm2, qword [r8 + rsi + 1]
pxor xmm0, xmm0
pxor xmm3, xmm3
movdqa xmm1, xmm2
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
movdqa xmm0, xmm1
movdqa xmm5, xmm1
movdqa xmm1, xmm2
punpcklwd xmm0, xmm3
punpcklwd xmm2, xmm3
punpcklwd xmm5, xmm3
pshufd xmm0, xmm0, 0x4e
punpcklwd xmm1, xmm3
pshufd xmm2, xmm2, 0x4e
por xmm0, xmm5
por xmm2, xmm1
por xmm0, xmm2
por xmm0, xmm4
movd ebx, xmm0
pshufd xmm5, xmm0, 0xe5
movd eax, xmm5
or eax, ebx
mov rbx, rcx
and rbx, 0xfffffffffffffff8
add rdx, rbx
and ecx, 7
je 0x140159317
movzx ecx, byte [r8 + rdx]
or eax, ecx
lea rcx, [rdx + 1]
cmp rcx, r9
jae 0x140159317
movzx ecx, byte [r8 + rdx + 1]
or eax, ecx
lea rcx, [rdx + 2]
cmp rcx, r9
jae 0x140159317
movzx ecx, byte [r8 + rdx + 2]
or eax, ecx
lea rcx, [rdx + 3]
cmp rcx, r9
jae 0x140159317
movzx ecx, byte [r8 + rdx + 3]
or eax, ecx
lea rcx, [rdx + 4]
cmp rcx, r9
jae 0x140159317
movzx ecx, byte [r8 + rdx + 4]
or eax, ecx
lea rcx, [rdx + 5]
cmp rcx, r9
jae 0x140159317
movzx ecx, byte [r8 + rdx + 5]
or eax, ecx
lea rcx, [rdx + 6]
cmp rcx, r9
jae 0x140159317
movzx edx, byte [r8 + rdx + 6]
or eax, edx
test eax, eax
jne 0x140159117
mov rbx, r9
jmp 0x140159128
mov dword [rsp + 0x20], 0x9a
lea r9, str.crypto_asn1_a_int.c
mov r8d, 0xde
xor ebx, ebx
mov edx, 0xe2
mov ecx, 0xd
call fcn.1400a0f90
jmp 0x140159162
test r10, r10
je 0x140159376
movzx edx, byte [r8]
mov eax, edx
neg eax
test r11b, r11b
cmovns eax, edx
mov byte [r10], al
mov ebx, 1
jmp 0x140159162
mov dword [rsp + 0x20], 0xbb
lea r9, str.crypto_asn1_a_int.c
mov r8d, 0xdd
xor ebx, ebx
mov edx, 0xe2
mov ecx, 0xd
call fcn.1400a0f90
jmp 0x140159162
pxor xmm4, xmm4
xor esi, esi
mov edx, 1
xor eax, eax
jmp 0x140159222