Function at 0x140123a30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
mov ebx, dword [rsp + 0x1b0]
mov r15, qword [rsp + 0x1c0]
test r8d, r8d
mov rdi, rdx
mov r14, rcx
mov r13d, r8d
setle dl
test ebx, ebx
mov rsi, r9
setle al
or dl, al
jne 0x140123d48
cmp dword [rsp + 0x1b8], ebx
jne 0x140123d48
movsxd rcx, ebx
mov r8d, 0x1aa
lea rdx, str.crypto_rsa_rsa_pk1.c
call fcn.140095a80
mov r12, rax
test rax, rax
je 0x140123d7f
lea eax, [rbx*8]
mov r8d, ebx
mov rdx, r12
mov rcx, r14
movzx eax, ax
mov qword [rsp + 0x28], r15
lea r9, str.message
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x20], 7
call fcn.140122f00
test eax, eax
js 0x140123cd0
mov dword [rsp + 0x30], 0x800
lea rbp, [rsp + 0x40]
lea r9, [0x1405981c4]
mov rcx, r14
mov qword [rsp + 0x28], r15
mov r8d, 0x100
mov rdx, rbp
mov dword [rsp + 0x20], 6
call fcn.140122f00
test eax, eax
js 0x140123cd0
lea r11d, [rbx - 0xa]
mov rcx, rbp
lea r15, [rsp + 0x140]
xor r9d, r9d
mov eax, r11d
movzx r10d, r11w
shr ax, 1
or eax, r11d
mov r14d, eax
shr ax, 2
or eax, r14d
mov r14d, eax
shr r14w, 4
or eax, r14d
mov r14d, eax
shr r14w, 8
or r14d, eax
movzx r8d, byte [rcx]
add rcx, 2
mov eax, r8d
movzx r8d, byte [rcx - 1]
shl eax, 8
or r8d, eax
and r8d, r14d
movzx edx, r8w
xor r8d, r11d
mov eax, edx
movzx r8d, r8w
sub eax, r10d
xor eax, r10d
or eax, r8d
xor eax, edx
sar eax, 0x1f
mov r8d, eax
not eax
and edx, r8d
and r9d, eax
or r9d, edx
cmp r15, rcx
jne 0x140123b50
movzx eax, byte [rsi + 1]
movzx edx, byte [rsi]
mov r15d, ebx
sub r15d, r9d
xor eax, 2
movzx eax, al
mov r14d, eax
sub eax, 1
not r14d
and eax, r14d
mov r14d, edx
sub edx, 1
not r14d
and r14d, edx
and r14d, eax
sar r14d, 0x1f
cmp ebx, 2
jle 0x140123d31
lea r11d, [rbx - 3]
mov r8d, 2
xor r10d, r10d
xor r9d, r9d
add r11, 3
nop word cs:[rax + rax]
movzx eax, byte [rsi + r8]
mov edx, eax
sub eax, 1
not edx
and eax, edx
cdq
mov eax, r9d
not eax
or r9d, edx
and eax, edx
mov ecx, eax
not eax
and ecx, r8d
and r10d, eax
add r8, 1
or r10d, ecx
cmp r11, r8
jne 0x140123bf0
lea edx, [r10 - 0xa]
mov ecx, r10d
mov ebp, dword [rsp + 0x1b8]
lea eax, [r10 + 1]
xor ecx, 0xa
xor edx, 0xa
mov r8d, eax
or edx, ecx
sub ebp, eax
xor r10d, edx
mov edx, r13d
sub edx, ebp
sar r10d, 0x1f
xor edx, ebp
xor ebp, r13d
not r10d
or edx, ebp
and r14d, r10d
xor edx, r13d
sar edx, 0x1f
not edx
and edx, r14d
mov ecx, edx
not ecx
mov eax, edx
and r15d, ecx
and eax, r8d
or r15d, eax
cmp ebx, r15d
jle 0x140123d43
movzx r9d, dl
lea eax, [r15 + 1]
movsxd r15, r15d
xor r14d, r14d
mov r10d, r9d
cdqe
sub rdi, r15
not r10d
nop dword [rax + rax]
movzx ecx, byte [rsi + rax - 1]
movzx r8d, byte [r12 + rax - 1]
add r14d, 1
and ecx, r9d
and r8d, r10d
or ecx, r8d
cmp ebx, eax
setg dl
cmp r13d, r14d
mov byte [rdi + rax - 1], cl
setg cl
add rax, 1
test dl, cl
jne 0x140123c98
jmp 0x140123d05
call fcn.1400bf100
mov edx, 0x209
lea r8, str.ossl_rsa_padding_check_PKCS1_type_2
lea rcx, str.crypto_rsa_rsa_pk1.c
call fcn.1400bf220
xor r8d, r8d
mov edx, 0xc0103
mov ecx, 4
call fcn.1400bf330
mov r14d, 0xffffffff
mov r8d, 0x20a
lea rdx, str.crypto_rsa_rsa_pk1.c
mov rcx, r12
call fcn.140095b40
mov eax, r14d
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0xffffffff
mov r8d, 1
xor edx, edx
jmp 0x140123c66
xor r14d, r14d
jmp 0x140123d05
call fcn.1400bf100
mov edx, 0x1a5
lea r8, str.ossl_rsa_padding_check_PKCS1_type_2
lea rcx, str.crypto_rsa_rsa_pk1.c
call fcn.1400bf220
xor r8d, r8d
mov edx, 0xc0103
mov ecx, 4
call fcn.1400bf330
mov r14d, 0xffffffff
jmp 0x140123d1a
call fcn.1400bf100
lea r8, str.ossl_rsa_padding_check_PKCS1_type_2
mov edx, 0x1ac
lea rcx, str.crypto_rsa_rsa_pk1.c
call fcn.1400bf220
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 4
call fcn.1400bf330
or r14d, 0xffffffff
jmp 0x140123d1a