Function at 0x180004af0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, r8
mov rbx, rdx
mov r12, rcx
mov r13, qword [rbp + 0x70]
test r13, r13
je 0x180004b68
mov r14, r9
cmp r13, 1
jne 0x180004ba6
test rsi, rsi
je 0x180004c69
js 0x180004e11
movzx r14d, byte [r14]
movzx eax, byte [0x180223221]
mov edx, 1
mov rcx, rsi
call fcn.1800052a0
test rax, rax
je 0x180004b97
mov rdx, rax
cmp rsi, 8
jae 0x180004c96
xor eax, eax
jmp 0x180004d50
test rsi, rsi
je 0x180004c7b
js 0x180004e11
movzx eax, byte [0x180223221]
mov edx, 1
mov rcx, rsi
call fcn.1800052a0
mov rcx, rax
test rax, rax
jne 0x180004c80
mov ecx, 1
mov rdx, rsi
call fcn.180139900
ud2
test rsi, rsi
je 0x180004c69
movzx edi, byte [r14]
movzx r15d, byte [rbx]
movzx eax, byte [0x180223221]
mov eax, 8
mov qword [rbp - 8], rax
mov ecx, 8
mov edx, 1
call fcn.1800052a0
test rax, rax
je 0x180004e18
mov rdx, rax
xor r15b, dil
mov byte [rax], r15b
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 8
mov qword [rbp - 0x28], 1
cmp rsi, 1
je 0x180004d66
mov qword [rbp - 0x10], r12
mov r15d, 1
mov edi, 1
jmp 0x180004c30
mov byte [rdx + r15], r12b
inc r15
mov qword [rbp - 0x28], r15
cmp rsi, r15
je 0x180004ca4
mov rax, rdi
inc rdi
cmp rdi, r13
mov ecx, 0
cmovae rdi, rcx
movzx r12d, byte [rbx + r15]
xor r12b, byte [r14 + rax]
cmp r15, qword [rbp - 0x30]
jne 0x180004c20
mov r8d, 1
lea rcx, [rbp - 0x38]
mov rdx, r15
call fcn.180136690
mov rdx, qword [rbp - 0x38]
jmp 0x180004c20
mov edx, 1
xor eax, eax
mov qword [rbp - 8], rax
xor esi, esi
jmp 0x180004d66
mov ecx, 1
mov rdx, rbx
mov rdi, rcx
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rdx, rdi
jmp 0x180004d62
movzx ecx, r14b
cmp rsi, 0x20
jae 0x180004cb5
xor eax, eax
jmp 0x180004d16
mov rax, qword [rbp - 0x30]
mov qword [rbp - 8], rax
mov r12, qword [rbp - 0x10]
jmp 0x180004d66
mov rax, rsi
and rax, 0xffffffffffffffe0
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor r8d, r8d
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rbx + r8]
movdqu xmm2, xmmword [rbx + r8 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [rdx + r8], xmm1
movdqu xmmword [rdx + r8 + 0x10], xmm2
add r8, 0x20
cmp rax, r8
jne 0x180004ce0
cmp rax, rsi
je 0x180004d62
test sil, 0x18
je 0x180004d50
mov r8, rax
mov rax, rsi
and rax, 0xfffffffffffffff8
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
nop dword [rax]
movq xmm1, qword [rbx + r8]
pxor xmm1, xmm0
movq qword [rdx + r8], xmm1
add r8, 8
cmp rax, r8
jne 0x180004d30
cmp rax, rsi
je 0x180004d62
nop
movzx ecx, byte [rbx + rax]
xor cl, r14b
mov byte [rdx + rax], cl
inc rax
cmp rsi, rax
jne 0x180004d50
mov qword [rbp - 8], rsi
lea rcx, [rbp - 0x38]
mov qword [rbp - 0x10], rdx
mov r8, rsi
call fcn.180125dd0
cmp qword [rbp - 0x38], 0
je 0x180004de7
mov rax, qword [rbp - 0x30]
movzx ecx, byte [rbp - 0x28]
mov edx, dword [rbp - 0x27]
mov dword [rbp - 0x40], edx
mov edx, dword [rbp - 0x24]
mov dword [rbp - 0x3d], edx
cmp cl, 2
mov rdx, qword [rbp - 0x10]
je 0x180004deb
mov qword [rbp - 0x38], rdx
mov rdx, qword [rbp - 8]
mov qword [rbp - 0x30], rdx
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x20], rax
mov byte [rbp - 0x18], cl
mov eax, dword [rbp - 0x40]
mov ecx, dword [rbp - 0x3d]
mov dword [rbp - 0x17], eax
mov dword [rbp - 0x14], ecx
lea rax, [0x18013c808]
mov qword [rsp + 0x20], rax
lea rcx, [0x18013c7a0]
lea r9, fcn.180004940
lea r8, [rbp - 0x38]
mov edx, 0x2b
call fcn.180139e80
ud2
mov rdx, qword [rbp - 0x10]
mov qword [r12], rdx
mov rax, qword [rbp - 8]
mov qword [r12 + 8], rax
mov qword [r12 + 0x10], rsi
mov rax, r12
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.18011f430
ud2
mov ecx, 1
mov edx, 8
call fcn.180139900
ud2