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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rsp + 0x70], xmm11
mov rbx, rcx
mov rcx, qword [0x1800cdfe0]
call fcn.180050360
xor ecx, ecx
mov qword [rbp + 0x6f], rcx
mov qword [rbx + 4], rcx
mov dword [rbx], ecx
test rax, rax
jne 0x18005ec50
mov rcx, qword [0x1800cdfe0]
call fcn.180050fd0
mov rax, qword [rax]
movsd xmm0, qword [rax]
movsd qword [rbx], xmm0
mov eax, dword [rax + 8]
mov dword [rbx + 8], eax
mov rbx, qword [0x1800cdfe0]
mov r15d, 4
xorps xmm7, xmm7
mov edi, dword [0x1800ccce0]
test rbx, rbx
je 0x18005ed3f
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rdi*8]
mov eax, dword [r15 + rcx]
cmp dword [0x1800ce9d4], eax
jle 0x18005ecc8
lea rcx, [0x1800ce9d4]
call fcn.180070588
cmp dword [0x1800ce9d4], 0xffffffff
jne 0x18005ecc8
mov ecx, 0xbf3bd4b0
call fcn.180049150
mov qword [0x1800cea60], rax
lea rcx, [0x1800ce9d4]
call fcn.18007051c
mov rax, qword [0x1800cea60]
mov rbx, qword [rbx + rax]
test rbx, rbx
je 0x18005ed3f
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rdi*8]
mov eax, dword [r15 + rcx]
cmp dword [0x1800ce9e8], eax
jle 0x18005ed23
lea rcx, [0x1800ce9e8]
call fcn.180070588
cmp dword [0x1800ce9e8], 0xffffffff
jne 0x18005ed23
mov ecx, 0xcf100582
call fcn.180049150
mov qword [0x1800ce5b0], rax
lea rcx, [0x1800ce9e8]
call fcn.18007051c
mov rax, qword [0x1800ce5b0]
movsd xmm10, qword [rbx + rax]
movss xmm11, dword [rbx + rax + 8]
movsd qword [rbp - 0x71], xmm10
jmp 0x18005ed47
xorps xmm10, xmm10
xorps xmm11, xmm11
mov rax, qword gs:[0x58]
mov rbx, qword [rax + rdi*8]
mov qword [rbp + 0x77], rbx
mov eax, dword [rbx + r15]
cmp dword [0x1800cea68], eax
jle 0x18005ed96
lea rcx, [0x1800cea68]
call fcn.180070588
cmp dword [0x1800cea68], 0xffffffff
jne 0x18005ed96
mov ecx, 0x3a1e5c61
call fcn.180048730
mov qword [0x1800ce818], rax
lea rcx, [0x1800cea68]
call fcn.18007051c
mov rax, qword [0x1800ce818]
mov rcx, qword [rax + 0xb8]
mov rcx, qword [rcx]
call fcn.180067380
mov r14, rax
test rax, rax
je 0x18005f7ea
mov ecx, dword [rbx + r15]
cmp dword [0x1800ce9c0], ecx
jle 0x18005eeaf
lea rcx, [0x1800ce9c0]
call fcn.180070588
cmp dword [0x1800ce9c0], 0xffffffff
jne 0x18005eeaf
movdqa xmm1, xmmword [0x1800b76f0]
movdqu xmmword [rbp - 0x61], xmm1
movdqa xmm2, xmmword [0x1800b7700]
movdqu xmmword [rbp - 0x51], xmm2
mov r8b, 2
mov r9b, 0x11
mov r10b, 0x13
movdqa xmm0, xmm1
psrldq xmm0, 1
movd eax, xmm0
movd edx, xmm1
xor al, dl
mov byte [rbp - 0x60], al
xor byte [rbp - 0x5f], dl
xor byte [rbp - 0x5e], dl
xor byte [rbp - 0x5d], dl
xor byte [rbp - 0x5c], dl
xor byte [rbp - 0x5b], dl
xor byte [rbp - 0x5a], dl
xor byte [rbp - 0x59], dl
xor byte [rbp - 0x58], dl
xor byte [rbp - 0x57], dl
xor byte [rbp - 0x56], dl
xor byte [rbp - 0x55], dl
xor byte [rbp - 0x54], dl
xor byte [rbp - 0x53], dl
xor byte [rbp - 0x52], dl
movd eax, xmm2
xor al, dl
mov byte [rbp - 0x51], al
xor byte [rbp - 0x50], dl
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
xor r8b, dl
mov byte [rbp - 0x41], r8b
xor r9b, dl
mov byte [rbp - 0x40], r9b
xor r10b, dl
mov byte [rbp - 0x3f], r10b
mov byte [rbp - 0x3e], 0
lea rcx, [rbp - 0x60]
call fcn.18004c4e0
mov qword [0x1800ce870], rax
lea rcx, [0x1800ce9c0]
call fcn.18007051c
cmp qword [0x1800ce870], 0
je 0x18005f7ea
mov eax, dword [rbx + r15]
cmp dword [0x1800ce7a0], eax
jle 0x18005eefb
lea rcx, [0x1800ce7a0]
call fcn.180070588
cmp dword [0x1800ce7a0], 0xffffffff
jne 0x18005eefb
mov ecx, 0xb104496e
call fcn.180049150
mov qword [0x1800ce9b8], rax
lea rcx, [0x1800ce7a0]
call fcn.18007051c
mov rax, qword [0x1800ce9b8]
mov rdi, qword [rax + r14]
test rdi, rdi
je 0x18005f7ea
mov eax, dword [rbx + r15]
cmp dword [0x1800cec00], eax
jle 0x18005ef4d
lea rcx, [0x1800cec00]
call fcn.180070588
cmp dword [0x1800cec00], 0xffffffff
jne 0x18005ef4d
mov ecx, 0xd10dec8f
call fcn.180049150
mov qword [0x1800cec48], rax
lea rcx, [0x1800cec00]
call fcn.18007051c
mov rax, qword [0x1800cec48]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x18005f7ea
mov rdi, qword [0x1800ce870]
test rdi, rdi
je 0x18005f7ea
mov eax, dword [rbx + r15]
cmp dword [0x1800cea94], eax
jle 0x18005efb2
lea rcx, [0x1800cea94]
call fcn.180070588
cmp dword [0x1800cea94], 0xffffffff
jne 0x18005efb2
mov ecx, 0x726340ef
call fcn.18004a6b0
mov rdx, qword [rax]
mov qword [0x1800cea08], rdx
lea rcx, [0x1800cea94]
call fcn.18007051c
mov r9, rdi
mov r8, rsi
call fcn.18006bd90
mov rdi, rax
test rax, rax
je 0x18005f7ea
movss xmm9, dword [0x1800b7448]
cmp byte [0x1800ce07d], 0
je 0x18005efe1
movaps xmm6, xmm9
jmp 0x18005efe9
movss xmm6, dword [0x1800b742c]
mov rax, qword [0x1800ce360]
mov rcx, rdi
call rax
movaps xmm8, xmm0
mov eax, dword [rbx + r15]
cmp dword [0x1800ce5d8], eax
jle 0x18005f037
lea rcx, [0x1800ce5d8]
call fcn.180070588
cmp dword [0x1800ce5d8], 0xffffffff
jne 0x18005f037
mov ecx, 0xcdd491cf
call fcn.180049150
mov qword [0x1800ce528], rax
lea rcx, [0x1800ce5d8]
call fcn.18007051c
mov rax, qword [0x1800ce528]
mulss xmm8, xmm6
mulss xmm8, dword [rax + r14]
mov r8, qword [r14]
test r8, r8
je 0x18005f127
mov r8, qword [r8 + 0x10]
mov edx, 0xffffffff
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r8 + rax], 0
jne 0x18005f065
test eax, eax
je 0x18005f127
mov r9d, eax
lea r10, [0x1800b4d40]
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 0x18005f081
not edx
cmp edx, 0x643e3521
jne 0x18005f127
cmp byte [0x1800ce07d], r9b
jne 0x18005f0be
movss xmm9, dword [0x1800b742c]
mov rax, qword [0x1800ce360]
mov rcx, rdi
call rax
movaps xmm8, xmm0
mov eax, dword [rbx + r15]
cmp dword [0x1800ce638], eax
jle 0x18005f10f
lea rcx, [0x1800ce638]
call fcn.180070588
cmp dword [0x1800ce638], 0xffffffff
jne 0x18005f10f
mov ecx, 0xe205489c
call fcn.18004a6b0
mov rdx, qword [rax]
mov qword [0x1800cebd8], rdx
lea rcx, [0x1800ce638]
call fcn.18007051c
mov rax, qword [0x1800cebd8]
xor edx, edx
mov rcx, r14
call rax
mulss xmm8, xmm9
mulss xmm8, xmm0
ucomiss xmm8, xmm7
jp 0x18005f133
je 0x18005f7ea
mov eax, dword [rbx + r15]
cmp dword [0x1800ce6b0], eax
jle 0x18005f171
lea rcx, [0x1800ce6b0]
call fcn.180070588
cmp dword [0x1800ce6b0], 0xffffffff
jne 0x18005f171
mov ecx, 0xc2fb7f15
call fcn.180049150
mov qword [0x1800ce738], rax
lea rcx, [0x1800ce6b0]
call fcn.18007051c
mov rax, qword [0x1800ce738]
mov rcx, qword [rdi + rax]
test rcx, rcx
je 0x18005f1d6
mov rdi, qword [rcx + 0x10]
mov eax, dword [rbx + r15]
cmp dword [0x1800ce534], eax
jle 0x18005f1c6
lea rcx, [0x1800ce534]
call fcn.180070588
cmp dword [0x1800ce534], 0xffffffff
jne 0x18005f1c6
mov ecx, 0xad5514be
call fcn.18004a6b0
mov rdx, qword [rax]
mov qword [0x1800ceb28], rdx
lea rcx, [0x1800ce534]
call fcn.18007051c
mov rax, qword [0x1800ceb28]
mov rcx, rdi
call rax
mov qword [rbp + 0x6f], rax
movdqa xmm1, xmmword [0x1800b77e0]
movdqu xmmword [rbp - 0x61], xmm1
mov cl, 0x28
mov dl, 0x20
mov r8b, 0x2f
mov r10b, 0x21
mov r11b, 0x34
mov bl, 0x60
mov dil, 0xe
mov sil, 0x1e
mov r14b, 0x25
mov r15b, 0x2c
mov r12b, 0x3f
mov r13b, 0x3d
movdqa xmm0, xmm1
psrldq xmm0, 1
movd eax, xmm0
movd r9d, xmm1
xor al, r9b
mov byte [rbp - 0x60], al
xor byte [rbp - 0x5f], r9b
xor byte [rbp - 0x5e], r9b
xor byte [rbp - 0x5d], r9b
xor byte [rbp - 0x5c], r9b
xor byte [rbp - 0x5b], r9b
xor byte [rbp - 0x5a], r9b
xor byte [rbp - 0x59], r9b
xor byte [rbp - 0x58], r9b
xor byte [rbp - 0x57], r9b
xor byte [rbp - 0x56], r9b
xor byte [rbp - 0x55], r9b
xor byte [rbp - 0x54], r9b
xor byte [rbp - 0x53], r9b
xor byte [rbp - 0x52], r9b
xor cl, r9b
mov byte [rbp - 0x51], cl
xor dl, r9b
mov byte [rbp - 0x50], dl
xor r8b, r9b
mov byte [rbp - 0x4f], r8b
xor r10b, r9b
mov byte [rbp - 0x4e], r10b
xor r11b, r9b
mov byte [rbp - 0x4d], r11b
xor bl, r9b
mov byte [rbp - 0x4c], bl
xor dil, r9b
mov byte [rbp - 0x4b], dil
xor sil, r9b
mov byte [rbp - 0x4a], sil
xor r14b, r9b
mov byte [rbp - 0x49], r14b
xor r15b, r9b
mov byte [rbp - 0x48], r15b
xor r12b, r9b
mov byte [rbp - 0x47], r12b
xor r13b, r9b
mov byte [rbp - 0x46], r13b
mov byte [rbp - 0x45], 0
lea rcx, [rbp - 0x60]
call fcn.18004c4e0
mov rdi, rax
mov rsi, qword [rbp + 0x6f]
test rsi, rsi
je 0x18005f7ea
test rax, rax
je 0x18005f7ea
mov rbx, qword [rbp + 0x77]
mov r15d, 4
mov ecx, dword [rbx + r15]
cmp dword [0x1800ce724], ecx
jle 0x18005f316
lea rcx, [0x1800ce724]
call fcn.180070588
cmp dword [0x1800ce724], 0xffffffff
jne 0x18005f316
mov ecx, 0xe2084f16
call fcn.18004a6b0
mov rdx, qword [rax]
mov qword [0x1800ce4f0], rdx
lea rcx, [0x1800ce724]
call fcn.18007051c
mov r9, rdi
mov r8, rsi
call fcn.18006bdb0
mov r14, rax
test rax, rax
je 0x18005f7ea
mov ecx, dword [rbx + r15]
cmp dword [0x1800cea68], ecx
jle 0x18005f36b
lea rcx, [0x1800cea68]
call fcn.180070588
cmp dword [0x1800cea68], 0xffffffff
jne 0x18005f36b
mov ecx, 0x3a1e5c61
call fcn.180048730
mov qword [0x1800ce818], rax
lea rcx, [0x1800cea68]
call fcn.18007051c
mov rax, qword [0x1800ce818]
mov rcx, qword [rax + 0xb8]
mov rdi, qword [rcx]
test rdi, rdi
je 0x18005f436
mov eax, dword [rbx + r15]
cmp dword [0x1800ce7c8], eax
jle 0x18005f3c3
lea rcx, [0x1800ce7c8]
call fcn.180070588
cmp dword [0x1800ce7c8], 0xffffffff
jne 0x18005f3c3
mov ecx, 0x6d5c7dd2
call fcn.180049150
mov qword [0x1800ceb38], rax
lea rcx, [0x1800ce7c8]
call fcn.18007051c
mov rax, qword [0x1800ceb38]
mov rdi, qword [rax + rdi]
test rdi, rdi
je 0x18005f436
mov eax, dword [rbx + r15]
cmp dword [0x1800cead0], eax
jle 0x18005f414
lea rcx, [0x1800cead0]
call fcn.180070588
cmp dword [0x1800cead0], 0xffffffff
jne 0x18005f414
mov ecx, 0xf3daab4b
call fcn.18004a6b0
mov rcx, qword [rax]
mov qword [0x1800ceb08], rcx
lea rcx, [0x1800cead0]
call fcn.18007051c
mov rdx, rdi
lea rcx, [rsp + 0x20]
call qword [0x1800ceb08]
movss xmm0, dword [rsp + 0x28]
movss xmm2, dword [rsp + 0x24]
movss xmm3, dword [rsp + 0x20]
jmp 0x18005f451
movaps xmm3, xmm7
movss dword [rsp + 0x20], xmm7
movaps xmm2, xmm7
movss dword [rsp + 0x24], xmm7
movaps xmm0, xmm7
movss dword [rsp + 0x28], xmm7
mov rdi, qword [rbp + 0x67]
movss xmm6, dword [rdi + 8]
movaps xmm1, xmm6
subss xmm1, xmm0
movss xmm0, dword [rdi + 4]
subss xmm0, xmm2
movss xmm9, dword [rdi]
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 0x18005f49c
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x18005f4a4
movaps xmm0, xmm2
call fcn.1800a0218
divss xmm0, xmm8
mulss xmm11, dword [0x1800b7404]
mulss xmm11, xmm0
mulss xmm10, dword [0x1800b7404]
mulss xmm10, xmm0
addss xmm10, xmm9
movss dword [rdi], xmm10
addss xmm11, xmm6
movss dword [rdi + 8], xmm11
mov eax, dword [rbx + r15]
cmp dword [0x1800cea68], eax
jle 0x18005f518
lea rcx, [0x1800cea68]
call fcn.180070588
cmp dword [0x1800cea68], 0xffffffff
jne 0x18005f518
mov ecx, 0x3a1e5c61
call fcn.180048730
mov qword [0x1800ce818], rax
lea rcx, [0x1800cea68]
call fcn.18007051c
mov rax, qword [0x1800ce818]
mov rcx, qword [rax + 0xb8]
mov rsi, qword [rcx]
test rsi, rsi
je 0x18005f5d5
mov eax, dword [rbx + r15]
cmp dword [0x1800ce7c8], eax
jle 0x18005f570
lea rcx, [0x1800ce7c8]
call fcn.180070588
cmp dword [0x1800ce7c8], 0xffffffff
jne 0x18005f570
mov ecx, 0x6d5c7dd2
call fcn.180049150
mov qword [0x1800ceb38], rax
lea rcx, [0x1800ce7c8]
call fcn.18007051c
mov rax, qword [0x1800ceb38]
mov rsi, qword [rsi + rax]
test rsi, rsi
je 0x18005f5d5
mov eax, dword [rbx + r15]
cmp dword [0x1800cead0], eax
jle 0x18005f5c1
lea rcx, [0x1800cead0]
call fcn.180070588
cmp dword [0x1800cead0], 0xffffffff
jne 0x18005f5c1
mov ecx, 0xf3daab4b
call fcn.18004a6b0
mov rcx, qword [rax]
mov qword [0x1800ceb08], rcx
lea rcx, [0x1800cead0]
call fcn.18007051c
mov rdx, rsi
lea rcx, [rbp - 0x7d]
call qword [0x1800ceb08]
movss xmm1, dword [rbp - 0x79]
jmp 0x18005f5eb
mov dword [rbp - 0x7d], 0
movaps xmm1, xmm7
movss dword [rbp - 0x79], xmm7
mov dword [rbp - 0x75], 0
movss xmm0, dword [rdi + 4]
subss xmm0, xmm1
cvtps2pd xmm9, xmm0
mov eax, dword [rbx + r15]
cmp dword [0x1800cea68], eax
jle 0x18005f636
lea rcx, [0x1800cea68]
call fcn.180070588
cmp dword [0x1800cea68], 0xffffffff
jne 0x18005f636
mov ecx, 0x3a1e5c61
call fcn.180048730
mov qword [0x1800ce818], rax
lea rcx, [0x1800cea68]
call fcn.18007051c
mov rax, qword [0x1800ce818]
mov rcx, qword [rax + 0xb8]
mov rsi, qword [rcx]
test rsi, rsi
je 0x18005f6f8
mov eax, dword [rbx + r15]
cmp dword [0x1800ce7c8], eax
jle 0x18005f68e
lea rcx, [0x1800ce7c8]
call fcn.180070588
cmp dword [0x1800ce7c8], 0xffffffff
jne 0x18005f68e
mov ecx, 0x6d5c7dd2
call fcn.180049150
mov qword [0x1800ceb38], rax
lea rcx, [0x1800ce7c8]
call fcn.18007051c
mov rax, qword [0x1800ceb38]
mov rsi, qword [rsi + rax]
test rsi, rsi
je 0x18005f6f8
mov eax, dword [rbx + r15]
cmp dword [0x1800cead0], eax
jle 0x18005f6df
lea rcx, [0x1800cead0]
call fcn.180070588
cmp dword [0x1800cead0], 0xffffffff
jne 0x18005f6df
mov ecx, 0xf3daab4b
call fcn.18004a6b0
mov r8, qword [rax]
mov qword [0x1800ceb08], r8
lea rcx, [0x1800cead0]
call fcn.18007051c
mov rdx, rsi
lea rcx, [rbp - 0x71]
call qword [0x1800ceb08]
movss xmm7, dword [rbp - 0x71]
movss xmm1, dword [rbp - 0x69]
jmp 0x18005f6fb
movaps xmm1, xmm7
movss xmm0, dword [rdi + 8]
subss xmm0, xmm1
movss xmm1, dword [rdi]
subss xmm1, xmm7
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x18005f729
xorps xmm6, xmm6
sqrtss xmm6, xmm1
jmp 0x18005f734
movaps xmm0, xmm1
call fcn.1800a0218
movaps xmm6, xmm0
mov eax, dword [rbx + r15]
cmp dword [0x1800ce608], eax
jle 0x18005f772
lea rcx, [0x1800ce608]
call fcn.180070588
cmp dword [0x1800ce608], 0xffffffff
jne 0x18005f772
mov ecx, 0x24cf107d
call fcn.180049150
mov qword [0x1800ceaa8], rax
lea rcx, [0x1800ce608]
call fcn.18007051c
mov rax, qword [0x1800ceaa8]
movss xmm7, dword [r14 + rax]
lea rcx, str.Water
call fcn.18004e4c0
test eax, eax
je 0x18005f797
movss xmm7, dword [0x1800b742c]
cvtss2sd xmm6, xmm6
movaps xmm1, xmm6
movaps xmm0, xmm9
call fcn.18009bae4
call fcn.18009c860
xorps xmm1, xmm1
cvtss2sd xmm1, xmm8
mulsd xmm0, xmm1
divsd xmm6, xmm0
mulss xmm7, dword [0x1800b73e0]
cvtps2pd xmm0, xmm7
mulsd xmm0, xmm6
mulsd xmm0, xmm6
mulsd xmm0, qword [0x1800b7470]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [rdi + 4]
movss dword [rdi + 4], xmm0
mov rax, rdi
jmp 0x18005f7ee
mov rax, qword [rbp + 0x67]
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x58]
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 r13
pop r12
pop rdi
pop rsi
pop rbp
ret