Function at 0x180016ff0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp - 0x10], xmm7
movdqa xmmword [rbp - 0x20], xmm6
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov rdi, rdx
mov rsi, rcx
lea rbx, [rbp - 0x50]
mov rcx, rbx
mov edx, r8d
call fcn.180017890
mov byte [rbp - 0x29], 0x2e
mov rax, qword [0x180044780]
cmp byte [0x180045b71], 0
jne 0x180017207
movabs rcx, 0xb8b3457109c04839
add rcx, rax
movabs rdx, 0xb8b3457109c04850
add rdx, rax
movabs r9, 0xb8b3457109c04861
add r9, rax
lea r8, [0x180045b60]
cmp r9, r8
jbe 0x180017091
lea r9, [0x180045b71]
cmp rcx, r9
jae 0x180017091
xor r9d, r9d
jmp 0x180017170
movdqu xmm1, xmmword [rdx]
movdqu xmm0, xmmword [rcx]
movdqa xmm3, xmmword [str.iiiiiiiiiiiiiiii]
pxor xmm3, xmm1
movdqa xmm2, xmmword [0x180038400]
pand xmm2, xmm1
pxor xmm2, xmmword [str.aaaaaaaaaaaaaaaa_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_fAAAAAAAAAAAAAAAA]
pand xmm2, xmm3
movdqa xmm4, xmmword [str.yyyyyyyyyyyyyyyy]
pxor xmm4, xmm2
pxor xmm2, xmmword [0x180038420]
movdqa xmm5, xmmword [str.bbbbbbbbbbbbbbbb]
pand xmm5, xmm0
por xmm5, xmmword [0x180038440]
movdqa xmm3, xmmword [0x180038450]
pand xmm3, xmm0
pxor xmm3, xmm5
movdqa xmm5, xmmword [0x180038460]
pand xmm0, xmm5
pand xmm1, xmm5
movdqa xmm5, xmm4
pxor xmm5, xmm1
movdqa xmm6, xmmword [0x180038470]
pand xmm6, xmm2
movdqa xmm7, xmmword [str.pppppppppppppppp]
pand xmm4, xmm7
por xmm4, xmm6
pxor xmm7, xmm1
pxor xmm7, xmm4
por xmm1, xmm2
pcmpeqd xmm2, xmm2
pxor xmm2, xmm1
por xmm2, xmm7
pand xmm2, xmm5
por xmm0, xmmword [0x1800381c0]
pxor xmm0, xmm3
pxor xmm0, xmm2
pxor xmm0, xmmword [str._]
movdqa xmmword [0x180045b60], xmm0
mov r9d, 0x10
nop dword [rax + rax]
movzx r11d, byte [rdx + r9]
movzx r10d, byte [rcx + r9]
mov r15d, r11d
xor r15b, 0x69
mov r14d, r11d
and r14b, 0xe7
xor r14b, 0x61
and r14b, r15b
mov r15d, r14d
xor r15b, 0x79
xor r14b, 0x86
mov r13d, r10d
and r13b, 0x62
or r13b, 5
mov r12d, r10d
and r12b, 0x85
xor r12b, r13b
and r10b, 0x18
and r11b, 0x18
mov r13d, r15d
xor r13b, r11b
mov ebx, r14d
and bl, 0x87
and r15b, 0x70
or r15b, bl
xor r15b, r11b
xor r15b, 0x70
or r11b, r14b
not r11b
or r11b, r15b
and r11b, r13b
or r10b, 0x41
xor r10b, r12b
xor r10b, r11b
xor r10b, 0x5c
mov byte [r9 + r8], r10b
inc r9
cmp r9, 0x11
jne 0x180017170
mov byte [0x180045b71], 1
lea rbx, [rbp - 0x50]
cmp byte [0x180045b5c], 0
jne 0x18001727a
movabs rcx, 0xb8b3457109c047fa
movzx ecx, byte [rax + rcx]
movabs rdx, 0xb8b3457109c04819
xor cl, byte [rax + rdx]
mov byte [0x180045b59], cl
movabs rcx, 0xb8b3457109c047fb
movzx ecx, byte [rax + rcx]
movabs rdx, 0xb8b3457109c0481a
xor cl, byte [rax + rdx]
mov byte [0x180045b5a], cl
movabs rcx, 0xb8b3457109c047fc
movzx ecx, byte [rax + rcx]
movabs rdx, 0xb8b3457109c0481b
xor cl, byte [rax + rdx]
mov byte [0x180045b5b], cl
mov byte [0x180045b5c], 1
movabs rax, 0xb8b3457109c03972
mov rdx, qword [0x180044788]
add rdx, rax
add rax, qword [0x180044790]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 0x29]
mov rcx, rsi
mov r8, rdi
call fcn.1800175d0
mov rax, qword [rbp - 0x38]
cmp rax, 0x10
jb 0x1800172e9
mov rcx, qword [rbp - 0x50]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1800172e4
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x180017308
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1800330b4
mov rax, rsi
movaps xmm6, xmmword [rbp - 0x20]
movaps xmm7, xmmword [rbp - 0x10]
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3