Function at 0x180059370
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
mov r10, qword [0x1803a0850]
lea rdx, [0x1801b3929]
mov dword [rsp + 0x50], 0x43a00000
lea rdi, [0x1801aa650]
mov dword [rsp + 0x54], 0x431d0000
mov r8b, 0x4f
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 [0x1801b6524]
addss xmm0, dword [0x1801b6484]
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 0x180059438
cmp byte [rdx], r8b
jne 0x180059438
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 [rdi + rcx*4]
test r8b, r8b
jne 0x180059425
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x180059472
lea r8, str.Ores
mov edx, 0xb
mov ecx, ebx
call fcn.180080b30
lea r8, [rsp + 0x50]
mov edx, ebx
lea rcx, str.Ores
call fcn.180055fe0
mov rcx, qword [0x1803a0850]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
cmp byte [rax + 0x9b], 0
jne 0x1800594c5
movss xmm1, dword [0x1801b6644]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x50], 0
call fcn.180079780
cmp byte [0x1803a029e], 0
lea rax, [0x1801b3930]
lea rcx, str.Ore_Path
cmovne rcx, rax
lea rdx, [0x1803a070f]
call fcn.180054300
cmp byte [0x1803a029e], 0
lea rax, [0x1801b3948]
lea rcx, str.Stone
cmovne rcx, rax
lea rdx, [0x1803a0763]
call fcn.180054300
cmp byte [0x1803a029e], 0
lea rax, [0x1801b3958]
lea rcx, str.Sulfur
cmovne rcx, rax
lea rdx, [0x1803a070e]
call fcn.180054300
cmp byte [0x1803a029e], 0
lea rax, [0x1801b3968]
lea rcx, str.Metal
cmovne rcx, rax
lea rdx, [0x1803a0760]
call fcn.180054300
xor esi, esi
cmp byte [0x1803a070e], sil
jne 0x18005957a
cmp byte [0x1803a0763], sil
jne 0x18005957a
cmp byte [0x1803a0760], sil
je 0x180059616
cmp byte [0x1803a029e], sil
lea rax, [0x1801b3978]
mov dword [rsp + 0x30], esi
lea rcx, str.Ores_Dist
cmovne rcx, rax
mov qword [rsp + 0x28], rsi
lea rax, [rsp + 0x50]
mov dword [rsp + 0x50], 0x43c80000
lea r9, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r8, [0x180275f3c]
mov dword [rsp + 0x58], 0x40a00000
mov edx, 8
call fcn.180055190
cmp byte [0x1803a029e], sil
lea rax, [0x1801b39a8]
lea rcx, str.Show_Collectables
cmovne rcx, rax
lea rdx, [0x1803a0761]
call fcn.180054300
cmp byte [0x1803a029e], sil
lea rax, [0x1801b39d0]
lea rcx, str.Show_Ore_Distance
cmovne rcx, rax
lea rdx, [0x1803a0762]
call fcn.180054300
call fcn.1800734c0
mov r10, qword [0x1803a0850]
lea r8, [0x1801b3a15]
mov dword [rsp + 0x50], 0x43a00000
mov dl, 0x57
mov dword [rsp + 0x54], 0x431d0000
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 [0x1801b65b0]
addss xmm0, dword [0x1801b6484]
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
nop dword [rax]
cmp dl, 0x23
jne 0x1800596d2
cmp byte [r8], dl
jne 0x1800596d2
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 [rdi + rcx*4]
test dl, dl
jne 0x1800596c0
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18005970a
lea r8, str.World
mov edx, 0xb
mov ecx, ebx
call fcn.180080b30
lea r8, [rsp + 0x50]
mov edx, ebx
lea rcx, str.World
call fcn.180055fe0
mov rcx, qword [0x1803a0850]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
cmp byte [rax + 0x9b], sil
jne 0x180059759
movss xmm1, dword [0x1801b6644]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x50], rsi
call fcn.180079780
cmp byte [0x1803a029e], sil
lea rax, [0x1801b3a20]
lea rcx, str.Stashes
cmovne rcx, rax
lea rdx, [0x1803a0676]
call fcn.180054300
cmp byte [0x1803a029e], sil
lea rax, [0x1801b3a30]
lea rcx, str.Hemp
cmovne rcx, rax
lea rdx, [0x1803a0674]
call fcn.180054300
cmp byte [0x1803a029e], sil
lea rax, [0x1801b3a40]
lea rcx, str.Berries
cmovne rcx, rax
lea rdx, [0x1803a0678]
call fcn.180054300
cmp byte [0x1803a0676], sil
jne 0x1800597e3
cmp byte [0x1803a0674], sil
jne 0x1800597e3
cmp byte [0x1803a0678], sil
je 0x18005985a
cmp byte [0x1803a029e], sil
lea rax, [0x1801b3a50]
mov dword [rsp + 0x30], esi
lea rcx, str.Important_Dist
cmovne rcx, rax
mov qword [rsp + 0x28], rsi
lea rax, [rsp + 0x50]
mov dword [rsp + 0x50], 0x43c80000
lea r9, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r8, [0x180275d1c]
mov dword [rsp + 0x58], 0x40a00000
mov edx, 8
call fcn.180055190
cmp byte [0x1803a029e], sil
lea rax, [0x1801b3a70]
lea rcx, str.Show_Other_Distance
cmovne rcx, rax
lea rdx, [0x1803a0677]
call fcn.180054300
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
jmp fcn.1800734c0