Function at 0x18006c2f0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x30
mov eax, dword [0x1801aedc0]
lea rsi, [0x18014ac70]
cmp eax, 2
jne 0x18006c75f
mov rcx, qword [0x1801aeff0]
mov rbx, qword [0x1801af020]
mov qword [rsp + 0x48], rdi
mov rdi, rcx
mov qword [rsp + 0x40], rcx
test rcx, rcx
jne 0x18006c34f
mov rcx, qword [rbx + 0x68]
mov rdi, rcx
test rcx, rcx
jne 0x18006c34a
mov rax, qword [rbx + 0x58]
mov rcx, qword [rax + 0x50]
mov rcx, qword [rcx]
mov rdi, rcx
mov qword [rsp + 0x40], rcx
call fcn.180082fd0
lea rdx, [rsp + 0x40]
lea rcx, [rbx + 0x4038]
call fcn.18008b220
mov rdx, qword [rdi + 0x40]
mov rcx, qword [rbx + 0x3ea0]
mov rdx, qword [rdx + 8]
mov rcx, qword [rcx + 0x288]
call fcn.18008d020
mov r10, qword [0x1801af020]
lea rdx, [0x180150629]
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 [0x180152a7c]
addss xmm0, dword [0x180152a1c]
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 0x18006c437
cmp byte [rdx], r8b
jne 0x18006c437
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 0x18006c424
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006c471
lea r8, str.Players
mov edx, 0xb
mov ecx, ebx
call fcn.18008ac30
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, str.Players
call fcn.18007d040
mov rcx, qword [0x1801af020]
lea rdx, [0x1801aee45]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
lea rcx, [0x1801504f4]
movss xmm0, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x68]
mov byte [rax + 0x121], 1
addss xmm0, dword [0x1801529a8]
movss dword [rax + 0xe4], xmm0
call fcn.18007d950
cmp byte [0x1801aee45], 0
je 0x18006c4ff
lea r9, str.None
mov dword [rsp + 0x20], 4
lea rdx, [0x1801aee20]
lea rcx, [0x180150d24]
call fcn.18006a0c0
lea rdx, [0x1801aee3b]
lea rcx, [0x180150d28]
call fcn.18007d950
lea rdx, [0x1801aee44]
lea rcx, [0x180150d30]
call fcn.18007d950
lea rdx, [0x1801aeded]
lea rcx, str.Skeleton
call fcn.18007d950
lea rdx, [0x1801aed77]
lea rcx, str.HealthBar
call fcn.18007d950
lea rdx, [0x1801aedfc]
lea rcx, [0x1801504dc]
call fcn.18007d950
lea rdx, [0x1801aedfe]
lea rcx, str.Oof_Arrows
call fcn.18007d950
lea rdx, [0x1801aee38]
lea rcx, str.Ignore_Sleepers
call fcn.18007d950
call fcn.18007e020
mov r10, qword [0x1801af020]
lea rdx, [0x180150d81]
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 [0x180152ad8]
addss xmm0, dword [0x180152a1c]
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 0x18006c63b
cmp byte [rdx], r8b
jne 0x18006c63b
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 0x18006c628
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006c675
lea r8, [0x180150d80]
mov edx, 0xb
mov ecx, ebx
call fcn.18008ac30
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, [0x180150d80]
call fcn.18007d040
mov rcx, qword [0x1801af020]
lea rdx, [0x1801aeeeb]
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 [0x1801529a8]
movss dword [rax + 0xe4], xmm0
call fcn.18007d950
cmp byte [0x1801aeeeb], 0
je 0x18006c703
lea r9, str.None
mov dword [rsp + 0x20], 3
lea rdx, [0x1801aeed8]
lea rcx, [0x180150d8c]
call fcn.18006a0c0
lea rdx, [0x1801aeeea]
lea rcx, str.Name
call fcn.18007d950
lea rdx, [0x1801aeef0]
lea rcx, str.Distance
call fcn.18007d950
lea rdx, [0x1801aeed7]
lea rcx, str.Skeleton
call fcn.18007d950
lea rdx, [0x1801aeede]
lea rcx, str.Weapon
call fcn.18007d950
call fcn.18007e020
call fcn.180083070
mov eax, dword [0x1801aedc0]
cmp eax, 3
jne 0x18006c8de
mov r10, qword [0x1801af020]
lea r8, [0x180150db9]
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 [0x180152a7c]
addss xmm0, dword [0x180152a1c]
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 0x18006c818
cmp byte [r8], dl
jne 0x18006c818
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 0x18006c806
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006c850
lea r8, str.World_General
mov edx, 0xb
mov ecx, ebx
call fcn.18008ac30
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, str.World_General
call fcn.18007d040
mov rcx, qword [0x1801af020]
lea rdx, [0x1801aef7a]
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 [0x1801529a8]
movss dword [rax + 0xe4], xmm0
call fcn.18007d950
lea rdx, [0x1801aef3d]
lea rcx, str.Sulfur
call fcn.18007d950
lea rdx, [0x1801aef3f]
lea rcx, str.Metal
call fcn.18007d950
call fcn.18007e020
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rsi
ret