Function at 0x140186830
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push r13
push r14
push r15
mov eax, 0x30
call fcn.1402358a0
sub rsp, rax
xor r14d, r14d
movsxd rbx, r9d
mov rsi, r8
mov r13d, edx
mov r15, rcx
mov ebp, r14d
test edx, edx
jle 0x140186ad2
test r9d, r9d
jle 0x140186ad2
mov qword [rsp + 0x60], rdi
mov edi, dword [rsp + 0x80]
cmp ebx, edi
jg 0x140186aa8
cmp edi, 0xb
jl 0x140186aa8
mov qword [rsp + 0x68], r12
lea rdx, str.crypto_rsa_rsa_pk1.c
movsxd r12, edi
mov r8d, 0xb2
mov rcx, r12
call fcn.14014d990
mov r10, rax
test rax, rax
jne 0x1401868ed
lea r9, str.crypto_rsa_rsa_pk1.c
mov dword [rsp + 0x20], 0xb4
lea edx, [rax + 0x71]
lea ecx, [rax + 4]
lea r8d, [r14 + 0x41]
call fcn.140148150
lea eax, [r14 - 1]
mov r12, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop rsi
pop rbp
ret
add rsi, rbx
add r10, r12
test edi, edi
jle 0x140186931
mov rdx, rdi
nop word [rax + rax]
mov eax, ebx
lea ecx, [rbx - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec r10
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 [r10], al
sub rdx, 1
jne 0x140186900
movzx eax, byte [r10 + 1]
mov r8d, 2
xor eax, 2
mov r11d, r14d
lea ebx, [rax - 1]
not eax
shr eax, 0x1f
shr ebx, 0x1f
and ebx, eax
movzx eax, byte [r10]
dec eax
neg ebx
shr eax, 0x1f
neg eax
and ebx, eax
cmp edi, r8d
jle 0x14018699c
lea r9, [r10 + 2]
nop word [rax + rax]
movzx edx, byte [r9]
lea r9, [r9 + 1]
dec edx
mov ecx, r11d
shr edx, 0x1f
not ecx
neg edx
and ecx, edx
or r11d, edx
mov eax, ecx
and ecx, r8d
not eax
inc r8d
and ebp, eax
or ebp, ecx
cmp r8d, edi
jl 0x140186970
lea edx, [rbp + 1]
mov eax, edi
sub eax, edx
mov ecx, r13d
sub ecx, eax
xor ecx, eax
xor eax, r13d
or ecx, eax
lea eax, [rbp - 0xa]
or eax, ebp
xor ecx, r13d
xor eax, ebp
shr ecx, 0x1f
dec ecx
shr eax, 0x1f
dec eax
and ecx, eax
mov eax, r13d
and ebx, ecx
xor eax, edi
mov ecx, edi
and edx, ebx
sub ecx, r13d
mov ebp, ebx
xor ecx, r13d
not ebp
or ecx, eax
mov r9d, ebx
xor ecx, edi
mov eax, edi
shr ecx, 0x1f
neg ecx
mov esi, ecx
and ecx, edi
not esi
and esi, r13d
or esi, ecx
sub eax, esi
and eax, ebp
or eax, edx
movsxd r11, eax
sub edi, eax
add r11, r10
test esi, esi
jle 0x140186a5b
mov r8, r15
nop dword [rax + rax]
mov eax, r14d
inc r14d
xor eax, edi
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, esi
neg ecx
mov edx, ecx
and rcx, rax
sub r11, rcx
mov rax, r8
sub rax, r15
xor edx, r9d
and r9d, edx
movzx ecx, byte [rax + r11]
movzx eax, r9b
and cl, r9b
not al
and al, byte [r8]
or cl, al
mov byte [r8], cl
inc r8
cmp r14d, esi
jl 0x140186a10
mov r9d, 0xfa
lea r8, str.crypto_rsa_rsa_pk1.c
mov rdx, r12
mov rcx, r10
call fcn.14014daf0
mov edx, WSACleanup
mov dword [rsp + 0x20], 0xfb
lea r9, str.crypto_rsa_rsa_pk1.c
lea ecx, [rdx - 0x6d]
lea r8d, [rdx + 0x2e]
call fcn.140148150
mov ecx, ebx
and ecx, 1
call fcn.140148440
and ebx, edi
or ebx, ebp
mov eax, ebx
jmp 0x1401868d1
mov edx, WSACleanup
mov dword [rsp + 0x20], 0xae
lea r9, str.crypto_rsa_rsa_pk1.c
lea ecx, [rdx - 0x6d]
lea r8d, [rdx + 0x2e]
call fcn.140148150
mov eax, 0xffffffff
jmp 0x1401868d6
mov rbx, qword [rsp + 0x70]
mov eax, 0xffffffff
add rsp, 0x30
pop r15
pop r14
pop r13
pop rsi
pop rbp
ret