Function at 0x140160aa0
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x48
call fcn.1400fe1d0
sub rsp, rax
mov r15d, dword [rsp + 0xa0]
xor r12d, r12d
movsxd rdi, r9d
mov rsi, r8
mov r14, rcx
mov ebp, r12d
test edx, edx
js 0x140160dcb
test r9d, r9d
js 0x140160dcb
cmp edi, r15d
jg 0x140160dab
cmp r15d, 0xb
jl 0x140160dab
mov r8d, 0xe3
mov qword [rsp + 0x90], rbx
lea rdx, [0x140288ee0]
mov ecx, r15d
call fcn.1400e9750
mov rbx, rax
test rax, rax
jne 0x140160b57
lea r9, [0x140288ef8]
mov dword [rsp + 0x20], 0xe5
lea edx, [rax + 0x71]
lea ecx, [rax + 4]
lea r8d, [r12 + 0x41]
call fcn.1400d2310
lea eax, [rbx - 1]
mov rbx, qword [rsp + 0x90]
add rsp, 0x48
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
movsxd rax, r15d
add rsi, rdi
mov qword [rsp + 0x30], rax
add rbx, rax
mov qword [rsp + 0x40], r13
mov rdx, r15
nop dword [rax]
mov eax, edi
lea ecx, [rdi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
mov r8, rbx
and ecx, eax
dec rbx
dec ecx
mov eax, ecx
and eax, 1
sub edi, eax
mov eax, ecx
and eax, 1
sub rsi, rax
movzx eax, byte [rsi]
and al, cl
mov byte [rbx], al
sub rdx, 1
jne 0x140160b70
movzx esi, byte [r8]
lea r10, [rbx + 2]
xor esi, 2
movzx eax, al
dec esi
lea r8d, [rdx + 2]
dec eax
shr esi, 0x1f
shr eax, 0x1f
neg esi
neg eax
mov r9d, r12d
and esi, eax
nop dword [rax + rax]
movzx edx, byte [r10]
lea r10, [r10 + 1]
dec edx
mov ecx, r9d
shr edx, 0x1f
not ecx
neg edx
and ecx, edx
or r9d, edx
mov eax, ecx
and ecx, r8d
not eax
inc r8d
and ebp, eax
or ebp, ecx
cmp r8d, r15d
jl 0x140160bd0
mov r8d, dword [rsp + 0x88]
mov r13d, r15d
sub r13d, ebp
mov ecx, r8d
dec r13d
mov r11d, 1
sub ecx, r13d
mov eax, r13d
xor ecx, r13d
xor eax, r8d
or ecx, eax
lea eax, [rbp - 0xa]
or eax, ebp
xor ecx, r8d
xor eax, ebp
shr ecx, 0x1f
dec ecx
shr eax, 0x1f
dec eax
lea ebp, [r15 - 0xb]
and ecx, eax
and esi, ecx
lea ecx, [r15 - 0xb]
mov edx, ecx
mov eax, ecx
sub edx, r8d
xor eax, r8d
xor edx, r8d
or edx, eax
mov eax, ebp
xor edx, ecx
shr edx, 0x1f
neg edx
and eax, edx
mov ecx, edx
not ecx
and ecx, r8d
or ecx, eax
mov dword [rsp + 0x88], ecx
cmp ebp, r11d
jle 0x140160cf4
mov r14d, r15d
sub r14d, r13d
add r14d, 0xfffffff5
mov eax, r14d
and eax, r11d
lea r8d, [rax - 1]
not eax
shr eax, 0x1f
shr r8d, 0x1f
and r8d, eax
mov eax, r15d
sub eax, r11d
dec r8d
movsxd r9, eax
cmp r9, 0xb
jle 0x140160cdd
movzx r10d, r8b
movsxd rdi, r11d
not r10b
lea rax, [rbx + 0xb]
add r9, 0xfffffffffffffff5
nop dword [rax + rax]
movzx edx, byte [rdi + rax]
lea rax, [rax + 1]
and dl, r8b
movzx ecx, r10b
and cl, byte [rax - 1]
or dl, cl
mov byte [rax - 1], dl
sub r9, 1
jne 0x140160cc0
add r11d, r11d
cmp r11d, ebp
jl 0x140160c81
mov r14, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x88]
movsxd r10, ecx
test ecx, ecx
jle 0x140160d59
mov r9d, r13d
mov r11, rbx
shr r9d, 0x1f
sub r11, r14
nop dword [rax + rax]
mov r8d, r12d
lea r14, [r14 + 1]
sub r8d, r13d
mov ecx, r12d
shr r8d, 0x1f
movzx eax, r9b
xor r8b, r9b
shr ecx, 0x1f
xor al, cl
inc r12d
or r8b, al
movzx eax, byte [r11 + r14 + 0xa]
xor r8b, cl
neg r8b
and r8b, sil
and al, r8b
not r8b
and r8b, byte [r14 - 1]
or al, r8b
mov byte [r14 - 1], al
sub r10, 1
jne 0x140160d10
mov rdx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.14010d170
mov rcx, rbx
call fcn.1400e9870
mov edx, WSACleanup
mov dword [rsp + 0x20], 0x12d
lea r9, str..crypto_rsa_rsa_pk1.c
lea ecx, [rdx - 0x6d]
lea r8d, [rdx + 0x2e]
call fcn.1400d2310
mov ecx, esi
and ecx, 1
call fcn.1400d3110
mov eax, esi
not esi
and eax, r13d
mov r13, qword [rsp + 0x40]
or eax, esi
jmp 0x140160b41
mov edx, WSACleanup
mov dword [rsp + 0x20], 0xdf
lea r9, [0x140288ec8]
lea ecx, [rdx - 0x6d]
lea r8d, [rdx + 0x2e]
call fcn.1400d2310
mov eax, 0xffffffff
add rsp, 0x48
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret