Function at 0x140052fc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdi
push rbp
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x1401bee90]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov ecx, dword [0x1401c6d80]
mov eax, 0x2e8ba2e9
xor edi, edi
lea r8d, [rcx + 1]
imul r8d, ecx
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub r8d, edx
cmp r8d, 0x12
jne 0x1400530a4
mov r8d, edi
mov edx, r8d
mov eax, r8d
inc r8d
sar eax, 1
and edx, 1
dec edx
not edx
and edx, ecx
xor edx, eax
mov eax, edx
sar edx, 1
and eax, 1
dec eax
not eax
and eax, ecx
xor eax, edx
mov edx, eax
sar eax, 1
and edx, 1
dec edx
not edx
and edx, ecx
xor edx, eax
mov eax, edx
sar edx, 1
and eax, 1
dec eax
not eax
and eax, ecx
xor eax, edx
mov edx, eax
sar eax, 1
and edx, 1
dec edx
not edx
and edx, ecx
xor edx, eax
mov eax, edx
sar edx, 1
and eax, 1
dec eax
not eax
and eax, ecx
xor eax, edx
mov edx, eax
sar eax, 1
and edx, 1
dec edx
not edx
and edx, ecx
xor edx, eax
mov eax, edx
sar edx, 1
and eax, 1
dec eax
not eax
and eax, ecx
xor eax, edx
add ecx, eax
cmp r8d, 0x100
jl 0x140053010
mov dword [0x1401c6d80], ecx
cmp byte [0x1401c7fa2], dil
mov qword [rsp + 0x70], rbx
je 0x1400530be
lea rax, [0x1401c2ae0]
jmp 0x14005323b
mov dword [rbp - 0x30], 0x260056
mov dword [rbp - 0x2c], 0x20003
mov dword [rbp - 0x28], 0x1003c
mov dword [rbp - 0x24], 0x1001a
mov dword [rbp - 0x20], 0x1d000a
mov dword [rbp - 0x1c], 0x5c0001
mov word [rbp - 0x18], di
mov r8, rdi
lea rbx, [0x1401c2ae0]
lea r9, [0x1401c1da1]
nop dword [rax]
movzx eax, byte [r8 + r9 - 1]
movzx edx, word [rbp + r8*2 - 0x2e]
add r8, 6
xor ax, word [rbp + r8*2 - 0x3c]
mov word [rbx + r8*2 - 0xc], ax
movzx eax, byte [r8 + r9 - 6]
xor dx, ax
movzx eax, byte [r8 + r9 - 5]
xor ax, word [rbp + r8*2 - 0x38]
mov word [rbx + r8*2 - 0xa], dx
mov word [rbx + r8*2 - 8], ax
movzx eax, byte [r8 + r9 - 4]
xor ax, word [rbp + r8*2 - 0x36]
mov word [rbx + r8*2 - 6], ax
movzx eax, byte [r8 + r9 - 3]
xor ax, word [rbp + r8*2 - 0x34]
mov word [rbx + r8*2 - 4], ax
movzx eax, byte [r8 + r9 - 2]
xor ax, word [rbp + r8*2 - 0x32]
mov word [rbx + r8*2 - 2], ax
cmp r8, 0xc
jl 0x140053100
mov eax, ecx
imul eax, ecx
imul eax, ecx
and eax, 0x80000007
jge 0x14005318f
dec eax
or eax, 0xfffffff8
inc eax
cmp eax, 6
jne 0x1400531eb
mov rax, qword [str.NvIfYSbVbA]
or r8, 0xffffffffffffffff
mov qword [rbp - 0x40], rax
movzx eax, word [0x140150570]
mov rcx, r8
mov word [rbp - 0x38], ax
movzx eax, byte [0x140150572]
mov byte [rbp - 0x36], al
lea rax, [rbp - 0x40]
nop
inc rcx
cmp byte [rax + rcx], dil
jne 0x1400531c0
mov eax, 4
mul rcx
cmovo rax, r8
mov rcx, rax
call fcn.1400cbef8
mov rcx, rax
call fcn.1400cd9ec
mov ecx, dword [0x1401c6d80]
lea r8d, [rcx + 1]
mov eax, 0x66666667
mov byte [0x1401c7fa2], 1
imul r8d, ecx
imul r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 2
sub r8d, eax
cmp r8d, 0x12
jne 0x140053238
test ecx, ecx
je 0x140053232
nop
mov edx, ecx
mov eax, ecx
and edx, 1
add edi, edx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
jne 0x140053220
mov dword [0x1401c6d80], edi
mov rax, rbx
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1400cc8b0
mov rdi, qword [rsp + 0x78]
add rsp, 0x60
pop rbp
ret