Function at 0x1400f2970
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbx
push r15
sub rsp, 0x88
mov qword [rax - 0x18], rsi
mov r15, r8
mov qword [rax - 0x28], r12
mov rsi, rdx
mov r12, rcx
mov qword [rsp + 0x30], rcx
lea rcx, [rax - 0x60]
mov qword [rax - 0x30], r13
mov rdx, r8
call fcn.140040c90
mov r13, rax
mov dword [rsp + 0x20], 0xfcc5edf1
xor r9d, r9d
mov dword [rsp + 0x24], 0xa96284dc
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x28], 0xb134c943
mov dword [rsp + 0x2c], 0x92c85f5d
inc r8
cmp byte [rsi + r8], r9b
jne 0x1400f29d0
xor al, al
xor ebx, ebx
test r8d, r8d
je 0x1400f2bd6
mov qword [rsp + 0xb8], rbp
mov r12d, 0xffffffff
mov qword [rsp + 0x78], rdi
mov rdi, rsi
mov qword [rsp + 0x60], r14
nop dword [rax]
nop word [rax + rax]
movzx r14d, byte [rdi]
xor ebp, ebp
nop word [rax + rax]
movzx r10d, al
xor edx, edx
lea ecx, [r10 + r14]
lea eax, [rcx + r9]
div r12d
inc ecx
lea eax, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
lea eax, [r14 + rbp]
movsxd r11, eax
mov r9d, edx
lea eax, [r10 + 1]
lea ecx, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
mov rax, r11
and eax, 3
mov ecx, edx
xor edx, edx
xor ecx, dword [rsp + rax*4 + 0x20]
lea eax, [rcx + r9]
div r12d
inc ecx
lea eax, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
mov r9d, edx
lea eax, [rbx + rdx]
xor edx, edx
div r8d
movzx r10d, byte [rdx + rsi]
xor edx, edx
lea ecx, [r10 + r14]
lea eax, [rcx + r9]
div r12d
inc ecx
lea eax, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
lea eax, [r10 + 1]
mov r9d, edx
lea ecx, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
lea rax, [r11 + 1]
and eax, 3
mov ecx, edx
xor edx, edx
xor ecx, dword [rsp + rax*4 + 0x20]
lea eax, [rcx + r9]
div r12d
inc ecx
lea eax, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
mov r9d, edx
lea eax, [rbx + rdx]
xor edx, edx
div r8d
movzx r10d, byte [rdx + rsi]
xor edx, edx
lea ecx, [r10 + r14]
lea eax, [rcx + r9]
div r12d
inc ecx
lea eax, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
lea eax, [r10 + 1]
mov r9d, edx
lea ecx, [rdx + 1]
imul eax, ecx
xor edx, edx
div r12d
lea rax, [r11 - 2]
add ebp, 4
and eax, 3
mov ecx, edx
xor edx, edx
xor ecx, dword [rsp + rax*4 + 0x20]
lea eax, [rcx + r9]
div r12d
inc ecx
lea eax, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
mov r9d, edx
lea eax, [rbx + rdx]
xor edx, edx
div r8d
movzx r10d, byte [rdx + rsi]
xor edx, edx
lea ecx, [r10 + r14]
lea eax, [rcx + r9]
div r12d
inc ecx
lea eax, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
lea eax, [r10 + 1]
mov r9d, edx
lea ecx, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
lea rax, [r11 - 1]
and eax, 3
mov ecx, edx
xor edx, edx
xor ecx, dword [rsp + rax*4 + 0x20]
lea eax, [rcx + r9]
div r12d
inc ecx
lea eax, [rdx + 1]
xor edx, edx
imul eax, ecx
div r12d
mov r9d, edx
lea eax, [rbx + rdx]
xor edx, edx
div r8d
movzx eax, byte [rdx + rsi]
cmp ebp, 4
jb 0x1400f2a20
inc ebx
inc rdi
cmp ebx, r8d
jb 0x1400f2a10
mov r14, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0xb8]
mov r12, qword [rsp + 0x30]
mov r8, r13
mov edx, r9d
mov rcx, r12
call fcn.1400e98b0
mov rdx, qword [r15 + 0x18]
mov ebx, eax
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
cmp rdx, 0xf
jbe 0x1400f2c2e
mov rcx, qword [r15]
inc rdx
cmp rdx, 0x1000
jb 0x1400f2c29
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400f2c4f
mov rcx, r8
call fcn.140190a2c
mov qword [r15 + 0x10], 0
mov eax, ebx
mov qword [r15 + 0x18], reloc.WS2_32.dll_ntohs
mov byte [r15], 0
add rsp, 0x88
pop r15
pop rbx
ret
call fcn.1401ac538
int3