Function at 0x180009670
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], r12
mov qword [rax + 0x20], r13
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x1800f6110]
mov rbx, rdx
xor r12d, r12d
mov rdi, r8
mov rcx, qword [rax]
mov rax, qword [rcx + 0x48]
mov rdx, qword [rax + 0x14cfb8]
test rdx, rdx
je 0x180009bd9
mov rax, qword [rdx]
mov r8d, 0x400
mov rcx, qword [rax + 0x40]
mov qword [0x1800f5f80], rcx
mov rcx, qword [0x1800f63f8]
call fcn.18006ebe0
mov rcx, qword [0x1800f63f8]
lea r13d, [r12 + 8]
mov edx, r13d
mov r8, rbx
call fcn.18006ebcc
mov ecx, dword [0x1800f6148]
sub ecx, 1
je 0x18000997b
sub ecx, 1
je 0x180009835
cmp ecx, 1
jne 0x180009bd9
movdqa xmm0, xmmword [0x18009da40]
mov edx, r12d
movdqu xmmword [rbp - 0x20], xmm0
mov word [rbp - 0x10], 0x22
mov ebx, ecx
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0x11
jb 0x180009726
mov ecx, 0x10
mov byte [rbp - 0xf], r12b
call fcn.18006fce0
mov rdx, rax
test rax, rax
je 0x18000976d
mov byte [rax + 0xf], r12b
lea rax, vtable.CMiscListener.0
mov qword [rdx], rax
mov dword [rdx + 8], 0x1010100
mov word [rdx + 0xc], 0x101
mov byte [rdx + 0xe], bl
jmp 0x180009770
mov rdx, r12
mov rax, qword [rdi]
lea r8, [rbp - 0x20]
mov r9d, ebx
mov rcx, rdi
call qword [rax + 0x360]
movdqa xmm0, xmmword [0x18009da10]
mov edx, r12d
movdqu xmmword [rbp - 0x20], xmm0
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0xf
jb 0x180009793
mov rcx, r13
mov byte [rbp - 0x11], r12b
call fcn.18006fce0
mov rdx, rax
test rax, rax
je 0x1800097c4
lea rax, vtable.CWeaponListener.0
mov qword [rdx], rax
jmp 0x1800097c7
mov rdx, r12
mov rax, qword [rdi]
lea r8, [rbp - 0x20]
mov r9d, ebx
mov rcx, rdi
call qword [rax + 0x360]
movdqa xmm0, xmmword [0x18009da20]
xor eax, eax
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0xe], al
mov r8d, r12d
mov word [rbp - 0x10], 0x2335
movsxd rdx, r8d
lea eax, [r8 + 0x40]
add r8d, ebx
xor byte [rbp + rdx - 0x20], al
cmp r8d, 0x12
jb 0x1800097f5
mov rcx, r13
mov byte [rbp - 0xe], r12b
call fcn.18006fce0
mov rdx, rax
test rax, rax
je 0x180009829
lea rax, vtable.CVisualListener.0
mov qword [rdx], rax
jmp 0x18000982c
mov rdx, r12
lea r8, [rbp - 0x20]
jmp 0x180009bca
movdqa xmm0, xmmword [0x18009da40]
mov edx, r12d
movdqu xmmword [rbp - 0x20], xmm0
mov word [rbp - 0x10], 0x22
mov ebx, 1
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0x11
jb 0x180009850
mov ecx, 0x10
mov byte [rbp - 0xf], r12b
call fcn.18006fce0
mov rdx, rax
test rax, rax
je 0x180009897
mov byte [rax + 0xf], r12b
lea rax, vtable.CMiscListener.0
mov qword [rdx], rax
mov dword [rdx + 8], 0x1010100
mov word [rdx + 0xc], 0x101
mov byte [rdx + 0xe], bl
jmp 0x18000989a
mov rdx, r12
mov rax, qword [rdi]
lea r8, [rbp - 0x20]
mov r9d, ebx
mov rcx, rdi
call qword [rax + 0x360]
movdqa xmm0, xmmword [0x18009da50]
xor eax, eax
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x10], al
mov edx, r12d
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0x10
jb 0x1800098c2
mov r15d, 0x78
mov byte [rbp - 0x10], r12b
mov ecx, r15d
call fcn.18006fce0
mov r14, rax
test rax, rax
je 0x180009931
mov r8d, r15d
xor edx, edx
mov rcx, rax
call fcn.180072350
lea rax, vtable.CHitsListener.0
xorps xmm0, xmm0
mov qword [r14], rax
xor eax, eax
mov qword [r14 + 0x30], r12
mov qword [r14 + 0x38], r12
mov qword [r14 + 0x40], rax
mov byte [r14 + 0x48], al
mov dword [r14 + 0x49], eax
mov word [r14 + 0x4d], ax
mov byte [r14 + 0x4f], al
movups xmmword [r14 + 0x50], xmm0
mov qword [r14 + 0x60], rax
jmp 0x180009934
mov r14, r12
mov rax, qword [rdi]
lea r8, [rbp - 0x20]
mov r9d, ebx
mov rdx, r14
mov rcx, rdi
call qword [rax + 0x360]
movdqa xmm0, xmmword [0x18009da20]
xor eax, eax
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0xe], al
mov edx, r12d
mov word [rbp - 0x10], 0x2335
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0x12
jb 0x180009965
jmp 0x180009809
movdqa xmm0, xmmword [0x18009da40]
mov edx, r12d
movdqu xmmword [rbp - 0x20], xmm0
mov word [rbp - 0x10], 0x22
mov ebx, 1
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0x11
jb 0x180009996
mov ecx, 0x10
mov byte [rbp - 0xf], r12b
call fcn.18006fce0
mov rdx, rax
test rax, rax
je 0x1800099dd
mov byte [rax + 0xf], r12b
lea rax, vtable.CMiscListener.0
mov qword [rdx], rax
mov dword [rdx + 8], 0x1010100
mov word [rdx + 0xc], 0x101
mov byte [rdx + 0xe], bl
jmp 0x1800099e0
mov rdx, r12
mov rax, qword [rdi]
lea r8, [rbp - 0x20]
mov r9d, ebx
mov rcx, rdi
call qword [rax + 0x360]
movdqa xmm0, xmmword [0x18009da50]
xor eax, eax
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x10], al
mov edx, r12d
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0x10
jb 0x180009a08
mov r15d, 0x78
mov byte [rbp - 0x10], r12b
mov ecx, r15d
call fcn.18006fce0
mov r14, rax
test rax, rax
je 0x180009a77
mov r8d, r15d
xor edx, edx
mov rcx, rax
call fcn.180072350
lea rax, vtable.CHitsListener.0
xorps xmm0, xmm0
mov qword [r14], rax
xor eax, eax
mov qword [r14 + 0x30], r12
mov qword [r14 + 0x38], r12
mov qword [r14 + 0x40], rax
mov byte [r14 + 0x48], al
mov dword [r14 + 0x49], eax
mov word [r14 + 0x4d], ax
mov byte [r14 + 0x4f], al
movups xmmword [r14 + 0x50], xmm0
mov qword [r14 + 0x60], rax
jmp 0x180009a7a
mov r14, r12
mov rax, qword [rdi]
lea r8, [rbp - 0x20]
mov r9d, ebx
mov rdx, r14
mov rcx, rdi
call qword [rax + 0x360]
movdqa xmm0, xmmword [0x18009da20]
xor eax, eax
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0xe], al
mov edx, r12d
mov word [rbp - 0x10], 0x2335
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0x12
jb 0x180009aab
mov rcx, r13
mov byte [rbp - 0xe], r12b
call fcn.18006fce0
mov rdx, rax
test rax, rax
je 0x180009adc
lea rax, vtable.CVisualListener.0
mov qword [rdx], rax
jmp 0x180009adf
mov rdx, r12
mov rax, qword [rdi]
lea r8, [rbp - 0x20]
mov r9d, ebx
mov rcx, rdi
call qword [rax + 0x360]
movdqa xmm0, xmmword [0x18009da30]
xor eax, eax
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0xe], al
mov edx, r12d
mov word [rbp - 0x10], 0x2335
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0x12
jb 0x180009b0d
mov ecx, 0x28
mov byte [rbp - 0xe], r12b
call fcn.18006fce0
mov rdx, rax
test rax, rax
je 0x180009b6c
lea rax, vtable.CAimingListener.0
mov qword [rdx], rax
lea rax, str.Bip01_Head
mov qword [rdx + 8], rax
lea rax, str.Bip01_Neck
mov qword [rdx + 0x10], rax
lea rax, str.Bip01_Spine
mov qword [rdx + 0x18], rax
lea rax, str.Bip01_Pelvis
mov qword [rdx + 0x20], rax
jmp 0x180009b6f
mov rdx, r12
mov rax, qword [rdi]
lea r8, [rbp - 0x20]
mov r9d, ebx
mov rcx, rdi
call qword [rax + 0x360]
movdqa xmm0, xmmword [0x18009da10]
mov edx, r12d
movdqu xmmword [rbp - 0x20], xmm0
movsxd rcx, edx
lea eax, [rdx + 0x40]
add edx, ebx
xor byte [rbp + rcx - 0x20], al
cmp edx, 0xf
jb 0x180009b92
mov rcx, r13
mov byte [rbp - 0x11], r12b
call fcn.18006fce0
mov rdx, rax
test rax, rax
je 0x180009bc3
lea rax, vtable.CWeaponListener.0
mov qword [rdx], rax
jmp 0x180009bc6
mov rdx, r12
lea r8, [rbp - 0x20]
mov rax, qword [rdi]
mov r9d, ebx
mov rcx, rdi
call qword [rax + 0x360]
mov rbx, qword [rsp + 0x60]
xor eax, eax
mov rdi, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rbp
ret