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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rdi
sub rsp, 0xb0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
mov rax, qword [0x180066240]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rbx, qword [0x1800ad1a0]
mov rax, qword [0x1800ad150]
lea rcx, str.WeaponCamera
call rax
mov rcx, rax
call rbx
mov rdi, rax
test rax, rax
je 0x18004b940
mov rbx, qword [0x1800ad1b0]
mov rdx, qword [0x1800ad150]
lea rcx, str.WeaponManager
call rdx
mov rdx, rax
mov rcx, rdi
call rbx
mov rbx, rax
test rax, rax
je 0x18004b940
mov r8, qword [0x1800ad0f8]
lea rdx, str.GIGKIOBACJH
mov rcx, qword [rax]
call r8
xor edi, edi
test rax, rax
je 0x18004b4d0
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b940
mov rbx, qword [rax + rbx]
jmp 0x18004b501
mov rax, qword [0x1800ad110]
lea rdx, str.GIGKIOBACJH
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b4fe
mov rax, qword [rax + 0x10]
test rax, rax
je 0x18004b4fe
mov rax, qword [rax]
mov rcx, rbx
call rax
mov rbx, rax
jmp 0x18004b501
mov rbx, rdi
test rbx, rbx
je 0x18004b940
mov rax, qword [0x1800ad1f8]
mov rcx, rbx
call rax
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.18004a630
nop
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova rdx, qword [rsp + 0x40]
movabs r9, 0xcbf29ce484222325
mov rcx, rdi
mov r8, qword [rsp + 0x50]
test r8, r8
je 0x18004b573
movabs r10, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
xor r9, rax
imul r9, r10
inc rcx
cmp rcx, r8
jb 0x18004b560
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x20]
call fcn.180051350
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x18004b598
cmp rcx, qword [0x1800ad4b8]
jne 0x18004b6c9
mov rax, qword [0x1800ad0f8]
lea rdx, str.normalSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b5c0
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b5ef
movss xmm9, dword [rax + rbx]
jmp 0x18004b5f3
mov rax, qword [0x1800ad110]
lea rdx, str.normalSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b5ef
mov rax, qword [rax + 0x10]
test rax, rax
je 0x18004b5ef
mov rax, qword [rax]
mov rcx, rbx
call rax
movaps xmm9, xmm0
jmp 0x18004b5f3
xorps xmm9, xmm9
mov rax, qword [0x1800ad0f8]
lea rdx, str.runSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b61b
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b64a
movss xmm8, dword [rax + rbx]
jmp 0x18004b64e
mov rax, qword [0x1800ad110]
lea rdx, str.runSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b64a
mov rax, qword [rax + 0x10]
test rax, rax
je 0x18004b64a
mov rax, qword [rax]
mov rcx, rbx
call rax
movaps xmm8, xmm0
jmp 0x18004b64e
xorps xmm8, xmm8
mov rax, qword [0x1800ad0f8]
lea rdx, str.spreadAngle
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b675
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b6a3
movss xmm7, dword [rax + rbx]
jmp 0x18004b6a6
mov rax, qword [0x1800ad110]
lea rdx, str.spreadAngle
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b6a3
mov rax, qword [rax + 0x10]
test rax, rax
je 0x18004b6a3
mov rax, qword [rax]
mov rcx, rbx
call rax
movaps xmm7, xmm0
jmp 0x18004b6a6
xorps xmm7, xmm7
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x20]
call fcn.180050570
mov rcx, qword [rax]
movss dword [rcx + 0x30], xmm9
movss dword [rcx + 0x34], xmm8
movss dword [rcx + 0x38], xmm7
cmp byte [0x1800ad189], 0
je 0x18004b7d5
mov rax, qword [0x1800ad0f8]
lea rdx, str.normalSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b6fb
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b727
mov dword [rax + rbx], edi
jmp 0x18004b727
mov rax, qword [0x1800ad110]
lea rdx, str.normalSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b727
mov rax, qword [rax + 0x18]
test rax, rax
je 0x18004b727
mov rax, qword [rax]
xorps xmm1, xmm1
mov rcx, rbx
call rax
mov rax, qword [0x1800ad0f8]
lea rdx, str.runSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b74c
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b778
mov dword [rax + rbx], edi
jmp 0x18004b778
mov rax, qword [0x1800ad110]
lea rdx, str.runSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b778
mov rax, qword [rax + 0x18]
test rax, rax
je 0x18004b778
mov rax, qword [rax]
xorps xmm1, xmm1
mov rcx, rbx
call rax
mov rax, qword [0x1800ad0f8]
lea rdx, str.spreadAngle
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b7a4
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b900
mov dword [rax + rbx], edi
jmp 0x18004b900
mov rax, qword [0x1800ad110]
lea rdx, str.spreadAngle
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b900
mov rax, qword [rax + 0x18]
test rax, rax
je 0x18004b900
xorps xmm1, xmm1
jmp 0x18004b8f7
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x30]
call fcn.180050570
mov rcx, qword [rax]
movsd xmm0, qword [rcx + 0x30]
movsd qword [rsp + 0x20], xmm0
mov edi, dword [rcx + 0x38]
mov rax, qword [0x1800ad0f8]
lea rdx, str.normalSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b822
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b851
movss xmm0, dword [rsp + 0x20]
movss dword [rax + rbx], xmm0
jmp 0x18004b851
mov rax, qword [0x1800ad110]
lea rdx, str.normalSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b851
mov rax, qword [rax + 0x18]
test rax, rax
je 0x18004b851
mov rax, qword [rax]
movss xmm1, dword [rsp + 0x20]
mov rcx, rbx
call rax
mov rax, qword [0x1800ad0f8]
lea rdx, str.runSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b87e
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b8ad
movss xmm0, dword [rsp + 0x24]
movss dword [rax + rbx], xmm0
jmp 0x18004b8ad
mov rax, qword [0x1800ad110]
lea rdx, str.runSpread
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b8ad
mov rax, qword [rax + 0x18]
test rax, rax
je 0x18004b8ad
mov rax, qword [rax]
movss xmm1, dword [rsp + 0x24]
mov rcx, rbx
call rax
mov rax, qword [0x1800ad0f8]
lea rdx, str.spreadAngle
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b8d2
movsxd rax, dword [rax + 0x18]
test eax, eax
js 0x18004b900
mov dword [rax + rbx], edi
jmp 0x18004b900
mov rax, qword [0x1800ad110]
lea rdx, str.spreadAngle
mov rcx, qword [rbx]
call rax
test rax, rax
je 0x18004b900
mov rax, qword [rax + 0x18]
test rax, rax
je 0x18004b900
movd xmm1, edi
mov rcx, rbx
mov rax, qword [rax]
call rax
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x18004b940
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004b93b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004b93b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18005338c
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1800531f0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x10]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop rdi
ret