Function at 0x140128220
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push r12
push r14
push r15
mov eax, 0x40
call fcn.1401c1440
sub rsp, rax
xor r14d, r14d
movsxd rbx, r9d
mov rsi, r8
mov r12d, edx
mov r15, rcx
test edx, edx
jle 0x1401285aa
test r9d, r9d
jle 0x1401285aa
mov qword [rsp + 0x70], rbp
mov ebp, dword [rsp + 0x90]
cmp ebx, ebp
jg 0x14012857d
cmp ebp, 0xb
jl 0x14012857d
mov qword [rsp + 0x80], rdi
lea r8d, [rax + 0x72]
mov qword [rsp + 0x88], r13
lea rdx, str.crypto_rsa_rsa_pk1.c
movsxd r13, ebp
mov rcx, r13
mov qword [rsp + 0x38], r13
call fcn.1400c97e0
mov rdi, rax
test rax, rax
jne 0x1401282e2
xor r9d, r9d
mov dword [rsp + 0x20], r14d
lea edx, [rax + 0x71]
lea ecx, [rax + 4]
lea r8d, [r14 + 0x41]
call fcn.1400c0bd0
or eax, 0xffffffff
mov rdi, qword [rsp + 0x80]
mov r13, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret
add rsi, rbx
add rdi, r13
test ebp, ebp
jle 0x140128320
mov rdx, rbp
nop
mov eax, ebx
lea ecx, [rbx - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec rdi
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
mov byte [rdi], al
sub rdx, 1
jne 0x1401282f0
movzx ecx, byte [rdi]
xor r10d, r10d
movzx eax, byte [rdi + 1]
mov r8d, 2
xor eax, 2
lea esi, [rax - 1]
not eax
shr eax, 0x1f
shr esi, 0x1f
and esi, eax
lea eax, [rcx - 1]
shr eax, 0x1f
neg esi
not ecx
shr ecx, 0x1f
and eax, ecx
neg eax
and esi, eax
cmp ebp, r8d
jle 0x1401283a4
lea r9, [rdi + 2]
nop dword [rax]
movzx eax, byte [r9]
lea r9, [r9 + 1]
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 + 0x30], eax
mov ecx, dword [rsp + 0x78]
mov eax, dword [rsp + 0x30]
and ecx, r8d
and r14d, eax
inc r8d
or r14d, ecx
cmp r8d, ebp
jl 0x140128360
mov r13d, ebp
mov ecx, r12d
sub r13d, r14d
mov r10d, 1
dec r13d
sub ecx, r13d
mov eax, r13d
xor eax, r12d
xor ecx, r13d
or ecx, eax
lea eax, [r14 - 0xa]
or eax, r14d
xor ecx, r12d
xor eax, r14d
shr ecx, 0x1f
shr eax, 0x1f
lea r14d, [rbp - 0xb]
dec eax
dec ecx
and ecx, eax
and esi, ecx
lea ecx, [rbp - 0xb]
mov edx, ecx
mov eax, ecx
sub edx, r12d
xor eax, r12d
xor edx, r12d
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov dword [rsp + 0x78], edx
not edx
mov dword [rsp + 0x30], edx
mov eax, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x30]
and eax, r14d
and ecx, r12d
or ecx, eax
mov dword [rsp + 0x34], ecx
cmp r14d, r10d
jle 0x1401284a7
mov r12d, ebp
sub r12d, r13d
add r12d, 0xfffffff5
nop dword [rax]
mov eax, r12d
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
movsxd r8, eax
cmp r8, 0xb
jle 0x14012849b
movzx r11d, cl
lea rax, [rdi + 0xb]
mov r9d, r11d
movsxd rbx, r10d
not r9d
add r8, 0xfffffffffffffff5
nop dword [rax + rax]
mov dword [rsp + 0x78], r11d
lea rax, [rax + 1]
mov dword [rsp + 0x30], r9d
mov ecx, dword [rsp + 0x78]
movzx edx, byte [rax + rbx - 1]
and dl, cl
mov ecx, dword [rsp + 0x30]
and cl, byte [rax - 1]
or cl, dl
mov byte [rax - 1], cl
sub r8, 1
jne 0x140128470
add r10d, r10d
cmp r10d, r14d
jl 0x140128430
mov ecx, dword [rsp + 0x34]
xor r9d, r9d
movsxd r11, ecx
test ecx, ecx
jle 0x140128522
mov r10d, r13d
movzx ebp, sil
mov ebx, r13d
shr r10d, 0x1f
neg ebx
mov r14, rdi
sub r14, r15
nop word [rax + rax]
mov ecx, r9d
lea edx, [rbx + r9]
shr ecx, 0x1f
lea r15, [r15 + 1]
shr edx, 0x1f
movzx eax, r10b
xor al, cl
xor dl, r10b
or dl, al
inc r9d
xor dl, cl
neg dl
movzx eax, dl
and eax, ebp
mov dword [rsp + 0x78], eax
not eax
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x78]
movzx ecx, byte [r14 + r15 + 0xa]
and cl, al
mov eax, dword [rsp + 0x34]
and al, byte [r15 - 1]
or al, cl
mov byte [r15 - 1], al
sub r11, 1
jne 0x1401284d0
mov rdx, qword [rsp + 0x38]
lea r8, str.crypto_rsa_rsa_pk1.c
mov r9d, 0xfa
mov rcx, rdi
call fcn.1400c9940
xor r9d, r9d
mov dword [rsp + 0x20], 0
lea edx, [r9 + 0x71]
lea ecx, [rdx - 0x6d]
lea r8d, [rdx + 0x2e]
call fcn.1400c0bd0
mov ecx, esi
and ecx, 1
call fcn.1400c0f30
mov dword [rsp + 0x78], esi
not esi
mov dword [rsp + 0x34], esi
mov ecx, dword [rsp + 0x78]
mov eax, dword [rsp + 0x34]
and ecx, r13d
or eax, ecx
jmp 0x1401282c0
xor r9d, r9d
mov dword [rsp + 0x20], r14d
lea edx, [r9 + 0x71]
lea ecx, [rdx - 0x6d]
lea r8d, [rdx + 0x2e]
call fcn.1400c0bd0
mov rbp, qword [rsp + 0x70]
or eax, 0xffffffff
add rsp, 0x40
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret
or eax, 0xffffffff
add rsp, 0x40
pop r15
pop r14
pop r12
pop rsi
pop rbx
ret