Function at 0x18006be50
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x30
mov eax, dword [0x18017d1a0]
lea rsi, [0x180131cf0]
cmp eax, 2
jne 0x18006c2bf
mov rcx, qword [0x18017d3d0]
mov rbx, qword [0x18017d400]
mov qword [rsp + 0x48], rdi
mov rdi, rcx
mov qword [rsp + 0x40], rcx
test rcx, rcx
jne 0x18006beaf
mov rcx, qword [rbx + 0x68]
mov rdi, rcx
test rcx, rcx
jne 0x18006beaa
mov rax, qword [rbx + 0x58]
mov rcx, qword [rax + 0x50]
mov rcx, qword [rcx]
mov rdi, rcx
mov qword [rsp + 0x40], rcx
call fcn.180082c40
lea rdx, [rsp + 0x40]
lea rcx, [rbx + 0x4038]
call fcn.18008ae90
mov rdx, qword [rdi + 0x40]
mov rcx, qword [rbx + 0x3ea0]
mov rdx, qword [rdx + 8]
mov rcx, qword [rcx + 0x288]
call fcn.18008cc90
mov r10, qword [0x18017d400]
lea rdx, [0x1801376a9]
mov rdi, qword [rsp + 0x48]
mov r8b, 0x50
mov dword [rsp + 0x40], 0x43820000
mov dword [rsp + 0x44], 0x43bf0000
mov rax, qword [r10 + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [r10 + 0x3ea0]
movss xmm1, dword [rax + 0x18]
movss xmm0, dword [rax + 0x1c]
subss xmm1, dword [rax + 0x64]
subss xmm0, dword [rax + 0x68]
mov byte [rax + 0x121], 1
addss xmm1, dword [0x180139b84]
addss xmm0, dword [0x180139b24]
movss dword [rax + 0xe0], xmm1
movss dword [rax + 0xe4], xmm0
mov rax, qword [r10 + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [r10 + 0x3ea0]
movsxd rcx, dword [rax + 0xd0]
mov rax, qword [rax + 0xd8]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov ebx, r9d
cmp r8b, 0x23
jne 0x18006bf97
cmp byte [rdx], r8b
jne 0x18006bf97
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr ebx, 8
inc rdx
xor ebx, dword [rsi + rcx*4]
test r8b, r8b
jne 0x18006bf84
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006bfd1
lea r8, str.Players
mov edx, 0xb
mov ecx, ebx
call fcn.18008a8a0
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, str.Players
call fcn.18007ccb0
mov rcx, qword [0x18017d400]
lea rdx, [0x18017d225]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
lea rcx, [0x180137574]
movss xmm0, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x68]
mov byte [rax + 0x121], 1
addss xmm0, dword [0x180139ab0]
movss dword [rax + 0xe4], xmm0
call fcn.18007d5c0
cmp byte [0x18017d225], 0
je 0x18006c05f
lea r9, str.None
mov dword [rsp + 0x20], 4
lea rdx, [0x18017d200]
lea rcx, [0x180137db4]
call fcn.180069c10
lea rdx, [0x18017d21b]
lea rcx, [0x180137db8]
call fcn.18007d5c0
lea rdx, [0x18017d224]
lea rcx, [0x180137dc0]
call fcn.18007d5c0
lea rdx, [0x18017d1cd]
lea rcx, str.Skeleton
call fcn.18007d5c0
lea rdx, [0x18017d157]
lea rcx, str.HealthBar
call fcn.18007d5c0
lea rdx, [0x18017d1dc]
lea rcx, [0x18013755c]
call fcn.18007d5c0
lea rdx, [0x18017d1de]
lea rcx, str.Oof_Arrows
call fcn.18007d5c0
lea rdx, [0x18017d218]
lea rcx, str.Ignore_Sleepers
call fcn.18007d5c0
call fcn.18007dc90
mov r10, qword [0x18017d400]
lea rdx, [0x180137e11]
mov dword [rsp + 0x40], 0x43820000
mov r8b, 0x4e
mov dword [rsp + 0x44], 0x43bf0000
mov rax, qword [r10 + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [r10 + 0x3ea0]
movss xmm1, dword [rax + 0x18]
movss xmm0, dword [rax + 0x1c]
subss xmm1, dword [rax + 0x64]
subss xmm0, dword [rax + 0x68]
mov byte [rax + 0x121], 1
addss xmm1, dword [0x180139be0]
addss xmm0, dword [0x180139b24]
movss dword [rax + 0xe0], xmm1
movss dword [rax + 0xe4], xmm0
mov rax, qword [r10 + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [r10 + 0x3ea0]
movsxd rcx, dword [rax + 0xd0]
mov rax, qword [rax + 0xd8]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov ebx, r9d
cmp r8b, 0x23
jne 0x18006c19b
cmp byte [rdx], r8b
jne 0x18006c19b
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr ebx, 8
inc rdx
xor ebx, dword [rsi + rcx*4]
test r8b, r8b
jne 0x18006c188
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006c1d5
lea r8, [0x180137e10]
mov edx, 0xb
mov ecx, ebx
call fcn.18008a8a0
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, [0x180137e10]
call fcn.18007ccb0
mov rcx, qword [0x18017d400]
lea rdx, [0x18017d2cb]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
lea rcx, str.Box
movss xmm0, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x68]
mov byte [rax + 0x121], 1
addss xmm0, dword [0x180139ab0]
movss dword [rax + 0xe4], xmm0
call fcn.18007d5c0
cmp byte [0x18017d2cb], 0
je 0x18006c263
lea r9, str.None
mov dword [rsp + 0x20], 3
lea rdx, [0x18017d2b8]
lea rcx, [0x180137e1c]
call fcn.180069c10
lea rdx, [0x18017d2ca]
lea rcx, str.Name
call fcn.18007d5c0
lea rdx, [0x18017d2d0]
lea rcx, str.Distance
call fcn.18007d5c0
lea rdx, [0x18017d2b7]
lea rcx, str.Skeleton
call fcn.18007d5c0
lea rdx, [0x18017d2be]
lea rcx, str.Weapon
call fcn.18007d5c0
call fcn.18007dc90
call fcn.180082ce0
mov eax, dword [0x18017d1a0]
cmp eax, 3
jne 0x18006c43e
mov r10, qword [0x18017d400]
lea r8, [0x180137e49]
mov dword [rsp + 0x40], 0x43820000
mov dl, 0x57
mov dword [rsp + 0x44], 0x43bf0000
mov rax, qword [r10 + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [r10 + 0x3ea0]
movss xmm1, dword [rax + 0x18]
movss xmm0, dword [rax + 0x1c]
subss xmm1, dword [rax + 0x64]
subss xmm0, dword [rax + 0x68]
mov byte [rax + 0x121], 1
addss xmm1, dword [0x180139b84]
addss xmm0, dword [0x180139b24]
movss dword [rax + 0xe0], xmm1
movss dword [rax + 0xe4], xmm0
mov rax, qword [r10 + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [r10 + 0x3ea0]
movsxd rcx, dword [rax + 0xd0]
mov rax, qword [rax + 0xd8]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov ebx, r9d
cmp dl, 0x23
jne 0x18006c378
cmp byte [r8], dl
jne 0x18006c378
cmp byte [r8 + 1], dl
cmove ebx, r9d
movzx ecx, bl
movzx eax, dl
movzx edx, byte [r8]
xor rcx, rax
shr ebx, 8
inc r8
xor ebx, dword [rsi + rcx*4]
test dl, dl
jne 0x18006c366
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006c3b0
lea r8, str.World_General
mov edx, 0xb
mov ecx, ebx
call fcn.18008a8a0
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, str.World_General
call fcn.18007ccb0
mov rcx, qword [0x18017d400]
lea rdx, [0x18017d35a]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
lea rcx, str.Stone
movss xmm0, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x68]
mov byte [rax + 0x121], 1
addss xmm0, dword [0x180139ab0]
movss dword [rax + 0xe4], xmm0
call fcn.18007d5c0
lea rdx, [0x18017d31d]
lea rcx, str.Sulfur
call fcn.18007d5c0
lea rdx, [0x18017d31f]
lea rcx, str.Metal
call fcn.18007d5c0
call fcn.18007dc90
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rsi
ret