Function at 0x180019530
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x180357660]
xor rax, rsp
mov qword [rsp + 0x60], rax
movzx ebx, byte [rsp + 0x20]
lea r14d, [rcx + 0x206]
mov qword [rsp + 0x30], rdx
mov rsi, r8
mov dword [rsp + 0x28], r14d
mov r13d, ecx
cmp ecx, r14d
jae 0x1800197d3
mov r8d, dword [rsp + 0x28]
lea r11, [0x1800c8a00]
mov ecx, dword [rsp + 0x28]
movabs r9, 0x7fffffffffffffff
mov r12, qword [rsp + 0x38]
mov r10d, 0x16
mov edi, dword [rsp + 0x28]
mov dword [rsp + 0x2c], r8d
mov dword [rsp + 0x24], ecx
nop word [rax + rax]
cmp r13d, 0x12d
ja 0x1800197b7
je 0x180019775
mov eax, r13d
sub eax, 0x19
je 0x180019651
sub eax, 0xca
je 0x180019630
cmp eax, 0x30
jne 0x180019969
mov rax, qword [rdx]
mov r8, qword [rax + 0x28]
mov rax, qword [rsi]
mov r9, qword [rax + 0x28]
test r8, r8
je 0x1800199b5
lea r11, [0x180358670]
lea rbx, [0x180358650]
test r9, r9
je 0x1800199b5
mov rax, qword [r9 + 0x10]
cmp qword [r8 + 0x10], rax
je 0x180019987
jae 0x18001997b
mov qword [0x180358670], r9
mov r9, r11
jmp 0x1800199a6
mov rax, qword [rsi + 0x10]
mov r12d, 8
cmp rax, r12
jb 0x1800199c3
add rax, 0xfffffffffffffff8
mov qword [rsp + 0x38], rax
jmp 0x180019969
test rsi, rsi
je 0x180019969
mov r10d, 0x36
cmp r10d, 0x36
je 0x18001973c
cmp r10d, 0x2556
je 0x180019725
cmp r10d, 0x4a76
je 0x1800196a8
cmp r10d, 0x6f96
jne 0x18001973e
mov rax, qword [rsi]
mov ecx, edi
shr ecx, 0x10
mov byte [rax + 0x18], cl
mov ecx, edi
mov rax, qword [rsi]
shr ecx, 0x18
mov byte [rax + 0x19], cl
jmp 0x18001973e
mov rax, qword [rsi]
xor edx, edx
mov byte [rax + 0x19], 0
movsxd r8, dword [rsi + 8]
test r8, r8
jle 0x1800196e1
mov r9, qword [rsi]
nop dword [rax]
movzx ecx, byte [r9 + rdx]
inc rdx
mov eax, edi
shr rax, 0x18
xor rcx, rax
mov eax, edi
shl eax, 8
mov edi, dword [r11 + rcx*4]
xor edi, eax
cmp rdx, r8
jl 0x1800196c0
movsxd r8, dword [rsi + 0x18]
xor edx, edx
test r8, r8
jle 0x180019711
mov r9, qword [rsi + 0x10]
movzx ecx, byte [r9 + rdx]
inc rdx
mov eax, edi
shr rax, 0x18
xor rcx, rax
mov eax, edi
shl eax, 8
mov edi, dword [r11 + rcx*4]
xor edi, eax
cmp rdx, r8
jl 0x1800196f0
mov rax, qword [rsi]
mov ecx, edi
shr ecx, 8
mov byte [rax + 0x16], dil
mov rax, qword [rsi]
mov byte [rax + 0x17], cl
jmp 0x18001973e
mov rax, qword [rsi]
mov byte [rax + 0x16], 0
mov rax, qword [rsi]
mov byte [rax + 0x17], 0
mov rax, qword [rsi]
mov byte [rax + 0x18], 0
jmp 0x18001973e
xor edi, edi
add r10d, 0x2520
cmp r10d, 0x9480
jbe 0x180019660
mov rdx, qword [rsp + 0x30]
movabs r9, 0x7fffffffffffffff
mov ecx, dword [rsp + 0x24]
mov r10d, 0x16
mov r8d, dword [rsp + 0x2c]
jmp 0x180019969
xor edx, edx
mov rcx, rsi
call fcn.180007210
mov r8d, dword [rax]
mov dword [rsp + 0x2c], r8d
cmp r8, qword [rsp + 0x38]
jae 0x1800199c3
mov ecx, dword [rsp + 0x24]
lea r11, [0x1800c8a00]
mov rdx, qword [rsp + 0x30]
movabs r9, 0x7fffffffffffffff
mov r10d, 0x16
jmp 0x180019969
mov eax, r13d
sub eax, 0x177
je 0x18001994e
sub eax, 0x4a
je 0x1800197fb
cmp eax, 0x4a
jne 0x180019969
movzx eax, bl
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1800bfa40
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov dword [rdx + 0x20], r8d
mov dword [rdx + 0x24], ecx
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x58], ILClone
mov byte [rsp + 0x40], 0
cmp rax, r12
jb 0x1800199ca
sub rax, r12
mov rbp, 0xffffffffffffffff
cmp rax, rbp
cmovb rbp, rax
cmp qword [rsi + 0x18], 0x10
mov rax, rsi
jb 0x18001983b
mov rax, qword [rsi]
lea r15, [rax + r12]
cmp rbp, 0xf
ja 0x180019864
mov r8, rbp
mov qword [rsp + 0x50], rbp
mov rdx, r15
lea rcx, [rsp + 0x40]
call sub.VCRUNTIME140.dll_memmove
mov byte [rsp + rbp + 0x40], 0
jmp 0x1800198f6
cmp rbp, r9
ja 0x1800199d6
mov r14, rbp
or r14, 0xf
cmp r14, r9
jbe 0x18001987e
mov r14, r9
jmp 0x180019886
cmp r14, 0x16
cmovb r14, r10
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x1800198bf
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1800199d0
mov rcx, rax
call fcn.1800bf258
test rax, rax
je 0x1800199bc
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x1800198d0
test rcx, rcx
je 0x1800198ce
call fcn.1800bf258
mov rbx, rax
jmp 0x1800198d0
xor ebx, ebx
mov r8, rbp
mov qword [rsp + 0x50], rbp
mov rdx, r15
mov qword [rsp + 0x58], r14
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r14d, dword [rsp + 0x28]
mov byte [rbx + rbp], 0
mov qword [rsp + 0x40], rbx
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
call fcn.180006f10
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x180019942
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001993d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800199bc
call fcn.1800bf294
mov r8d, dword [rsp + 0x2c]
mov bl, 1
jmp 0x180019792
cmp qword [rsi + 0x18], 0x10
mov rax, rsi
jb 0x18001995b
mov rax, qword [rsi]
mov ecx, dword [rax + 4]
mov dword [rsp + 0x24], ecx
cmp rcx, qword [rsp + 0x38]
jae 0x1800199c3
add r13d, 0x4a
cmp r13d, r14d
jb 0x1800195b0
jmp 0x1800197d3
mov qword [0x180358650], r8
mov r8, rbx
jmp 0x1800199a6
xor edx, edx
lea rax, [r8 + 0x18]
mov r10, r9
sub r10, r8
mov ecx, dword [r10 + rax]
test dword [rax], ecx
jne 0x1800199c3
inc edx
add rax, 4
cmp edx, 2
jb 0x180019993
mov r8, qword [r8]
mov r9, qword [r9]
test r8, r8
jne 0x180019604
mov al, 1
jmp 0x1800197d6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
xor al, al
jmp 0x1800197d6
call fcn.18001ec00
int3
call fcn.18001ea80
int3
call fcn.18001ebc0
int3