Function at 0x18001adf0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x40
movdqa xmmword [rsp + 0x30], xmm6
mov rsi, rcx
movdqu xmm0, xmmword [rcx + 0x20]
pcmpeqd xmm1, xmm1
psubq xmm0, xmm1
movdqu xmmword [rcx + 0x20], xmm0
cmp byte [rcx + 0x18], 0
je 0x18001ae30
mov byte [rsi + 0x18], 0
mov eax, dword [rsi + 0x14]
cmp eax, 0xffffffff
jne 0x18001ae44
jmp 0x18001b026
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001b026
mov byte [rsp + 0x2c], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001ae5a
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001ae68
lea rcx, [rsi + 0x38]
lea r8, [rsp + 0x2c]
call fcn.18001d610
mov eax, dword [rsi + 0x14]
cmp eax, 0xa
je 0x18001b01a
cmp eax, 0x2f
je 0x18001b118
cmp eax, 0x2a
jne 0x18001b026
lea r15, [rsi + 0x28]
lea rdi, [rsi + 0x38]
lea r12, [rsi + 0x30]
mov eax, 0x2a
pcmpeqd xmm6, xmm6
lea rbx, [rsp + 0x2e]
lea r14, [rsp + 0x2f]
jmp 0x18001aec0
inc qword [r12]
mov qword [r15], 0
mov eax, 0xa
movdqu xmm0, xmmword [rsi + 0x20]
psubq xmm0, xmm6
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001aef0
mov byte [rsi + 0x18], 0
cmp eax, 0xffffffff
jne 0x18001af04
jmp 0x18001b1bb
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001b1bb
mov byte [rsp + 0x2e], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001af20
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001af2b
mov rcx, rdi
mov r8, rbx
call fcn.18001d610
mov eax, dword [rsi + 0x14]
cmp eax, 0xa
je 0x18001aeb0
cmp eax, 0x2a
je 0x18001af50
lea ecx, [rax + 1]
cmp ecx, 2
jae 0x18001aec0
jmp 0x18001b1bb
movdqu xmm0, xmmword [rsi + 0x20]
psubq xmm0, xmm6
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001af6f
mov byte [rsi + 0x18], 0
mov eax, 0x2a
jmp 0x18001af7f
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001afd4
mov byte [rsp + 0x2f], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001af95
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001afa0
mov rcx, rdi
mov r8, r14
call fcn.18001d610
mov ecx, dword [rsi + 0x14]
cmp ecx, 0xa
je 0x18001afb2
cmp ecx, 0x2f
jne 0x18001afd9
jmp 0x18001b2bb
mov rax, qword [rsi + 0x30]
inc rax
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x28], 0
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
mov ecx, 0xa
jmp 0x18001aff3
mov ecx, 0xffffffff
mov rax, qword [rsi + 0x28]
mov byte [rsi + 0x18], 1
dec qword [rsi + 0x20]
test rax, rax
je 0x18001afef
mov rdx, r15
jmp 0x18001affb
mov rax, qword [r12]
mov rdx, r12
test rax, rax
je 0x18001b001
dec rax
mov qword [rdx], rax
mov eax, 0xffffffff
cmp ecx, 0xffffffff
je 0x18001aec0
dec qword [rsi + 0x40]
mov eax, ecx
jmp 0x18001aec0
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
cmp byte [0x180047cd8], 0
jne 0x18001b0eb
mov rax, qword [0x180046840]
movabs r9, 0xdbcef3fc4ac9c450
add r9, rax
movabs r10, 0xdbcef3fc4ac9c438
add r10, rax
movabs r11, 0xdbcef3fc4ac9c437
add r11, rax
mov ecx, 1
xor r8d, r8d
movabs rdi, 0x47ae147ae147ae15
lea rbx, [0x180047ca8]
nop word [rax + rax]
mov rax, rcx
mul rdi
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul r14, rax, 0xffffffffffffffe7
mov rax, r8
mul rdi
add r14, r10
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe7
add rax, r11
movzx eax, byte [r8 + rax]
xor al, byte [r9 + r8]
mov byte [r8 + rbx], al
movzx eax, byte [r8 + r14]
xor al, byte [r9 + r8 + 1]
mov byte [r8 + rbx + 1], al
add r8, 2
add rcx, 2
cmp r8, 0x30
jne 0x18001b080
mov byte [0x180047cd8], 1
movabs rax, 0xdbcef3fc4ac9b285
add rax, qword [0x180046850]
mov qword [rsi + 0x70], rax
xor ecx, ecx
mov eax, ecx
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rdi, [rsi + 0x38]
mov eax, 0x2f
pcmpeqd xmm6, xmm6
lea rbx, [rsp + 0x2d]
nop word [rax + rax]
movdqu xmm0, xmmword [rsi + 0x20]
psubq xmm0, xmm6
movdqu xmmword [rsi + 0x20], xmm0
cmp byte [rsi + 0x18], 0
je 0x18001b150
mov byte [rsi + 0x18], 0
jmp 0x18001b164
mov rcx, rsi
call fcn.18001d500
mov dword [rsi + 0x14], eax
cmp eax, 0xffffffff
je 0x18001b2bb
mov byte [rsp + 0x2d], al
mov rdx, qword [rsi + 0x40]
cmp rdx, qword [rsi + 0x48]
je 0x18001b180
mov byte [rdx], al
inc qword [rsi + 0x40]
jmp 0x18001b18b
mov rcx, rdi
mov r8, rbx
call fcn.18001d610
mov eax, dword [rsi + 0x14]
mov cl, 1
lea edx, [rax + 1]
cmp edx, 2
jb 0x18001b102
cmp eax, 0xd
je 0x18001b102
cmp eax, 0xa
jne 0x18001b130
inc qword [rsi + 0x30]
mov qword [rsi + 0x28], 0
jmp 0x18001b102
cmp byte [0x180047ca7], 0
jne 0x18001b2a5
mov rax, qword [0x180046840]
movabs r8, 0xdbcef3fc4ac9c3fe
add r8, rax
movabs r9, 0xdbcef3fc4ac9c3e7
add r9, rax
xor ecx, ecx
movabs r10, 0x642c8590b21642c9
lea r11, [0x180047c81]
nop dword [rax]
mov rax, rcx
mul r10
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffe9
add rax, r9
movzx edi, byte [r8 + rcx]
mov ebx, edi
not bl
movzx eax, byte [rcx + rax]
mov ebp, edi
or bpl, 0x92
mov edx, ebp
not dl
and bl, 0x6d
xor dil, 0x92
or dil, bl
and bpl, 0x56
mov r14d, edx
and r14b, 0x29
or r14b, bpl
mov ebx, r14d
xor bl, 0xa9
xor r14b, 0xd8
and r14b, bl
and dl, 0x61
or dl, r14b
xor dl, dil
xor dl, 0x71
or bl, dil
mov edi, ebx
and dil, 0x7f
xor dil, dl
xor dil, 0x7f
not bl
and bl, dl
or bl, dil
mov edx, eax
xor dl, 0x92
or dl, bl
xor al, bl
xor al, 0x6d
and al, bl
not dl
or dl, al
mov byte [rcx + r11], dl
inc rcx
cmp rcx, 0x26
jne 0x18001b200
mov byte [0x180047ca7], 1
movabs rax, 0xdbcef3fc4ac9b285
add rax, qword [0x180046848]
jmp 0x18001b0fc
mov cl, 1
jmp 0x18001b102