Function at 0x18006be60
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 0x18006c2cf
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 0x18006bebf
mov rcx, qword [rbx + 0x68]
mov rdi, rcx
test rcx, rcx
jne 0x18006beba
mov rax, qword [rbx + 0x58]
mov rcx, qword [rax + 0x50]
mov rcx, qword [rcx]
mov rdi, rcx
mov qword [rsp + 0x40], rcx
call fcn.180082c50
lea rdx, [rsp + 0x40]
lea rcx, [rbx + 0x4038]
call fcn.18008aea0
mov rdx, qword [rdi + 0x40]
mov rcx, qword [rbx + 0x3ea0]
mov rdx, qword [rdx + 8]
mov rcx, qword [rcx + 0x288]
call fcn.18008cca0
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 0x18006bfa7
cmp byte [rdx], r8b
jne 0x18006bfa7
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 0x18006bf94
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006bfe1
lea r8, str.Players
mov edx, 0xb
mov ecx, ebx
call fcn.18008a8b0
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, str.Players
call fcn.18007ccc0
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.18007d5d0
cmp byte [0x18017d225], 0
je 0x18006c06f
lea r9, str.None
mov dword [rsp + 0x20], 4
lea rdx, [0x18017d200]
lea rcx, [0x180137dcc]
call fcn.180069c10
lea rdx, [0x18017d21b]
lea rcx, [0x180137dd0]
call fcn.18007d5d0
lea rdx, [0x18017d224]
lea rcx, [0x180137dd8]
call fcn.18007d5d0
lea rdx, [0x18017d1cd]
lea rcx, str.Skeleton
call fcn.18007d5d0
lea rdx, [0x18017d157]
lea rcx, str.HealthBar
call fcn.18007d5d0
lea rdx, [0x18017d1dc]
lea rcx, [0x18013755c]
call fcn.18007d5d0
lea rdx, [0x18017d1de]
lea rcx, str.Oof_Arrows
call fcn.18007d5d0
lea rdx, [0x18017d218]
lea rcx, str.Ignore_Sleepers
call fcn.18007d5d0
call fcn.18007dca0
mov r10, qword [0x18017d400]
lea rdx, [0x180137e29]
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 0x18006c1ab
cmp byte [rdx], r8b
jne 0x18006c1ab
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 0x18006c198
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006c1e5
lea r8, [0x180137e28]
mov edx, 0xb
mov ecx, ebx
call fcn.18008a8b0
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, [0x180137e28]
call fcn.18007ccc0
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.18007d5d0
cmp byte [0x18017d2cb], 0
je 0x18006c273
lea r9, str.None
mov dword [rsp + 0x20], 3
lea rdx, [0x18017d2b8]
lea rcx, [0x180137e34]
call fcn.180069c10
lea rdx, [0x18017d2ca]
lea rcx, str.Name
call fcn.18007d5d0
lea rdx, [0x18017d2d0]
lea rcx, str.Distance
call fcn.18007d5d0
lea rdx, [0x18017d2b7]
lea rcx, str.Skeleton
call fcn.18007d5d0
lea rdx, [0x18017d2be]
lea rcx, str.Weapon
call fcn.18007d5d0
call fcn.18007dca0
call fcn.180082cf0
mov eax, dword [0x18017d1a0]
cmp eax, 3
jne 0x18006c44e
mov r10, qword [0x18017d400]
lea r8, [0x180137e61]
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 0x18006c388
cmp byte [r8], dl
jne 0x18006c388
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 0x18006c376
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18006c3c0
lea r8, str.World_General
mov edx, 0xb
mov ecx, ebx
call fcn.18008a8b0
lea r8, [rsp + 0x40]
mov edx, ebx
lea rcx, str.World_General
call fcn.18007ccc0
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.18007d5d0
lea rdx, [0x18017d31d]
lea rcx, str.Sulfur
call fcn.18007d5d0
lea rdx, [0x18017d31f]
lea rcx, str.Metal
call fcn.18007d5d0
call fcn.18007dca0
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rsi
ret