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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xb0
lea rdi, [0x180260c20]
mov r8, rdi
cmp qword [0x180260c38], 0xf
cmova r8, qword [0x180260c20]
mov ebx, 0x811c9dc5
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [r8 + rcx], 0
jne 0x18017f6d4
xor esi, esi
mov edx, esi
test rcx, rcx
je 0x18017f705
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, ebx
imul ebx, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x18017f6f0
mov edx, 0xc10bf213
lea rcx, [0x18021e039]
call fcn.1800e8400
cmp ebx, eax
je 0x18017fdb2
mov ecx, 0x40
call fcn.1801a5504
mov r15, rax
mov qword [rsp + 0xe0], rax
lea r8, str.LightmappedGeneric
mov edx, 0x80
lea rcx, [rsp + 0x30]
call fcn.1800d9150
lea rdx, [rsp + 0x30]
mov rcx, r15
call qword [0x180254080]
nop
mov edx, 0xc10bf213
lea rcx, [0x1802231a5]
call fcn.1800e8400
cmp ebx, eax
jne 0x18017f7f9
mov rax, qword [0x180254058]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, r15
call rax
mov rbx, rax
test rax, rax
je 0x18017fae6
cmp byte [rax + 0x20], 1
jne 0x18017f7aa
lea rax, str.dev_dev_measuregeneric01b
cmp qword [rbx + 8], rax
je 0x18017fae6
mov rcx, qword [rbx + 8]
call fcn.1801a53dc
mov rcx, qword [rbx + 0x10]
call fcn.1801a53dc
mov qword [rbx + 0x10], rsi
mov ecx, 0x1a
call fcn.1801a59b4
mov qword [rbx + 8], rax
movups xmm0, xmmword [str.dev_dev_measuregeneric01b]
movups xmmword [rax], xmm0
movsd xmm0, qword [0x180226850]
movsd qword [rax + 0x10], xmm0
movzx ecx, word [0x180226858]
mov word [rax + 0x18], cx
mov byte [rbx + 0x20], 1
jmp 0x18017fae6
mov edx, 0xc60bf9f2
lea rcx, [0x18022319d]
call fcn.1800e8400
cmp ebx, eax
jne 0x18017f8a0
mov rax, qword [0x180254058]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, r15
call rax
mov rbx, rax
test rax, rax
je 0x18017fae6
cmp byte [rax + 0x20], 1
jne 0x18017f84b
lea rax, str.patterns_paint_strokes
cmp qword [rbx + 8], rax
je 0x18017fae6
mov rcx, qword [rbx + 8]
call fcn.1801a53dc
mov rcx, qword [rbx + 0x10]
call fcn.1801a53dc
mov qword [rbx + 0x10], rsi
mov ecx, 0x17
call fcn.1801a59b4
mov qword [rbx + 8], rax
movups xmm0, xmmword [str.patterns_paint_strokes]
movups xmmword [rax], xmm0
mov ecx, dword [0x180226838]
mov dword [rax + 0x10], ecx
movzx ecx, word [0x18022683c]
mov word [rax + 0x14], cx
movzx ecx, byte [0x18022683e]
mov byte [rax + 0x16], cl
mov byte [rbx + 0x20], 1
jmp 0x18017fae6
mov edx, 0xc70bfb85
lea rcx, [0x180223195]
call fcn.1800e8400
cmp ebx, eax
jne 0x18017f93d
mov rax, qword [0x180254058]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, r15
call rax
mov rbx, rax
test rax, rax
je 0x18017fae6
cmp byte [rax + 0x20], 1
jne 0x18017f8f2
lea rax, str.patterns_combat_black
cmp qword [rbx + 8], rax
je 0x18017fae6
mov rcx, qword [rbx + 8]
call fcn.1801a53dc
mov rcx, qword [rbx + 0x10]
call fcn.1801a53dc
mov qword [rbx + 0x10], rsi
mov ecx, 0x16
call fcn.1801a59b4
mov qword [rbx + 8], rax
movups xmm0, xmmword [str.patterns_combat_black]
movups xmmword [rax], xmm0
mov ecx, dword [0x180226820]
mov dword [rax + 0x10], ecx
movzx ecx, word [0x180226824]
mov word [rax + 0x14], cx
mov byte [rbx + 0x20], 1
jmp 0x18017fae6
mov edx, 0xd20c0cd6
lea rcx, [0x180222b21]
call fcn.1800e8400
cmp ebx, eax
jne 0x18017f9da
mov rax, qword [0x180254058]
mov r8b, 1
lea rdx, str._basetexture
mov rcx, r15
call rax
mov rbx, rax
test rax, rax
je 0x18017fae6
cmp byte [rax + 0x20], 1
jne 0x18017f98f
lea rax, str.patterns_combat_white
cmp qword [rbx + 8], rax
je 0x18017fae6
mov rcx, qword [rbx + 8]
call fcn.1801a53dc
mov rcx, qword [rbx + 0x10]
call fcn.1801a53dc
mov qword [rbx + 0x10], rsi
mov ecx, 0x16
call fcn.1801a59b4
mov qword [rbx + 8], rax
movups xmm0, xmmword [str.patterns_combat_white]
movups xmmword [rax], xmm0
mov ecx, dword [0x180226808]
mov dword [rax + 0x10], ecx
movzx ecx, word [0x18022680c]
mov word [rax + 0x14], cx
mov byte [rbx + 0x20], 1
jmp 0x18017fae6
mov edx, 0xc30bf539
lea rcx, [0x18022318d]
call fcn.1800e8400
lea rdx, str._basetexture
mov rcx, r15
cmp ebx, eax
jne 0x18017face
mov rax, qword [0x180254058]
mov r8b, 1
call rax
mov rbx, rax
test rax, rax
je 0x18017fa5f
cmp byte [rax + 0x20], 1
jne 0x18017fa24
lea rax, str.vgui_white_additive
cmp qword [rbx + 8], rax
je 0x18017fa5f
mov rcx, qword [rbx + 8]
call fcn.1801a53dc
mov rcx, qword [rbx + 0x10]
call fcn.1801a53dc
mov qword [rbx + 0x10], rsi
mov ecx, 0x14
call fcn.1801a59b4
mov qword [rbx + 8], rax
movups xmm0, xmmword [str.vgui_white_additive]
movups xmmword [rax], xmm0
mov ecx, dword [0x1802267f0]
mov dword [rax + 0x10], ecx
mov byte [rbx + 0x20], 1
mov rax, qword [0x180254058]
mov r8b, 1
lea rdx, str._color2
mov rcx, r15
call rax
mov rbx, rax
test rax, rax
je 0x18017fae6
cmp byte [rax + 0x20], 1
jne 0x18017fa90
lea rax, str._0.12_0.12_0.15_
cmp qword [rbx + 8], rax
je 0x18017fae6
mov rcx, qword [rbx + 8]
call fcn.1801a53dc
mov rcx, qword [rbx + 0x10]
call fcn.1801a53dc
mov qword [rbx + 0x10], rsi
mov ecx, 0x11
call fcn.1801a59b4
mov qword [rbx + 8], rax
movups xmm0, xmmword [str._0.12_0.12_0.15_]
movups xmmword [rax], xmm0
movzx ecx, byte [0x1802267d8]
mov byte [rax + 0x10], cl
mov byte [rbx + 0x20], 1
jmp 0x18017fae6
cmp qword [0x180260c38], 0xf
cmova rdi, qword [0x180260c20]
mov r8, rdi
call fcn.180196ed0
mov rcx, qword [0x180257728]
mov rax, qword [rcx]
call qword [rax + 0x258]
movzx r12d, ax
mov rcx, qword [0x180257728]
mov rdx, qword [rcx]
call qword [rdx + 0x268]
cmp r12w, ax
je 0x18017fdb2
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [0x180257728]
mov rax, qword [rcx]
movzx edx, r12w
call qword [rax + 0x270]
mov r14, rax
test rax, rax
je 0x18017fd80
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x150]
test al, al
jne 0x18017fd80
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x1c0]
test al, al
je 0x18017fd80
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x88]
test al, al
jne 0x18017fd80
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x198]
test al, al
jne 0x18017fd80
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 8]
mov rbp, rax
mov rsi, 0xffffffffffffffff
inc rsi
cmp byte [rsi + rax], 0
jne 0x18017fba3
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
mov rdi, rax
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rax + rbx], 0
jne 0x18017fbc0
cmp rsi, 5
jb 0x18017fd80
cmp dword [rbp], 0x6c726f57
jne 0x18017fd80
cmp byte [rbp + 4], 0x64
jne 0x18017fd80
mov qword [rsp + 0x20], 5
lea r9, str.water
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 5
lea r9, str.glass
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 4
lea r9, str.door
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 5
lea r9, str.tools
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 6
lea r9, str.player
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 7
lea r9, str.chicken
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 6
lea r9, str.wall28
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 6
lea r9, str.wall26
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 5
lea r9, str.decal
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 7
lea r9, str.overlay
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov qword [rsp + 0x20], 3
lea r9, [0x1802268b8]
mov rdx, rbx
mov rcx, rdi
call fcn.1801382f0
cmp rax, 0xffffffffffffffff
jne 0x18017fd80
mov rax, qword [r14]
mov rdx, r15
mov rcx, r14
call qword [rax + 0x180]
mov rcx, qword [0x180257728]
mov rax, qword [rcx]
movzx edx, r12w
call qword [rax + 0x260]
movzx r12d, ax
mov rcx, qword [0x180257728]
mov rax, qword [rcx]
call qword [rax + 0x268]
cmp r12w, ax
jne 0x18017fb20
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret