Function at 0x180200f40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
xor r12d, r12d
mov rbp, rdx
mov r14, rcx
dec rdx
xor cl, cl
mov eax, 1
mov ebx, r12d
mov esi, r12d
cmp rbp, rax
jbe 0x18020100e
cmp rdx, 0x20
jb 0x180201000
and edx, 0x1f
mov rcx, rbp
sub rcx, rdx
xorps xmm1, xmm1
xorps xmm2, xmm2
movdqu xmm0, xmmword [rax + r14]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax + r14 + 0x10]
add rax, 0x20
pxor xmm0, xmm2
movdqa xmm2, xmm0
cmp rax, rcx
jb 0x180200f93
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 2
pxor xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 1
pxor xmm1, xmm0
movd ecx, xmm1
cmp rax, rbp
jae 0x180201017
nop word [rax + rax]
xor cl, byte [rax + r14]
inc rax
cmp rax, rbp
jb 0x180201000
jmp 0x180201017
test rbp, rbp
je 0x180201265
cmp cl, byte [r14]
jne 0x180201265
mov edi, 1
mov ecx, edi
lea edx, [rdi + 0x37]
call fcn.180252bb0
mov r15, rax
test rax, rax
je 0x180201265
mov r8d, ebp
mov rdx, r14
xor ecx, ecx
call fcn.180242340
mov ecx, eax
mov rax, rbp
shl rax, 0x20
or rcx, rax
mov qword [r15 + 0x20], rcx
nop dword [rax + rax]
cmp rdi, rbp
jae 0x1802012da
movzx eax, byte [rdi + r14]
add esi, 8
shl rbx, 8
inc rdi
or rax, rbx
mov rbx, rax
cmp esi, 1
jl 0x180201060
dec esi
mov ecx, esi
shr rax, cl
and eax, 1
je 0x1802012da
cmp esi, 2
jge 0x1802010bf
cmp rdi, rbp
jae 0x1802010b6
movzx eax, byte [rdi + r14]
add esi, 8
shl rbx, 8
inc rdi
or rbx, rax
cmp esi, 2
jl 0x180201098
jmp 0x1802010bf
cmp esi, 2
jl 0x180201284
lea ecx, [rsi - 2]
mov rax, rbx
shr rbx, cl
mov esi, ecx
mov r13d, r12d
and ebx, 3
je 0x1802011f7
sub ebx, 1
je 0x180201156
cmp ebx, 1
mov rbx, rax
je 0x180201122
cmp ecx, 0x20
jge 0x180201104
cmp rdi, rbp
jae 0x180201114
movzx eax, byte [rdi + r14]
add esi, 8
shl rbx, 8
inc rdi
or rbx, rax
cmp esi, 0x20
jl 0x1802010e8
add esi, 0xffffffe0
mov rax, rbx
mov ecx, esi
shr rax, cl
jmp 0x18020122a
mov eax, r12d
mov r13d, 1
jmp 0x18020122a
cmp ecx, 0x10
jge 0x180201143
cmp rdi, rbp
jae 0x180201114
movzx eax, byte [rdi + r14]
add esi, 8
shl rbx, 8
inc rdi
or rbx, rax
cmp esi, 0x10
jl 0x180201127
add esi, 0xfffffff0
mov rax, rbx
mov ecx, esi
shr rax, cl
movzx eax, ax
jmp 0x18020122a
mov rbx, rax
cmp ecx, 8
jge 0x18020117c
nop
cmp rdi, rbp
jae 0x180201196
movzx eax, byte [rdi + r14]
add esi, 8
shl rbx, 8
inc rdi
or rbx, rax
cmp esi, 8
jl 0x180201160
add esi, 0xfffffff8
mov rax, rbx
mov ecx, esi
shr rax, cl
movzx edx, al
cmp edx, 0x10
jb 0x18020119f
mov eax, edx
jmp 0x18020122a
mov edx, r12d
mov r13d, 1
cmp esi, 4
jge 0x1802011cc
test r13d, r13d
jne 0x1802011ea
nop dword [rax]
cmp rdi, rbp
jae 0x1802011e4
movzx eax, byte [rdi + r14]
add esi, 8
shl rbx, 8
inc rdi
or rbx, rax
cmp esi, 4
jl 0x1802011b0
lea ecx, [rsi - 4]
or edx, 0xfffffff0
mov rax, rbx
shl edx, 4
shr rax, cl
mov esi, ecx
and eax, 0xf
or eax, edx
jmp 0x18020122a
mov r13d, 1
or edx, 0xfffffff0
mov eax, r12d
shl edx, 4
or eax, edx
jmp 0x18020122a
mov rbx, rax
cmp ecx, 4
jge 0x18020121c
nop
cmp rdi, rbp
jae 0x180201284
movzx eax, byte [rdi + r14]
add esi, 8
shl rbx, 8
inc rdi
or rbx, rax
cmp esi, 4
jl 0x180201200
lea ecx, [rsi - 4]
mov rax, rbx
shr rax, cl
mov esi, ecx
and eax, 0xf
inc eax
mov ecx, eax
mov dword [r15 + 8], eax
call fcn.1802618e0
mov qword [r15], rax
test rax, rax
jne 0x18020128f
nop
mov rcx, qword [r15]
mov rbx, qword [r15 + 0x30]
call fcn.180252720
mov rcx, qword [r15 + 0x10]
call fcn.180252720
mov rcx, r15
call fcn.180252720
mov r15, rbx
test rbx, rbx
jne 0x180201240
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov r13d, 1
mov eax, r12d
jmp 0x18020122a
cmp dword [r15 + 8], r12d
jbe 0x1802012da
cmp esi, 8
jge 0x1802012bc
test r13d, r13d
jne 0x1802012e5
nop
cmp rdi, rbp
jae 0x1802012df
movzx eax, byte [rdi + r14]
add esi, 8
shl rbx, 8
inc rdi
or rbx, rax
cmp esi, 8
jl 0x1802012a0
lea ecx, [rsi - 8]
mov rdx, rbx
mov esi, ecx
shr rdx, cl
mov rax, qword [r15]
mov byte [r12 + rax], dl
inc r12
mov eax, dword [r15 + 8]
cmp r12, rax
jb 0x180201295
mov rax, r15
jmp 0x180201267
mov r13d, 1
xor dl, dl
jmp 0x1802012c7