Function at 0x1800297e0
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov rsi, rcx
cmp qword [rcx + 0x20], 0
je 0x18002988f
movabs rdi, 0x100002600
nop word cs:[rax + rax]
mov rcx, rsi
call fcn.18002c280
mov eax, dword [rsi + 0x14]
cmp rax, 0x20
ja 0x180029857
bt rdi, rax
jb 0x180029810
jmp 0x180029857
mov rcx, rsi
call fcn.180029b30
test al, al
je 0x1800299e0
mov rcx, rsi
call fcn.18002c280
mov eax, dword [rsi + 0x14]
cmp rax, 0x20
ja 0x180029857
bt rdi, rax
jb 0x180029840
cmp eax, 0x2f
jne 0x180029862
cmp byte [rsi + 0x10], 0
jne 0x180029830
inc eax
cmp eax, 0x7e
ja case.0x18002987b.1
lea rcx, [0x18004fd0c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rcx, rsi
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
jmp fcn.18002b9c0
mov rcx, rsi
call fcn.18002c280
cmp eax, 0xef
jne 0x1800299f0
mov rcx, rsi
call fcn.18002c280
cmp eax, 0xbb
jne 0x1800298c4
mov rcx, rsi
call fcn.18002c280
cmp eax, 0xbf
je 0x1800297f8
cmp byte [0x18005e2bc], 0
jne 0x1800299cb
mov rax, qword [0x18005c9c0]
movabs rcx, 0xd798b5e3813d7f9c
add rcx, rax
movabs r8, 0xd798b5e3813d7f80
add r8, rax
xor r9d, r9d
movabs r10, 0x4924924924924925
lea r11, [0x18005e28f]
nop word cs:[rax + rax]
mov rax, r9
shr rax, 2
mul r10
shr rdx, 1
imul rax, rdx, 0xffffffffffffffe4
add rax, r8
movzx ebx, byte [rcx + r9]
movzx edi, byte [r9 + rax]
mov edx, edi
not dl
mov ebp, edi
or bpl, 0x3b
mov eax, ebp
not al
and dl, 0xc4
xor dil, 0x3b
or dil, dl
mov edx, ebx
xor dl, 0xc4
mov r14d, edi
not r14b
and r14b, al
and bpl, 0x88
and al, 0x44
or al, bpl
xor al, dil
mov edi, r14d
xor dil, al
xor dil, 0x77
xor al, 0x44
and al, r14b
or al, dil
mov ebp, ebx
xor bpl, 0x24
and dl, bpl
not al
and bpl, 0x20
and bl, 0xc0
or bl, bpl
xor bl, dl
and dl, 0xe0
or dl, bl
mov ebx, edi
and bl, 0x20
mov ebp, eax
and bpl, 0xc0
or bpl, bl
and al, 0x1d
and dil, 2
or dil, al
or bpl, 0x1d
or dil, 0x20
xor dil, dl
xor dil, bpl
mov byte [r9 + r11], dil
inc r9
cmp r9, 0x2d
jne 0x180029910
mov byte [0x18005e2bc], 1
movabs rax, 0xd798b5e3813d655d
add rax, qword [0x18005c9c8]
mov qword [rsi + 0x70], rax
mov eax, 0xe
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x180029a07
lea rcx, [rsi + 0x28]
jmp 0x180029a14
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x180029a1a
lea rcx, [rsi + 0x30]
dec rax
mov qword [rcx], rax
cmp dword [rsi + 0x14], 0xffffffff
je 0x1800297f8
dec qword [rsi + 0x40]
jmp 0x1800297f8
mov eax, 0xf
jmp 0x1800299e5
movabs rcx, 0xd798b5e3813d7fdf
add rcx, qword [0x18005c9c0]
call fcn.180044120
movabs rax, 0xd798b5e3813d655d
add rax, qword [0x18005c9e8]
jmp 0x1800299dc
mov rcx, rsi
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
jmp fcn.18002a070
mov eax, 0xd
jmp 0x1800299e5
mov eax, 0xc
jmp 0x1800299e5
mov eax, 8
jmp 0x1800299e5
mov eax, 0xa
jmp 0x1800299e5
mov byte [rsp + 0x24], 0x65
mov dword [rsp + 0x20], 0x736c6166
lea rdx, [rsp + 0x20]
mov r8d, 5
mov rcx, rsi
mov r9d, 2
call fcn.180029e30
jmp 0x1800299e5
mov dword [rsp + 0x28], 0x6c6c756e
lea rdx, [rsp + 0x28]
mov r8d, 4
mov rcx, rsi
mov r9d, 3
call fcn.180029e30
jmp 0x1800299e5
mov dword [rsp + 0x2c], 0x65757274
lea rdx, [rsp + 0x2c]
mov r8d, 4
mov rcx, rsi
mov r9d, 1
call fcn.180029e30
jmp 0x1800299e5
mov eax, 9
jmp 0x1800299e5
mov eax, 0xb
jmp 0x1800299e5