Function at 0x14015b7b0
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r13
push r14
mov eax, 0x50
call fcn.1401ddd50
sub rsp, rax
xor ebp, ebp
movsxd rdi, r9d
mov r14, r8
mov rsi, rcx
mov r13d, ebp
test edx, edx
jle 0x14015bc4a
test r9d, r9d
jle 0x14015bc4a
mov qword [rsp + 0x98], r15
mov r15d, dword [rsp + 0xa0]
cmp edi, r15d
jg 0x14015bc22
cmp r15d, 0xb
jl 0x14015bc22
lea r8d, [rax + 0x2f]
mov qword [rsp + 0x80], rbx
lea rdx, [0x14036dae8]
mov ecx, r15d
call fcn.1400e5c30
mov rbx, rax
test rax, rax
jne 0x14015b86a
lea r9, [0x14036db00]
mov dword [rsp + 0x20], 0x81
lea edx, [rbp + 0x72]
lea ecx, [rbp + 4]
lea r8d, [rbp + 0x41]
call fcn.1400e3440
or eax, 0xffffffff
mov rbx, qword [rsp + 0x80]
mov r15, qword [rsp + 0x98]
add rsp, 0x50
pop r14
pop r13
pop rdi
pop rsi
pop rbp
ret
movsxd rax, r15d
add r14, rdi
add rbx, rax
mov qword [rsp + 0x90], r12
mov qword [rsp + 0x40], rax
test r15d, r15d
jle 0x14015b8c1
mov rdx, r15
nop dword [rax + rax]
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 0x14015b890
movzx ecx, byte [rbx]
mov r11d, 2
movzx eax, byte [rbx + 1]
mov r10d, ebp
xor eax, 2
mov edi, ebp
lea r14d, [rax - 1]
not eax
shr eax, 0x1f
shr r14d, 0x1f
and r14d, eax
lea eax, [rcx - 1]
shr eax, 0x1f
neg r14d
not ecx
shr ecx, 0x1f
and eax, ecx
neg eax
and r14d, eax
mov dword [rsp + 0x30], r14d
mov r12d, r14d
not r12d
mov dword [rsp + 0x34], r12d
mov eax, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
and eax, 0x6b
mov dword [rsp + 0x38], eax
cmp r15d, r11d
jle 0x14015b99f
or r8d, 0xffffffff
lea r9, [rbx + 2]
nop dword [rax + rax]
movzx eax, byte [r9]
lea r9, [r9 + 1]
lea edx, [rax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
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 r13d, eax
inc r11d
movzx eax, byte [r9 - 1]
or r13d, 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, r15d
jl 0x14015b930
mov r9d, dword [rsp + 0x88]
lea eax, [r13 - 0xa]
or eax, r13d
xor eax, r13d
shr eax, 0x1f
dec eax
and r14d, eax
mov eax, r14d
mov ecx, r14d
or eax, r12d
not ecx
mov dword [rsp + 0x34], eax
mov r12d, r15d
not eax
sub r12d, r13d
mov dword [rsp + 0x30], eax
lea r13d, [r15 - 0xb]
mov eax, dword [rsp + 0x34]
dec r12d
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 r14d, eax
mov eax, r14d
or eax, ecx
mov ecx, r9d
mov dword [rsp + 0x38], eax
sub ecx, r12d
not eax
xor ecx, r12d
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x34]
and eax, edx
and r8d, 0x73
mov dword [rsp + 0x34], r12d
or r8d, eax
mov edx, r14d
not edx
mov eax, r12d
xor eax, r9d
or ecx, eax
xor ecx, r9d
shr ecx, 0x1f
dec ecx
and r14d, ecx
mov eax, r14d
or eax, edx
mov dword [rsp + 0x88], eax
not eax
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x38]
and eax, r8d
and ecx, 0x6d
or ecx, eax
mov dword [rsp + 0x3c], ecx
lea ecx, [r15 - 0xb]
mov edx, ecx
mov eax, ecx
sub edx, r9d
xor eax, r9d
xor edx, r9d
or edx, eax
xor edx, ecx
shr edx, 0x1f
neg edx
mov dword [rsp + 0x88], edx
not edx
mov dword [rsp + 0x38], edx
mov eax, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x38]
and eax, r13d
and ecx, r9d
or ecx, eax
mov r10d, 1
mov dword [rsp + 0x30], ecx
cmp r13d, r10d
jle 0x14015bb42
mov eax, r15d
sub eax, r12d
lea r12d, [rax - 0xb]
mov eax, r12d
and eax, r10d
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r15d
sub eax, r10d
dec ecx
movsxd r8, eax
cmp r8, 0xb
jle 0x14015bb31
movzx r11d, cl
lea rax, [rbx + 0xb]
mov r9d, r11d
movsxd rdi, r10d
not r9d
add r8, 0xfffffffffffffff5
nop dword [rax + rax]
mov dword [rsp + 0x88], r11d
lea rax, [rax + 1]
mov dword [rsp + 0x38], r9d
mov ecx, dword [rsp + 0x88]
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 0x14015bb00
add r10d, r10d
cmp r10d, r13d
jl 0x14015bac2
mov r12d, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x30]
movsxd r10, ecx
test ecx, ecx
jle 0x14015bbb4
mov r9d, r12d
movzx edi, r14b
mov r11d, r12d
shr r9d, 0x1f
neg r11d
mov r15, rbx
sub r15, rsi
mov ecx, ebp
lea edx, [r11 + rbp]
shr ecx, 0x1f
lea rsi, [rsi + 1]
shr edx, 0x1f
movzx eax, r9b
xor al, cl
xor dl, r9b
or dl, al
inc ebp
xor dl, cl
neg dl
movzx eax, dl
and eax, edi
mov dword [rsp + 0x88], eax
not eax
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x88]
movzx ecx, byte [r15 + 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 0x14015bb60
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.140121e10
mov rcx, rbx
call fcn.1400e5b90
mov r8d, dword [rsp + 0x3c]
lea r9, [0x14036db18]
mov edx, WSAStartup
mov dword [rsp + 0x20], 0xd8
lea ecx, [rdx - 0x6e]
call fcn.1400e3440
mov ecx, r14d
and ecx, 1
call fcn.1400e3770
mov dword [rsp + 0x88], r14d
not r14d
mov dword [rsp + 0x3c], r14d
mov ecx, dword [rsp + 0x88]
mov eax, dword [rsp + 0x3c]
and ecx, r12d
mov r12, qword [rsp + 0x90]
or eax, ecx
jmp 0x14015b84e
mov edx, WSAStartup
mov dword [rsp + 0x20], 0x7b
lea r9, [0x14036dad0]
lea ecx, [rdx - 0x6e]
lea r8d, [rdx - 3]
call fcn.1400e3440
or eax, 0xffffffff
jmp 0x14015b856
or eax, 0xffffffff
add rsp, 0x50
pop r14
pop r13
pop rdi
pop rsi
pop rbp
ret