Function at 0x18005e200
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rsp + 0x70], xmm11
mov rsi, rcx
mov rcx, qword [0x1800cf080]
call fcn.18004fb70
xor ecx, ecx
mov qword [rsi + 4], rcx
mov dword [rsi], ecx
test rax, rax
je 0x18005e260
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
jmp 0x18005e276
mov rcx, qword [0x1800cf080]
call fcn.180050930
mov rcx, qword [rax]
movsd xmm0, qword [rcx]
mov eax, dword [rcx + 8]
movsd qword [rsi], xmm0
mov dword [rsi + 8], eax
mov r14, qword [0x1800cf080]
mov ebx, 4
xorps xmm6, xmm6
mov edi, dword [0x1800cdd94]
test r14, r14
je 0x18005e2f1
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rdi*8]
mov eax, dword [rbx + rcx]
cmp dword [0x1800cfb94], eax
jle 0x18005e2e1
lea rcx, [0x1800cfb94]
call fcn.180071278
cmp dword [0x1800cfb94], 0xffffffff
jne 0x18005e2e1
mov ecx, 0xbf3bd4b0
call fcn.180047110
mov qword [0x1800cfc30], rax
lea rcx, [0x1800cfb94]
call fcn.180071218
mov rax, qword [0x1800cfc30]
mov r14, qword [r14 + rax]
test r14, r14
jne 0x18005e2fb
xorps xmm10, xmm10
xorps xmm11, xmm11
jmp 0x18005e362
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rdi*8]
mov eax, dword [rbx + rcx]
cmp dword [0x1800cfbb4], eax
jle 0x18005e345
lea rcx, [0x1800cfbb4]
call fcn.180071278
cmp dword [0x1800cfbb4], 0xffffffff
jne 0x18005e345
mov ecx, 0xcf100582
call fcn.180047110
mov qword [0x1800cf6e8], rax
lea rcx, [0x1800cfbb4]
call fcn.180071218
mov rax, qword [0x1800cf6e8]
movsd xmm0, qword [r14 + rax]
movss xmm11, dword [r14 + rax + 8]
movaps xmm10, xmm0
movsd qword [rbp - 0x61], xmm0
mov rax, qword gs:[0x58]
mov rdi, qword [rax + rdi*8]
mov eax, dword [rdi + rbx]
cmp dword [0x1800cfc38], eax
jle 0x18005e3ac
lea rcx, [0x1800cfc38]
call fcn.180071278
cmp dword [0x1800cfc38], 0xffffffff
jne 0x18005e3ac
mov ecx, 0x3a1e5c61
call fcn.1800466f0
mov qword [0x1800cf9c0], rax
lea rcx, [0x1800cfc38]
call fcn.180071218
mov rax, qword [0x1800cf9c0]
mov rcx, qword [rax + 0xb8]
mov rcx, qword [rcx]
call fcn.180068c60
mov r12, rax
test rax, rax
je 0x18005ed11
mov ecx, dword [rdi + rbx]
cmp dword [0x1800cfb80], ecx
jle 0x18005e4c4
lea rcx, [0x1800cfb80]
call fcn.180071278
cmp dword [0x1800cfb80], 0xffffffff
jne 0x18005e4c4
movdqa xmm1, xmmword [0x1800bb7f0]
movdqu xmmword [rbp - 0x51], xmm1
movdqa xmm2, xmmword [0x1800bb800]
movdqu xmmword [rbp - 0x41], xmm2
mov r8b, 0x3a
mov r9b, 0x29
mov r10b, 0x2b
movdqa xmm0, xmm1
psrldq xmm0, 1
movd eax, xmm0
movd edx, xmm1
xor al, dl
mov byte [rbp - 0x50], al
xor byte [rbp - 0x4f], dl
xor byte [rbp - 0x4e], dl
xor byte [rbp - 0x4d], dl
xor byte [rbp - 0x4c], dl
xor byte [rbp - 0x4b], dl
xor byte [rbp - 0x4a], dl
xor byte [rbp - 0x49], dl
xor byte [rbp - 0x48], dl
xor byte [rbp - 0x47], dl
xor byte [rbp - 0x46], dl
xor byte [rbp - 0x45], dl
xor byte [rbp - 0x44], dl
xor byte [rbp - 0x43], dl
xor byte [rbp - 0x42], dl
movd eax, xmm2
xor al, dl
mov byte [rbp - 0x41], al
xor byte [rbp - 0x40], dl
xor byte [rbp - 0x3f], dl
xor byte [rbp - 0x3e], dl
xor byte [rbp - 0x3d], dl
xor byte [rbp - 0x3c], dl
xor byte [rbp - 0x3b], dl
xor byte [rbp - 0x3a], dl
xor byte [rbp - 0x39], dl
xor byte [rbp - 0x38], dl
xor byte [rbp - 0x37], dl
xor byte [rbp - 0x36], dl
xor byte [rbp - 0x35], dl
xor byte [rbp - 0x34], dl
xor byte [rbp - 0x33], dl
xor byte [rbp - 0x32], dl
xor r8b, dl
mov byte [rbp - 0x31], r8b
xor r9b, dl
mov byte [rbp - 0x30], r9b
xor r10b, dl
mov byte [rbp - 0x2f], r10b
mov byte [rbp - 0x2e], 0
lea rcx, [rbp - 0x50]
call fcn.18004a710
mov qword [0x1800cf9f8], rax
lea rcx, [0x1800cfb80]
call fcn.180071218
cmp qword [0x1800cf9f8], 0
je 0x18005ed11
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf930], eax
jle 0x18005e50f
lea rcx, [0x1800cf930]
call fcn.180071278
cmp dword [0x1800cf930], 0xffffffff
jne 0x18005e50f
mov ecx, 0xb104496e
call fcn.180047110
mov qword [0x1800cfb68], rax
lea rcx, [0x1800cf930]
call fcn.180071218
mov rax, qword [0x1800cfb68]
mov r14, qword [rax + r12]
test r14, r14
je 0x18005ed11
mov eax, dword [rdi + rbx]
cmp dword [0x1800cfdd8], eax
jle 0x18005e560
lea rcx, [0x1800cfdd8]
call fcn.180071278
cmp dword [0x1800cfdd8], 0xffffffff
jne 0x18005e560
mov ecx, 0xd10dec8f
call fcn.180047110
mov qword [0x1800cfe38], rax
lea rcx, [0x1800cfdd8]
call fcn.180071218
mov rax, qword [0x1800cfe38]
mov r15, qword [r14 + rax]
test r15, r15
je 0x18005ed11
mov r14, qword [0x1800cf9f8]
test r14, r14
je 0x18005ed11
mov eax, dword [rdi + rbx]
cmp dword [0x1800cfc74], eax
jle 0x18005e5c4
lea rcx, [0x1800cfc74]
call fcn.180071278
cmp dword [0x1800cfc74], 0xffffffff
jne 0x18005e5c4
mov ecx, 0x726340ef
call fcn.180048680
mov rdx, qword [rax]
mov qword [0x1800cfbd0], rdx
lea rcx, [0x1800cfc74]
call fcn.180071218
mov r9, r14
mov r8, r15
call fcn.18006c800
mov r14, rax
test rax, rax
je 0x18005ed11
movss xmm9, dword [0x1800bb520]
cmp byte [0x1800cf123], 0
je 0x18005e5f3
movaps xmm7, xmm9
jmp 0x18005e5fb
movss xmm7, dword [0x1800bb500]
mov rax, qword [0x1800cf428]
mov rcx, r14
call rax
movaps xmm8, xmm0
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf728], eax
jle 0x18005e648
lea rcx, [0x1800cf728]
call fcn.180071278
cmp dword [0x1800cf728], 0xffffffff
jne 0x18005e648
mov ecx, 0xcdd491cf
call fcn.180047110
mov qword [0x1800cf618], rax
lea rcx, [0x1800cf728]
call fcn.180071218
mov rax, qword [0x1800cf618]
mulss xmm7, xmm8
mulss xmm7, dword [rax + r12]
mov r8, qword [r12]
test r8, r8
je 0x18005e745
mov r8, qword [r8 + 0x10]
mov edx, 0xffffffff
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [r8 + rax], 0
jne 0x18005e680
test eax, eax
je 0x18005e745
mov r9d, eax
lea r10, [0x1800b90c0]
nop dword [rax]
movsx ecx, byte [r8]
mov eax, edx
xor rcx, rax
movzx eax, cl
shr edx, 8
xor edx, dword [r10 + rax*4]
lea r8, [r8 + 1]
sub r9, 1
jne 0x18005e6a0
not edx
cmp edx, 0x643e3521
jne 0x18005e745
cmp byte [0x1800cf123], r9b
je 0x18005e6d6
movaps xmm7, xmm9
jmp 0x18005e6de
movss xmm7, dword [0x1800bb500]
mov rax, qword [0x1800cf428]
mov rcx, r14
call rax
movaps xmm8, xmm0
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf7b0], eax
jle 0x18005e72e
lea rcx, [0x1800cf7b0]
call fcn.180071278
cmp dword [0x1800cf7b0], 0xffffffff
jne 0x18005e72e
mov ecx, 0xe205489c
call fcn.180048680
mov rdx, qword [rax]
mov qword [0x1800cfda8], rdx
lea rcx, [0x1800cf7b0]
call fcn.180071218
mov rax, qword [0x1800cfda8]
xor edx, edx
mov rcx, r12
call rax
mulss xmm7, xmm8
mulss xmm7, xmm0
ucomiss xmm7, xmm6
jp 0x18005e750
je 0x18005ed11
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf840], eax
jle 0x18005e78d
lea rcx, [0x1800cf840]
call fcn.180071278
cmp dword [0x1800cf840], 0xffffffff
jne 0x18005e78d
mov ecx, 0xc2fb7f15
call fcn.180047110
mov qword [0x1800cf8b8], rax
lea rcx, [0x1800cf840]
call fcn.180071218
mov rax, qword [0x1800cf8b8]
mov rcx, qword [rax + r14]
test rcx, rcx
jne 0x18005e7a7
call fcn.18004a7a0
jmp 0x18005ed11
mov r14, qword [rcx + 0x10]
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf624], eax
jle 0x18005e7eb
lea rcx, [0x1800cf624]
call fcn.180071278
cmp dword [0x1800cf624], 0xffffffff
jne 0x18005e7eb
mov ecx, 0xad5514be
call fcn.180048680
mov rdx, qword [rax]
mov qword [0x1800cfd08], rdx
lea rcx, [0x1800cf624]
call fcn.180071218
mov rax, qword [0x1800cfd08]
mov rcx, r14
call rax
mov r15, rax
call fcn.18004a7a0
mov r14, rax
test r15, r15
je 0x18005ed11
test rax, rax
je 0x18005ed11
mov ecx, dword [rdi + rbx]
cmp dword [0x1800cf8a0], ecx
jle 0x18005e854
lea rcx, [0x1800cf8a0]
call fcn.180071278
cmp dword [0x1800cf8a0], 0xffffffff
jne 0x18005e854
mov ecx, 0xe2084f16
call fcn.180048680
mov rdx, qword [rax]
mov qword [0x1800cf5c0], rdx
lea rcx, [0x1800cf8a0]
call fcn.180071218
mov r9, r14
mov r8, r15
call fcn.18006c820
mov r15, rax
test rax, rax
je 0x18005ed11
mov ecx, dword [rdi + rbx]
cmp dword [0x1800cfc38], ecx
jle 0x18005e8a8
lea rcx, [0x1800cfc38]
call fcn.180071278
cmp dword [0x1800cfc38], 0xffffffff
jne 0x18005e8a8
mov ecx, 0x3a1e5c61
call fcn.1800466f0
mov qword [0x1800cf9c0], rax
lea rcx, [0x1800cfc38]
call fcn.180071218
mov rax, qword [0x1800cf9c0]
mov rcx, qword [rax + 0xb8]
mov r14, qword [rcx]
test r14, r14
je 0x18005e96d
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf964], eax
jle 0x18005e8ff
lea rcx, [0x1800cf964]
call fcn.180071278
cmp dword [0x1800cf964], 0xffffffff
jne 0x18005e8ff
mov ecx, 0x6d5c7dd2
call fcn.180047110
mov qword [0x1800cfd18], rax
lea rcx, [0x1800cf964]
call fcn.180071218
mov rax, qword [0x1800cfd18]
mov r14, qword [rax + r14]
test r14, r14
je 0x18005e96d
mov eax, dword [rdi + rbx]
cmp dword [0x1800cfcb0], eax
jle 0x18005e94f
lea rcx, [0x1800cfcb0]
call fcn.180071278
cmp dword [0x1800cfcb0], 0xffffffff
jne 0x18005e94f
mov ecx, 0xf3daab4b
call fcn.180048680
mov rcx, qword [rax]
mov qword [0x1800cfce8], rcx
lea rcx, [0x1800cfcb0]
call fcn.180071218
mov rdx, r14
lea rcx, [rbp - 0x79]
call qword [0x1800cfce8]
movss xmm0, dword [rbp - 0x71]
movss xmm2, dword [rbp - 0x75]
movss xmm3, dword [rbp - 0x79]
jmp 0x18005e985
movaps xmm3, xmm6
movss dword [rbp - 0x79], xmm6
movaps xmm2, xmm6
movss dword [rbp - 0x75], xmm6
movaps xmm0, xmm6
movss dword [rbp - 0x71], xmm6
movss xmm8, dword [rsi + 8]
movaps xmm1, xmm8
subss xmm1, xmm0
movss xmm0, dword [rsi + 4]
subss xmm0, xmm2
movss xmm9, dword [rsi]
movaps xmm2, xmm9
subss xmm2, xmm3
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm2, xmm0
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x18005e9ce
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x18005e9d6
movaps xmm0, xmm2
call fcn.1800a1bd4
divss xmm0, xmm7
mulss xmm11, dword [0x1800bb4d8]
mulss xmm11, xmm0
mulss xmm10, dword [0x1800bb4d8]
mulss xmm10, xmm0
addss xmm10, xmm9
movss dword [rsi], xmm10
addss xmm11, xmm8
movss dword [rsi + 8], xmm11
mov eax, dword [rdi + rbx]
cmp dword [0x1800cfc38], eax
jle 0x18005ea48
lea rcx, [0x1800cfc38]
call fcn.180071278
cmp dword [0x1800cfc38], 0xffffffff
jne 0x18005ea48
mov ecx, 0x3a1e5c61
call fcn.1800466f0
mov qword [0x1800cf9c0], rax
lea rcx, [0x1800cfc38]
call fcn.180071218
mov rax, qword [0x1800cf9c0]
mov rcx, qword [rax + 0xb8]
mov r14, qword [rcx]
test r14, r14
je 0x18005eb03
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf964], eax
jle 0x18005ea9f
lea rcx, [0x1800cf964]
call fcn.180071278
cmp dword [0x1800cf964], 0xffffffff
jne 0x18005ea9f
mov ecx, 0x6d5c7dd2
call fcn.180047110
mov qword [0x1800cfd18], rax
lea rcx, [0x1800cf964]
call fcn.180071218
mov rax, qword [0x1800cfd18]
mov r14, qword [rax + r14]
test r14, r14
je 0x18005eb03
mov eax, dword [rdi + rbx]
cmp dword [0x1800cfcb0], eax
jle 0x18005eaef
lea rcx, [0x1800cfcb0]
call fcn.180071278
cmp dword [0x1800cfcb0], 0xffffffff
jne 0x18005eaef
mov ecx, 0xf3daab4b
call fcn.180048680
mov rcx, qword [rax]
mov qword [0x1800cfce8], rcx
lea rcx, [0x1800cfcb0]
call fcn.180071218
mov rdx, r14
lea rcx, [rbp - 0x6d]
call qword [0x1800cfce8]
movss xmm1, dword [rbp - 0x69]
jmp 0x18005eb19
mov dword [rbp - 0x6d], 0
movaps xmm1, xmm6
movss dword [rbp - 0x69], xmm6
mov dword [rbp - 0x65], 0
movss xmm0, dword [rsi + 4]
subss xmm0, xmm1
cvtps2pd xmm9, xmm0
mov eax, dword [rdi + rbx]
cmp dword [0x1800cfc38], eax
jle 0x18005eb63
lea rcx, [0x1800cfc38]
call fcn.180071278
cmp dword [0x1800cfc38], 0xffffffff
jne 0x18005eb63
mov ecx, 0x3a1e5c61
call fcn.1800466f0
mov qword [0x1800cf9c0], rax
lea rcx, [0x1800cfc38]
call fcn.180071218
mov rax, qword [0x1800cf9c0]
mov rcx, qword [rax + 0xb8]
mov r14, qword [rcx]
test r14, r14
je 0x18005ec23
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf964], eax
jle 0x18005ebba
lea rcx, [0x1800cf964]
call fcn.180071278
cmp dword [0x1800cf964], 0xffffffff
jne 0x18005ebba
mov ecx, 0x6d5c7dd2
call fcn.180047110
mov qword [0x1800cfd18], rax
lea rcx, [0x1800cf964]
call fcn.180071218
mov rax, qword [0x1800cfd18]
mov r14, qword [rax + r14]
test r14, r14
je 0x18005ec23
mov eax, dword [rdi + rbx]
cmp dword [0x1800cfcb0], eax
jle 0x18005ec0a
lea rcx, [0x1800cfcb0]
call fcn.180071278
cmp dword [0x1800cfcb0], 0xffffffff
jne 0x18005ec0a
mov ecx, 0xf3daab4b
call fcn.180048680
mov r8, qword [rax]
mov qword [0x1800cfce8], r8
lea rcx, [0x1800cfcb0]
call fcn.180071218
mov rdx, r14
lea rcx, [rbp - 0x61]
call qword [0x1800cfce8]
movss xmm6, dword [rbp - 0x61]
movss xmm1, dword [rbp - 0x59]
jmp 0x18005ec26
movaps xmm1, xmm6
movss xmm0, dword [rsi + 8]
subss xmm0, xmm1
movss xmm1, dword [rsi]
subss xmm1, xmm6
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x18005ec54
xorps xmm6, xmm6
sqrtss xmm6, xmm1
jmp 0x18005ec5f
movaps xmm0, xmm1
call fcn.1800a1bd4
movaps xmm6, xmm0
mov eax, dword [rdi + rbx]
cmp dword [0x1800cf780], eax
jle 0x18005ec9c
lea rcx, [0x1800cf780]
call fcn.180071278
cmp dword [0x1800cf780], 0xffffffff
jne 0x18005ec9c
mov ecx, 0x24cf107d
call fcn.180047110
mov qword [0x1800cfc88], rax
lea rcx, [0x1800cf780]
call fcn.180071218
mov rax, qword [0x1800cfc88]
movss xmm8, dword [rax + r15]
lea rcx, str.Water
call fcn.18004cdc0
test eax, eax
je 0x18005ecc2
movss xmm8, dword [0x1800bb500]
cvtss2sd xmm6, xmm6
movaps xmm1, xmm6
movaps xmm0, xmm9
call fcn.18009f950
call fcn.1800a06c0
xorps xmm1, xmm1
cvtss2sd xmm1, xmm7
mulsd xmm0, xmm1
divsd xmm6, xmm0
mulss xmm8, dword [0x1800bb4b4]
cvtps2pd xmm0, xmm8
mulsd xmm0, xmm6
mulsd xmm0, xmm6
mulsd xmm0, qword [0x1800bb550]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [rsi + 4]
movss dword [rsi + 4], xmm0
mov rax, rsi
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret