Function at 0x18015d0a0
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x58
call fcn.1801312a0
sub rsp, rax
mov r13d, dword [rsp + 0xb0]
xor r15d, r15d
movsxd rdi, r9d
mov r14, r8
mov rsi, rcx
mov r12d, r15d
test edx, edx
jle 0x18015d501
test r9d, r9d
jle 0x18015d501
cmp edi, r13d
jg 0x18015d4e1
cmp r13d, 0xb
jl 0x18015d4e1
lea r8d, [rax + 0x27]
mov qword [rsp + 0xa0], rbx
lea rdx, [0x1803689a8]
mov ecx, r13d
call fcn.180136530
mov rbx, rax
test rax, rax
jne 0x18015d156
lea r9, [0x1803689c0]
mov dword [rsp + 0x20], 0x81
lea edx, [rax + 0x72]
lea ecx, [rax + 4]
lea r8d, [r15 + 0x41]
call fcn.180136e40
lea eax, [rbx - 1]
mov rbx, qword [rsp + 0xa0]
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
movsxd rax, r13d
add r14, rdi
add rbx, rax
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x40], rax
test r13d, r13d
jle 0x18015d1a2
mov rdx, r13
mov eax, edi
lea ecx, [rdi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec rbx
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edi, eax
mov eax, ecx
and eax, 1
sub r14, rax
movzx eax, byte [r14]
and al, cl
mov byte [rbx], al
sub rdx, 1
jne 0x18015d171
movzx eax, byte [rbx + 1]
mov r11d, 2
movzx ecx, byte [rbx]
xor eax, 2
mov r10d, r15d
mov edi, r15d
lea ebp, [rax - 1]
not eax
shr eax, 0x1f
shr ebp, 0x1f
and ebp, eax
lea eax, [rcx - 1]
shr eax, 0x1f
neg ebp
neg eax
and ebp, eax
mov dword [rsp + 0x30], ebp
mov r14d, ebp
not r14d
mov dword [rsp + 0x34], r14d
mov eax, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
and eax, 0x6b
mov dword [rsp + 0x38], eax
cmp r13d, r11d
jle 0x18015d267
mov r8d, 0xffffffff
lea r9, [rbx + 2]
nop
movzx edx, byte [r9]
lea r9, [r9 + 1]
dec edx
shr edx, 0x1f
neg edx
and r8d, edx
or r10d, edx
mov dword [rsp + 0x34], r8d
not r8d
mov dword [rsp + 0x30], r8d
mov r8d, r10d
mov ecx, dword [rsp + 0x34]
not r8d
mov eax, dword [rsp + 0x30]
and ecx, r11d
and r12d, eax
inc r11d
movzx eax, byte [r9 - 1]
or r12d, ecx
xor eax, 3
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r8d
neg ecx
and eax, 1
add eax, edi
or ecx, r10d
mov edi, ecx
and edi, eax
cmp r11d, r13d
jl 0x18015d200
mov r9d, dword [rsp + 0x98]
lea eax, [r12 - 0xa]
or eax, r12d
xor eax, r12d
shr eax, 0x1f
dec eax
and ebp, eax
mov eax, ebp
mov ecx, ebp
or eax, r14d
not ecx
mov dword [rsp + 0x34], eax
mov r14d, r13d
not eax
sub r14d, r12d
mov dword [rsp + 0x30], eax
dec r14d
mov eax, dword [rsp + 0x34]
and eax, dword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
and edx, 0x71
or edx, eax
lea eax, [rdi - 8]
or eax, edi
xor eax, edi
shr eax, 0x1f
dec eax
and ebp, eax
mov eax, ebp
or eax, ecx
mov ecx, r9d
mov dword [rsp + 0x38], eax
sub ecx, r14d
not eax
xor ecx, r14d
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x34]
and eax, edx
and r8d, 0x73
mov edx, ebp
or r8d, eax
not edx
mov eax, r14d
xor eax, r9d
or ecx, eax
xor ecx, r9d
shr ecx, 0x1f
dec ecx
and ebp, ecx
lea ecx, [r13 - 0xb]
mov eax, ebp
or eax, edx
mov edx, ecx
mov dword [rsp + 0x98], eax
sub edx, r9d
xor edx, r9d
not eax
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x98]
mov edi, dword [rsp + 0x38]
and eax, r8d
and edi, 0x6d
or edi, eax
mov eax, ecx
xor eax, r9d
mov dword [rsp + 0x30], edi
or edx, eax
xor edx, ecx
lea ecx, [r13 - 0xb]
shr edx, 0x1f
neg edx
mov dword [rsp + 0x98], edx
not edx
mov dword [rsp + 0x38], edx
mov eax, dword [rsp + 0x98]
mov edx, dword [rsp + 0x38]
and eax, ecx
and edx, r9d
or edx, eax
mov dword [rsp + 0x34], edx
mov r10d, 1
cmp ecx, r10d
jle 0x18015d409
mov r12d, r13d
lea esi, [r13 - 0xb]
sub r12d, r14d
add r12d, 0xfffffff5
mov eax, r12d
and eax, r10d
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r13d
sub eax, r10d
dec ecx
movsxd r8, eax
cmp r8, 0xb
jle 0x18015d3f1
movzx r11d, cl
lea rax, [rbx + 0xb]
mov r9d, r11d
movsxd rdi, r10d
not r9d
add r8, 0xfffffffffffffff5
nop word [rax + rax]
mov dword [rsp + 0x98], r11d
lea rax, [rax + 1]
mov dword [rsp + 0x38], r9d
mov ecx, dword [rsp + 0x98]
movzx edx, byte [rdi + rax - 1]
and dl, cl
mov ecx, dword [rsp + 0x38]
and cl, byte [rax - 1]
or cl, dl
mov byte [rax - 1], cl
sub r8, 1
jne 0x18015d3c0
add r10d, r10d
cmp r10d, esi
jl 0x18015d381
mov rsi, qword [rsp + 0x90]
mov edx, dword [rsp + 0x34]
mov edi, dword [rsp + 0x30]
movsxd r10, edx
test edx, edx
jle 0x18015d47c
mov r9d, r14d
mov r11, rbx
shr r9d, 0x1f
sub r11, rsi
nop dword [rax]
mov edx, r15d
lea rsi, [rsi + 1]
sub edx, r14d
mov ecx, r15d
shr ecx, 0x1f
movzx eax, r9b
xor al, cl
shr edx, 0x1f
xor dl, r9b
inc r15d
or dl, al
movzx eax, bpl
xor dl, cl
neg dl
movzx ecx, dl
and ecx, eax
mov dword [rsp + 0x98], ecx
not ecx
mov dword [rsp + 0x38], ecx
mov eax, dword [rsp + 0x98]
movzx ecx, byte [r11 + rsi + 0xa]
and cl, al
mov eax, dword [rsp + 0x38]
and al, byte [rsi - 1]
or al, cl
mov byte [rsi - 1], al
sub r10, 1
jne 0x18015d420
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.180138380
mov rcx, rbx
call fcn.1801365e0
mov edx, WSACleanup
mov dword [rsp + 0x20], 0xd8
lea r9, str..crypto_rsa_rsa_ssl.c
mov r8d, edi
lea ecx, [rdx - 0x6e]
call fcn.180136e40
mov ecx, ebp
and ecx, 1
call fcn.1801377c0
mov dword [rsp + 0x98], ebp
not ebp
mov dword [rsp + 0x38], ebp
mov ecx, dword [rsp + 0x98]
mov eax, dword [rsp + 0x38]
and ecx, r14d
mov rbp, qword [rsp + 0x50]
or eax, ecx
jmp 0x18015d13f
mov edx, WSACleanup
mov dword [rsp + 0x20], 0x7b
lea r9, [0x180368990]
lea ecx, [rdx - 0x6e]
lea r8d, [rdx - 3]
call fcn.180136e40
mov eax, 0xffffffff
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret