Function at 0x18001e070
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
call fcn.1800203f0
cmp eax, 0x2a
je 0x18001e0bb
cmp eax, 0x2f
jne 0x18001e122
mov edi, 0x4803
nop dword [rax + rax]
mov rcx, rsi
call fcn.1800203f0
inc eax
cmp eax, 0xf
jae 0x18001e0a0
bt edi, eax
jae 0x18001e0a0
mov al, 1
jmp 0x18001e3ba
lea rdi, [rsi + 0x28]
lea rbx, [rsi + 0x30]
jmp 0x18001e0d7
inc eax
cmp eax, 1
jbe 0x18001e137
mov rcx, rsi
call fcn.1800203f0
cmp eax, 0x2a
jne 0x18001e0d0
mov rcx, rsi
call fcn.1800203f0
cmp eax, 0x2f
je 0x18001e0b4
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
mov rcx, rdi
test rax, rax
jne 0x18001e110
mov rax, qword [rbx]
mov rcx, rbx
test rax, rax
je 0x18001e116
dec rax
mov qword [rcx], rax
cmp dword [rsi + 0x14], 0xffffffff
je 0x18001e0d7
dec qword [rsi + 0x40]
jmp 0x18001e0d7
cmp byte [0x18004c0f8], 0
je 0x18001e150
lea r8, [0x18004a9c0]
jmp 0x18001e3a7
cmp byte [0x18004c0c7], 0
je 0x18001e29f
lea r8, [0x18004a9b8]
jmp 0x18001e3a7
mov rax, qword [0x18004a9b0]
movabs r10, 0x9235d97ad4783293
add r10, rax
movabs r11, 0x9235d97ad478327e
add r11, rax
xor ecx, ecx
movabs rdi, 0x8618618618618619
lea rbx, [0x18004c0c8]
nop word cs:[rax + rax]
mov rax, rcx
mul rdi
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffeb
add rax, r11
movzx r15d, byte [r10 + rcx]
mov r9d, r15d
not r9b
movzx eax, byte [rcx + rax]
mov r8d, r15d
and r8b, 0x29
mov ebp, r15d
and bpl, 0xd6
mov r14d, r15d
or r14b, 0x29
mov r13d, r15d
xor r13b, 0x28
and r13b, r8b
not r8b
mov r12d, ebp
xor r12b, 0x3e
and r12b, r14b
mov edx, r8d
and dl, 0xe8
or r13b, dl
or bpl, 0xc0
xor bpl, r12b
xor bpl, 0xd6
and r12b, r9b
and r12b, 0x16
or r12b, bpl
xor r12b, r13b
xor r15b, 0x29
xor r8b, r14b
or r8b, r15b
not r8b
or r8b, r12b
mov edx, eax
and dl, 0x14
mov r9d, eax
and r9b, 0x80
or r9b, 0x10
xor r9b, dl
mov edx, eax
and dl, 0x20
lea ebp, [rdx + 1]
mov r14d, eax
and r14b, 9
xor r14b, bpl
mov ebp, eax
and bpl, 0x42
or bpl, r9b
or bpl, 9
xor bpl, r14b
mov r9d, eax
xor r9b, 0x29
xor al, 0xd6
or al, r9b
xor bpl, 0x31
mov r9d, ebp
and r9b, 0xdf
or r9b, dl
xor r9b, al
xor r9b, 0x20
or bpl, al
not bpl
or bpl, r9b
xor bpl, r8b
mov byte [rcx + rbx], bpl
inc rcx
cmp rcx, 0x30
jne 0x18001e190
lea r8, [0x18004a9c0]
lea r9, [0x18004c0f8]
jmp 0x18001e3a3
mov rax, qword [0x18004a9b0]
movabs r10, 0x9235d97ad478323b
add r10, rax
movabs r11, 0x9235d97ad478321d
add r11, rax
xor ecx, ecx
movabs rdi, 0x8888888888888889
lea rbx, [0x18004c0a1]
lea r8, [0x18004a9b8]
lea r9, [0x18004c0c7]
nop word cs:[rax + rax]
mov rax, rcx
mul rdi
shr rdx, 4
imul rax, rdx, 0xffffffffffffffe2
add rax, r11
movzx r14d, byte [r10 + rcx]
mov ebp, r14d
not bpl
movzx eax, byte [rcx + rax]
mov r15d, r14d
and r15b, 0xa0
or r15b, 0x4d
mov edx, r14d
and dl, 0x4f
xor dl, r15b
mov r12d, r14d
and r12b, 0x10
or r12b, dl
mov r15d, edx
and r15b, 0x62
xor r15b, 0x40
xor r12b, 0x2f
or r12b, r15b
mov r15d, eax
and r15b, 0x62
or bpl, 0x9d
mov r13d, ebp
and r13b, 0x22
and r14b, 0x40
or r14b, r13b
or bpl, r12b
and r12b, 0xfb
and dl, 4
or dl, r12b
xor dl, r14b
mov r14d, ebp
and r14b, 0x6b
xor r14b, dl
xor dl, 0x22
xor r14b, 0xb2
or dl, bpl
not dl
or dl, r14b
and al, 0x9d
or r15b, 0x90
xor r15b, al
xor r15b, dl
xor r15b, 0xd
mov byte [rcx + rbx], r15b
inc rcx
cmp rcx, 0x26
jne 0x18001e2f0
mov byte [r9], 1
movabs rax, 0x9235d97ad4781ec3
add rax, qword [r8]
mov qword [rsi + 0x70], rax
xor eax, eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret