Function at 0x18004df50
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x310]
sub rsp, 0x410
movaps xmmword [rsp + 0x400], xmm6
mov rsi, rdx
mov rdi, rcx
mov ecx, dword [0x180186db8]
mov rax, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rax + rcx*8]
xor ebx, ebx
mov eax, dword [rdx + rcx]
cmp dword [0x180187460], eax
jle 0x18004e4a2
lea rcx, [0x180187460]
call fcn.18005344c
cmp dword [0x180187460], 0xffffffff
jne 0x18004e4a2
xorps xmm0, xmm0
movups xmmword [0x180187470], xmm0
movups xmmword [0x180187480], xmm0
movups xmmword [0x180187490], xmm0
movups xmmword [0x1801874a0], xmm0
mov qword [rsp + 0x40], rbx
movdqa xmmword [rsp + 0x50], xmm0
lea r8d, [rbx + 0x11]
lea rdx, str.Class_D_Personnel
lea rcx, [rsp + 0x40]
call fcn.180047900
movaps xmm0, xmmword [0x18017b800]
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x80], xmm0
lea r8d, [rbx + 9]
lea rdx, str.Scientist
lea rcx, [rsp + 0x70]
call fcn.180047900
movaps xmm0, xmmword [0x18017b8d0]
movaps xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x50], xmm0
lea r8d, [rbx + 0x1a]
lea rdx, str.Nine_Tailed_Fox_Specialist
lea rcx, [rbp - 0x60]
call fcn.180047900
movaps xmm0, xmmword [0x18017b9d0]
movaps xmmword [rbp - 0x40], xmm0
movaps xmm6, xmm0
mov qword [rbp - 0x30], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x20], xmm0
lea r8d, [rbx + 0x18]
lea rdx, str.Nine_Tailed_Fox_Sergeant
lea rcx, [rbp - 0x30]
call fcn.180047900
movdqa xmmword [rbp - 0x10], xmm6
mov qword [rbp], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x10], xmm0
lea r8d, [rbx + 0x17]
lea rdx, str.Nine_Tailed_Fox_Captain
lea rcx, [rbp]
call fcn.180047900
movaps xmm0, xmm6
movaps xmmword [rbp + 0x20], xmm6
mov qword [rbp + 0x30], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x40], xmm0
lea r8d, [rbx + 0x17]
lea rdx, str.Nine_Tailed_Fox_Private
lea rcx, [rbp + 0x30]
call fcn.180047900
movaps xmm0, xmm6
movaps xmmword [rbp + 0x50], xmm6
mov qword [rbp + 0x60], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x70], xmm0
lea r8d, [rbx + 0x19]
lea rdx, str.Chaos_Insurgency_Rifleman
lea rcx, [rbp + 0x60]
call fcn.180047900
movaps xmm0, xmmword [0x18017b830]
movaps xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x90], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xa0], xmm0
lea r8d, [rbx + 0x19]
lea rdx, str.Chaos_Insurgency_Marauder
lea rcx, [rbp + 0x90]
call fcn.180047900
movaps xmm0, xmmword [0x18017b830]
movaps xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xc0], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xd0], xmm0
lea r8d, [rbx + 0x1a]
lea rdx, str.Chaos_Insurgency_Repressor
lea rcx, [rbp + 0xc0]
call fcn.180047900
movaps xmm0, xmmword [0x18017b830]
movaps xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x100], xmm0
lea r8d, [rbx + 0x1a]
lea rdx, str.Chaos_Insurgency_Conscript
lea rcx, [rbp + 0xf0]
call fcn.180047900
movaps xmm0, xmmword [0x18017b830]
movaps xmmword [rbp + 0x110], xmm0
mov qword [rbp + 0x120], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x130], xmm0
lea r8d, [rbx + 0xe]
lea rdx, str.Facility_Guard
lea rcx, [rbp + 0x120]
call fcn.180047900
movaps xmm0, xmmword [0x18017b8b0]
movaps xmmword [rbp + 0x140], xmm0
mov qword [rbp + 0x150], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x160], xmm0
lea r8d, [rbx + 8]
lea rdx, str.Tutorial
lea rcx, [rbp + 0x150]
call fcn.180047900
movaps xmm0, xmmword [0x18017b9e0]
movaps xmmword [rbp + 0x170], xmm0
mov qword [rbp + 0x180], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x190], xmm0
lea r8d, [rbx + 7]
lea rdx, str.SCP_173
lea rcx, [rbp + 0x180]
call fcn.180047900
movaps xmm0, xmmword [0x18017b7f0]
movaps xmmword [rbp + 0x1a0], xmm0
mov qword [rbp + 0x1b0], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x1c0], xmm0
lea r8d, [rbx + 7]
lea rdx, str.SCP_106
lea rcx, [rbp + 0x1b0]
call fcn.180047900
movaps xmm0, xmmword [0x18017b7f0]
movaps xmmword [rbp + 0x1d0], xmm0
mov qword [rbp + 0x1e0], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x1f0], xmm0
lea r8d, [rbx + 7]
lea rdx, str.SCP_049
lea rcx, [rbp + 0x1e0]
call fcn.180047900
movaps xmm0, xmmword [0x18017b7f0]
movaps xmmword [rbp + 0x200], xmm0
mov qword [rbp + 0x210], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x220], xmm0
lea r8d, [rbx + 7]
lea rdx, str.SCP_096
lea rcx, [rbp + 0x210]
call fcn.180047900
movaps xmm0, xmmword [0x18017b7f0]
movaps xmmword [rbp + 0x230], xmm0
mov qword [rbp + 0x240], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x250], xmm0
lea r8d, [rbx + 7]
lea rdx, str.SCP_079
lea rcx, [rbp + 0x240]
call fcn.180047900
movaps xmm0, xmmword [0x18017b7f0]
movaps xmmword [rbp + 0x260], xmm0
mov qword [rbp + 0x270], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x280], xmm0
lea r8d, [rbx + 9]
lea rdx, str.SCP_049_2
lea rcx, [rbp + 0x270]
call fcn.180047900
movaps xmm0, xmmword [0x18017b7f0]
movaps xmmword [rbp + 0x290], xmm0
mov qword [rbp + 0x2a0], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x2b0], xmm0
lea r8d, [rbx + 7]
lea rdx, str.SCP_939
lea rcx, [rbp + 0x2a0]
call fcn.180047900
movaps xmm0, xmmword [0x18017b7f0]
movaps xmmword [rbp + 0x2c0], xmm0
mov qword [rbp + 0x2d0], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x2e0], xmm0
lea r8d, [rbx + 8]
lea rdx, str.SCP_3114
lea rcx, [rbp + 0x2d0]
call fcn.180047900
movaps xmm0, xmmword [0x18017b7f0]
movaps xmmword [rbp + 0x2f0], xmm0
xorps xmm0, xmm0
movss dword [0x180187470], xmm0
mov qword [0x180187478], rbx
mov qword [0x180187480], rbx
lea ecx, [rbx + 0x40]
call fcn.1800538dc
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [0x180187478], rax
mov qword [0x180187488], rbx
xorps xmm0, xmm0
movdqa xmmword [0x180187490], xmm0
mov qword [0x1801874a0], 7
mov qword [0x1801874a8], 8
movss xmm0, dword [0x18017b448]
movss dword [0x180187470], xmm0
mov r8, rax
lea edx, [rbx + 0x10]
lea rcx, [0x180187488]
call fcn.18004f530
nop
lea rbx, [rsp + 0x40]
mov r8, rbx
lea rdx, [rsp + 0x20]
call fcn.18004f750
add rbx, 0x30
lea rax, [rbp + 0x300]
cmp rbx, rax
jne 0x18004e450
lea r9, [fcn.1800441e0]
mov edx, 0x30
lea r8d, [rdx - 0x1c]
lea rcx, [rsp + 0x40]
call fcn.18005394c
lea rcx, [0x1800556e0]
call fcn.1800538c4
nop
lea rcx, [0x180187460]
call fcn.1800533ec
xor ebx, ebx
mov r8, qword [rsi + 0x10]
mov rdx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x18004e4b3
mov rdx, qword [rsi]
movabs r9, 0xcbf29ce484222325
mov rcx, rbx
test r8, r8
je 0x18004e4e3
movabs r10, 0x100000001b3
nop
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r10
inc rcx
cmp rcx, r8
jb 0x18004e4d0
mov r8, rsi
lea rdx, [rsp + 0x20]
call fcn.18004fd50
mov rcx, qword [rax + 8]
mov rax, qword [0x180187478]
test rcx, rcx
cmovne rax, rcx
cmp rax, qword [0x180187478]
je 0x18004e517
movups xmm0, xmmword [rax + 0x30]
movups xmmword [rdi], xmm0
jmp 0x18004e5fe
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbx
mov r8d, 4
lea rdx, str.SCP_
lea rcx, [rsp + 0x20]
call fcn.180047900
mov rbx, qword [rsp + 0x30]
lea rdx, [rsp + 0x20]
mov r13, qword [rsp + 0x38]
cmp r13, 0x10
setae r12b
mov r15, qword [rsp + 0x20]
cmovae rdx, r15
mov r14, rbx
cmp qword [rsi + 0x10], rbx
cmovb r14, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 0x10
jb 0x18004e573
mov rsi, qword [rsi]
mov r8, r14
cmp rbx, r14
cmovb r8, rbx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
mov esi, eax
test eax, eax
jne 0x18004e59e
cmp r14, rbx
jae 0x18004e595
lea esi, [rax - 1]
jmp 0x18004e59e
xor esi, esi
cmp r14, rbx
seta sil
test r12b, r12b
je 0x18004e5d7
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x18004e5cf
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004e5cf
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r15
call fcn.1800532bc
mov dword [rdi], 0x3f800000
mov dword [rdi + 0xc], 0x3f800000
test esi, esi
jne 0x18004e5f0
xor eax, eax
mov qword [rdi + 4], rax
jmp 0x18004e5fe
mov dword [rdi + 4], 0x3f800000
mov dword [rdi + 8], 0x3f800000
mov rax, rdi
mov rbx, qword [rsp + 0x460]
movaps xmm6, xmmword [rsp + 0x400]
add rsp, 0x410
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret