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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xe0
mov rax, qword [0x18021d4c0]
xor rax, rsp
mov qword [rbp + 0x47], rax
mov esi, 0xf
xor r14d, r14d
movabs rbx, 0xcbf29ce484222325
movabs rdi, 0x100000001b3
cmp qword [0x18027a170], r14
jne 0x18015ca93
xorps xmm0, xmm0
movups xmmword [rbp - 0x69], xmm0
mov r9d, 0xd
mov qword [rbp - 0x59], r9
mov qword [rbp - 0x51], rsi
movsd xmm1, qword [str.ui_fill_color]
movsd qword [rbp - 0x69], xmm1
mov ecx, dword [0x1801f4ef0]
mov dword [rbp - 0x61], ecx
movzx eax, byte [0x1801f4ef4]
mov byte [rbp - 0x5d], al
mov byte [rbp - 0x5c], r14b
mov qword [rbp - 0x19], r14
movups xmmword [rbp - 0x11], xmm0
mov qword [rbp + 7], rsi
mov byte [rbp - 0x11], r14b
mov qword [rbp + 0xf], r14
mov qword [rbp - 1], r9
movsd qword [rbp - 0x11], xmm1
mov dword [rbp - 9], ecx
mov byte [rbp - 5], al
mov byte [rbp - 4], r14b
mov rdx, rbx
lea r8, [rbp - 0x11]
lea rcx, [rbp - 0x11]
add rcx, r9
cmp r8, rcx
je 0x18015ca43
nop dword [rax + rax]
imul rdx, rdi
movsx rax, byte [r8]
xor rdx, rax
inc r8
cmp r8, rcx
jne 0x18015ca30
mov qword [rbp - 0x19], rdx
lea rcx, [rbp - 0x19]
call fcn.180152c80
mov qword [0x18027a170], rax
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x18015ca93
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015ca8d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015cc9e
call fcn.18016ee40
nop
cmp qword [0x18027a168], 0
jne 0x18015cb83
xorps xmm0, xmm0
movups xmmword [rbp - 0x69], xmm0
mov r9d, 0xb
mov qword [rbp - 0x59], r9
mov qword [rbp - 0x51], rsi
movsd xmm1, qword [str.ui_textured]
movsd qword [rbp - 0x69], xmm1
movzx ecx, word [0x1801f4ed0]
mov word [rbp - 0x61], cx
movzx eax, byte [0x1801f4ed2]
mov byte [rbp - 0x5f], al
mov byte [rbp - 0x5e], 0
mov qword [rbp + 0x17], r14
movups xmmword [rbp + 0x1f], xmm0
mov qword [rbp + 0x37], rsi
mov byte [rbp + 0x1f], 0
mov qword [rbp + 0x3f], r14
mov qword [rbp + 0x2f], r9
movsd qword [rbp + 0x1f], xmm1
mov word [rbp + 0x27], cx
mov byte [rbp + 0x29], al
mov byte [rbp + 0x2a], 0
mov rdx, rbx
lea r8, [rbp + 0x1f]
lea rcx, [rbp + 0x1f]
add rcx, r9
cmp r8, rcx
je 0x18015cb33
nop word [rax + rax]
imul rdx, rdi
movsx rax, byte [r8]
xor rdx, rax
inc r8
cmp r8, rcx
jne 0x18015cb20
mov qword [rbp + 0x17], rdx
lea rcx, [rbp + 0x17]
call fcn.180152c80
mov qword [0x18027a168], rax
mov rdx, qword [rbp + 0x37]
cmp rdx, 0xf
jbe 0x18015cb83
inc rdx
mov rcx, qword [rbp + 0x1f]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015cb7d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015cca4
call fcn.18016ee40
nop
cmp qword [0x18027a178], 0
jne 0x18015cc6f
xorps xmm0, xmm0
movups xmmword [rbp - 0x69], xmm0
mov qword [rbp - 0x59], rsi
mov qword [rbp - 0x51], rsi
movsd xmm1, qword [str.particles_alpha]
movsd qword [rbp - 0x69], xmm1
mov edx, dword [0x1801f4ee0]
mov dword [rbp - 0x61], edx
movzx ecx, word [0x1801f4ee4]
mov word [rbp - 0x5d], cx
movzx eax, byte [0x1801f4ee6]
mov byte [rbp - 0x5b], al
mov byte [rbp - 0x5a], 0
mov qword [rbp - 0x49], r14
movups xmmword [rbp - 0x41], xmm0
mov qword [rbp - 0x29], rsi
mov byte [rbp - 0x41], 0
mov qword [rbp - 0x21], r14
mov qword [rbp - 0x31], rsi
movsd qword [rbp - 0x41], xmm1
mov dword [rbp - 0x39], edx
mov word [rbp - 0x35], cx
mov byte [rbp - 0x33], al
mov byte [rbp - 0x32], 0
lea rdx, [rbp - 0x41]
lea rcx, [rbp - 0x41]
add rcx, rsi
cmp rdx, rcx
je 0x18015cc23
nop word [rax + rax]
imul rbx, rdi
movsx rax, byte [rdx]
xor rbx, rax
inc rdx
cmp rdx, rcx
jne 0x18015cc10
mov qword [rbp - 0x49], rbx
lea rcx, [rbp - 0x49]
call fcn.180152c80
mov qword [0x18027a178], rax
mov rdx, qword [rbp - 0x29]
cmp rdx, 0xf
jbe 0x18015cc6f
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015cc69
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015cc98
call fcn.18016ee40
nop
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.18016e810
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.1801819e8
nop
call fcn.1801819e8
nop
call fcn.1801819e8
int3