Function at 0x1401c3c70
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
push r12
push r13
push r14
push r15
mov eax, 0x40
call fcn.1402563a0
sub rsp, rax
xor r14d, r14d
movsxd rbx, r9d
mov rsi, r8
mov r15d, edx
mov r13, rcx
mov r12d, r14d
test edx, edx
jle 0x1401c4045
test r9d, r9d
jle 0x1401c4045
mov qword [rsp + 0x70], rbp
mov ebp, dword [rsp + 0x90]
cmp ebx, ebp
jg 0x1401c400f
cmp ebp, 0xb
jl 0x1401c400f
movsxd rax, ebp
lea rdx, str.crypto_rsa_rsa_pk1.c
mov r8d, 0xbe
mov rcx, rax
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x30], rax
call fcn.1400b4520
mov rdi, rax
test rax, rax
jne 0x1401c3d4b
call fcn.1400baef0
lea r8, str.RSA_padding_check_PKCS1_type_2
lea rcx, str.crypto_rsa_rsa_pk1.c
mov edx, 0xc0
call fcn.1400baf60
lea ecx, [rdi + 4]
xor r8d, r8d
mov edx, 0xc0100
call fcn.1400bb1b0
or eax, 0xffffffff
mov rdi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rsi
ret
movsxd rax, ebp
add rsi, rbx
add rdi, rax
test ebp, ebp
jle 0x1401c3d8f
mov rdx, rbp
nop dword [rax + rax]
mov eax, ebx
lea ecx, [rbx - 1]
dec rdi
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub ebx, eax
mov eax, ecx
and eax, 1
sub rsi, rax
movzx eax, byte [rsi]
and al, cl
dec rdx
mov byte [rdi], al
jne 0x1401c3d60
movzx ecx, byte [rdi]
movzx eax, byte [rdi + 1]
mov r8d, 2
xor eax, 2
mov r10d, r14d
lea esi, [rax - 1]
not eax
shr eax, 0x1f
shr esi, 0x1f
and esi, eax
lea eax, [rcx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
neg esi
and eax, ecx
neg eax
and esi, eax
cmp ebp, r8d
jle 0x1401c3e16
lea r9, [rdi + 2]
nop dword [rax + rax]
movzx eax, byte [r9]
inc r9
lea edx, [rax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
mov eax, r10d
not eax
neg edx
and eax, edx
or r10d, edx
mov dword [rsp + 0x78], eax
not eax
mov dword [rsp + 0x20], eax
mov ecx, dword [rsp + 0x78]
mov eax, dword [rsp + 0x20]
and ecx, r8d
inc r8d
and eax, r12d
mov r12d, ecx
or r12d, eax
cmp r8d, ebp
jl 0x1401c3dd0
mov r11d, ebp
mov ecx, r15d
mov r10d, 1
sub r11d, r12d
dec r11d
sub ecx, r11d
mov eax, r11d
mov dword [rsp + 0x78], r11d
xor eax, r15d
xor ecx, r11d
or ecx, eax
lea eax, [r12 - 0xa]
or eax, r12d
xor ecx, r15d
xor eax, r12d
shr ecx, 0x1f
lea r12d, [rbp - 0xb]
shr eax, 0x1f
dec ecx
dec eax
and ecx, eax
and esi, ecx
lea ecx, [rbp - 0xb]
mov edx, ecx
mov eax, ecx
sub edx, r15d
xor eax, r15d
xor edx, r15d
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov dword [rsp + 0x20], edx
not edx
mov dword [rsp + 0x24], edx
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x24]
and ecx, r12d
and eax, r15d
or ecx, eax
mov dword [rsp + 0x28], ecx
cmp r12d, r10d
jle 0x1401c3f2a
mov r15d, ebp
sub r15d, r11d
add r15d, 0xfffffff5
nop word [rax + rax]
mov eax, r15d
movsxd rbx, r10d
and eax, r10d
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, ebp
sub eax, r10d
dec ecx
cmp eax, 0xb
jle 0x1401c3f19
movzx r11d, cl
add eax, 0xfffffff5
lea rdx, [rdi + 0xb]
mov r9d, r11d
mov r8d, eax
not r9d
nop word [rax + rax]
mov dword [rsp + 0x24], r11d
mov dword [rsp + 0x20], r9d
inc rdx
mov eax, dword [rsp + 0x24]
movzx ecx, byte [rdx + rbx - 1]
and cl, al
mov eax, dword [rsp + 0x20]
and al, byte [rdx - 1]
or al, cl
dec r8
mov byte [rdx - 1], al
jne 0x1401c3ef0
add r10d, r10d
cmp r10d, r12d
jl 0x1401c3eb0
mov r11d, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x28]
movsxd r9, ecx
test ecx, ecx
jle 0x1401c3fa0
mov r8d, r11d
mov r10d, r11d
mov r11, rdi
shr r8d, 0x1f
neg r10d
sub r11, r13
movzx ebx, sil
nop dword [rax + rax]
mov ecx, r14d
lea edx, [r10 + r14]
inc r13
shr ecx, 0x1f
shr edx, 0x1f
inc r14d
movzx eax, cl
xor dl, r8b
xor al, r8b
or dl, al
xor dl, cl
neg dl
movzx eax, dl
and eax, ebx
mov dword [rsp + 0x28], eax
not eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x28]
movzx ecx, byte [r11 + r13 + 0xa]
and cl, al
mov eax, dword [rsp + 0x24]
and al, byte [r13 - 1]
or al, cl
dec r9
mov byte [r13 - 1], al
jne 0x1401c3f50
mov rdx, qword [rsp + 0x30]
lea r8, str.crypto_rsa_rsa_pk1.c
mov r9d, 0x106
mov rcx, rdi
call fcn.1400b4620
call fcn.1400baef0
lea r8, str.RSA_padding_check_PKCS1_type_2
lea rcx, str.crypto_rsa_rsa_pk1.c
mov edx, 0x10d
call fcn.1400baf60
xor r8d, r8d
mov edx, 0x9f
lea ecx, [r8 + 4]
call fcn.1400bb1b0
mov ecx, esi
and ecx, 1
call fcn.1400a4ea0
mov dword [rsp + 0x28], esi
not esi
mov dword [rsp + 0x24], esi
mov eax, dword [rsp + 0x28]
and eax, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x24]
or eax, ecx
jmp 0x1401c3d28
call fcn.1400baef0
lea r8, str.RSA_padding_check_PKCS1_type_2
lea rcx, str.crypto_rsa_rsa_pk1.c
mov edx, 0xba
call fcn.1400baf60
xor r8d, r8d
mov edx, 0x9f
lea ecx, [r8 + 4]
call fcn.1400bb1b0
or eax, 0xffffffff
jmp 0x1401c3d30
or eax, 0xffffffff
jmp 0x1401c3d35