Function at 0x140015780
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x10
mov rsi, rcx
mov rax, rcx
sar rsi, 0x39
test esi, esi
jns 0x14001579c
xor eax, eax
add rsp, 0x10
pop rsi
ret
cmp esi, 0x3f
jl 0x1400157b1
movabs rax, 0x7fffffffffffffff
add rsp, 0x10
pop rsi
ret
movsxd rcx, esi
mov qword [rsp + 0x28], rbp
mov ebp, VarI4FromDisp
shl rcx, 0x39
sub rax, rcx
je 0x140015a84
xor r10d, r10d
mov qword [rsp + 0x20], rbx
shl rax, 5
mov ecx, r10d
test rax, rax
mov qword [rsp + 0x30], rdi
sets cl
movabs r9, 0x1351e87200eec236
lea rbx, [0x1400d8810]
neg ecx
mov qword [rsp + 8], r14
mov edi, 1
movsxd rdx, ecx
movabs rcx, 0x26a3d0e401dd846d
lea r11, [0x1400d8828]
add r9, rdx
xor r9, rdx
add r9, rcx
movabs rcx, 0x32b803473f7ad0f4
add rcx, rdx
xor rcx, rdx
sub rax, rcx
nop dword [rax]
nop word [rax + rax]
inc edi
add rbx, 8
add rax, rax
mov ecx, r10d
sets cl
mov rdx, r9
neg ecx
movsxd r8, ecx
mov ecx, edi
sar rdx, cl
mov rcx, qword [rbx]
add rcx, r8
add rdx, r8
xor rcx, r8
xor rdx, r8
sub rax, rcx
add r9, rdx
cmp rbx, r11
jl 0x140015840
mov ecx, r10d
test rax, rax
mov edi, 4
sets cl
lea rbx, [0x1400d8870]
neg ecx
movsxd rdx, ecx
mov rcx, r9
sar rcx, 4
add rcx, rdx
xor rcx, rdx
add r9, rcx
movabs rcx, 0x2e39fb9198ce62e4
add rcx, rdx
xor rcx, rdx
sub rax, rcx
nop dword [rax]
nop word [rax + rax]
inc edi
add r11, 8
add rax, rax
mov ecx, r10d
sets cl
mov rdx, r9
neg ecx
movsxd r8, ecx
mov ecx, edi
sar rdx, cl
mov rcx, qword [r11]
add rcx, r8
add rdx, r8
xor rcx, r8
xor rdx, r8
sub rax, rcx
add r9, rdx
cmp r11, rbx
jl 0x1400158c0
mov edi, ntohs
lea r14, [0x1400d8910]
lea r11d, [rdi + 0x13]
nop word [rax + rax]
test rax, rax
mov ecx, r10d
mov rdx, r9
sets cl
add rbx, 8
neg ecx
movsxd r8, ecx
mov ecx, edi
inc edi
sar rdx, cl
add rdx, r8
xor rdx, r8
add r9, rdx
mov rdx, qword [rbx - 8]
add rdx, r8
xor rdx, r8
sub rax, rdx
add rax, rax
cmp rbx, r14
jl 0x140015910
mov ebx, r10d
cmp esi, 0x1e
jle 0x140015a6c
mov ecx, r10d
test rax, rax
mov qword [rsp], r15
sets cl
movabs r15, 0x2e2a8eca5705fc2f
mov rbx, r9
neg ecx
sar rbx, 0x20
movsxd rdx, ecx
add ebx, edx
lea rcx, [rdx + r15]
xor ebx, edx
xor rcx, rdx
sub rax, rcx
nop word [rax + rax]
inc r11d
add rax, rax
mov ecx, r10d
sets cl
mov rdx, r9
neg ecx
movsxd r8, ecx
mov ecx, r11d
sar rdx, cl
lea rcx, [r8 + r15]
add edx, r8d
xor rcx, r8
xor edx, r8d
sub rax, rcx
add ebx, edx
cmp r11d, 0x27
jl 0x140015990
mov edi, r10d
mov r14d, r10d
cmp r11d, ebp
jge 0x140015a68
mov ecx, ebp
sub ecx, r11d
cmp ecx, 2
jl 0x140015a41
nop dword [rax + rax]
test rax, rax
mov ecx, r10d
mov rdx, r9
sets cl
neg ecx
movsxd r8, ecx
mov ecx, r11d
sar rdx, cl
lea rcx, [r8 + r15]
xor rcx, r8
add edx, r8d
sub rax, rcx
xor edx, r8d
mov ecx, r10d
add edi, edx
add rax, rax
mov rdx, r9
sets cl
neg ecx
movsxd r8, ecx
lea ecx, [r11 + 1]
add r11d, 2
sar rdx, cl
lea rcx, [r8 + r15]
xor rcx, r8
add edx, r8d
sub rax, rcx
xor edx, r8d
add rax, rax
add r14d, edx
cmp r11d, 0x3c
jl 0x1400159e0
cmp r11d, ebp
jge 0x140015a62
test rax, rax
mov rdx, r9
mov ecx, r11d
sets r10b
sar rdx, cl
neg r10d
movsxd rax, r10d
add edx, eax
xor edx, eax
add ebx, edx
lea eax, [r14 + rdi]
add ebx, eax
mov r15, qword [rsp]
mov r14, qword [rsp + 8]
mov rdi, qword [rsp + 0x30]
movsxd rax, ebx
mov rbx, qword [rsp + 0x20]
lea rax, [rax + r9*2]
jmp 0x140015a8e
movabs rax, 0x4000000000000000
cmp esi, 0x3e
jge 0x140015aa2
sub ebp, esi
movzx ecx, bpl
sar rax, cl
inc rax
sar rax, 1
mov rbp, qword [rsp + 0x28]
add rsp, 0x10
pop rsi
ret