Function at 0x1800610a0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x40
mov r10, qword [0x1803ad9e0]
lea rdx, [0x1801bbf25]
mov dword [rbp + 0x20], 0x43a00000
lea rsi, [0x1801b5620]
mov dword [rbp + 0x24], 0x43ee8000
mov r8b, 0x57
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 [0x1801c1960]
addss xmm0, dword [0x1801c18b0]
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 0x180061166
cmp byte [rdx], r8b
jne 0x180061166
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 0x180061153
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x1800611a0
lea r8, [0x1801bbf24]
mov edx, 0xb
mov ecx, ebx
call fcn.18008af30
lea r8, [rbp + 0x20]
mov edx, ebx
lea rcx, [0x1801bbf24]
call fcn.18005edc0
mov rcx, qword [0x1803ad9e0]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
cmp byte [rax + 0x9b], 0
jne 0x1800611f0
movss xmm1, dword [0x1801c1a8c]
lea rcx, [rbp + 0x20]
mov qword [rbp + 0x20], 0
call fcn.180083b80
cmp byte [0x1803ad3fb], 0
lea rax, [0x1801bdfc0]
lea rcx, str.Automatic
cmovne rcx, rax
lea rdx, [0x1803ad773]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], 0
lea rax, [0x1801bdfe0]
lea rcx, str.Thick_bullet
cmovne rcx, rax
lea rdx, [0x1803ad782]
call fcn.18005cfd0
xor edi, edi
cmp byte [0x1803ad782], dil
je 0x180061291
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be008]
mov dword [rsp + 0x30], edi
lea rcx, str.Thickness
cmovne rcx, rax
mov qword [rsp + 0x28], rdi
lea rax, [rbp + 0x20]
mov dword [rbp + 0x20], 0x40066666
lea r9, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r8, [0x180228374]
mov dword [rbp + 0x28], 0x3dcccccd
lea edx, [rdi + 8]
call fcn.18005df70
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be018]
lea rcx, str.Fake_Distance
cmovne rcx, rax
lea rdx, [0x1803ad77d]
call fcn.18005cfd0
cmp byte [0x1803ad77d], dil
je 0x1800612fb
mov dword [rsp + 0x30], edi
lea rax, [rbp + 0x20]
mov qword [rsp + 0x28], rdi
lea r9, [rbp + 0x28]
lea r8, [0x180268af8]
mov qword [rsp + 0x20], rax
mov edx, 8
mov dword [rbp + 0x20], 0x44a72000
lea rcx, str.FakeDist
mov dword [rbp + 0x28], 0x3f800000
call fcn.18005df70
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be048]
lea rcx, str.Instant_Eoka
cmovne rcx, rax
lea rdx, [0x1803ad787]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be070]
lea rcx, str.Auto_Reload
cmovne rcx, rax
lea rdx, [0x1803ad7a0]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be0a8]
lea rcx, str.Insta_Charge_Compound
cmovne rcx, rax
lea rdx, [0x1803ad77e]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be0d8]
lea rcx, str.Weapon_Spam
cmovne rcx, rax
lea rdx, [0x1803ad87b]
call fcn.18005cfd0
call fcn.18005bd40
lea r8, [rbp + 0x20]
mov dword [rbp + 0x20], 0x428c0000
lea rdx, [0x1803ad8ec]
mov dword [rbp + 0x24], 0x41900000
lea rcx, str.__Weapon_Spam
call fcn.18005f760
cmp byte [0x1803ad87b], dil
je 0x18006140c
cmp byte [0x1803ad3fb], dil
lea rax, str.weapon_spam
mov dword [rsp + 0x30], edi
lea rcx, str.wep_spam
cmovne rcx, rax
mov qword [rsp + 0x28], rdi
lea rax, [rbp + 0x20]
mov dword [rbp + 0x20], 0x41a00000
lea r9, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r8, [0x1803ad85c]
mov dword [rbp + 0x28], edi
mov edx, 8
call fcn.18005df70
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be120]
lea rcx, str.Follow_Projectile
cmovne rcx, rax
lea rdx, [0x1803ad790]
call fcn.18005cfd0
cmp byte [0x1803ad790], dil
je 0x180061464
call fcn.18005bd40
lea r8, [rbp + 0x20]
mov dword [rbp + 0x20], 0x428c0000
lea rdx, [0x1803ad8d8]
mov dword [rbp + 0x24], 0x41900000
lea rcx, str.Projectile_Key
call fcn.18005f760
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be158]
lea rcx, str.No_Attack_Animation
cmovne rcx, rax
lea rdx, [0x1803ad786]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be188]
lea rcx, str.No_Recoil
cmovne rcx, rax
lea rdx, [0x1803ad77b]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be1b0]
lea rcx, str.No_Sway
cmovne rcx, rax
lea rdx, [0x1803ad778]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be1d8]
lea rcx, str.No_Spread
cmovne rcx, rax
lea rdx, [0x1803ad784]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be200]
lea rcx, str.No_Bob
cmovne rcx, rax
lea rdx, [0x1803ad80c]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be220]
lea rcx, str.Can_Hold_Items
cmovne rcx, rax
lea rdx, [0x1803ad781]
call fcn.18005cfd0
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be240]
lea rcx, str.Jump_Shoot
cmovne rcx, rax
lea rdx, [0x1803ad8a9]
call fcn.18005cfd0
cmp byte [0x1803ad77b], dil
je 0x1800615ba
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be268]
mov dword [rsp + 0x30], edi
lea rcx, str.Recoil
cmovne rcx, rax
mov qword [rsp + 0x28], rdi
lea rax, [rbp + 0x20]
mov dword [rbp + 0x20], 0x42c80000
lea r9, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r8, [0x180267cf4]
mov dword [rbp + 0x28], edi
mov edx, 8
call fcn.18005df70
call fcn.18007d8c0
mov r10, qword [0x1803ad9e0]
lea r8, [0x1801be279]
mov dword [rbp + 0x20], 0x43a00000
mov dl, 0x42
mov dword [rbp + 0x24], 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 [0x1801c19f8]
addss xmm0, dword [0x1801c18b0]
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 + rax]
cmp dl, 0x23
jne 0x180061672
cmp byte [r8], dl
jne 0x180061672
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 0x180061660
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x1800616aa
lea r8, str.Bullet_Scale
mov edx, 0xb
mov ecx, ebx
call fcn.18008af30
lea r8, [rbp + 0x20]
mov edx, ebx
lea rcx, str.Bullet_Scale
call fcn.18005edc0
mov rcx, qword [0x1803ad9e0]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
cmp byte [rax + 0x9b], dil
jne 0x1800616f6
movss xmm1, dword [0x1801c1a8c]
lea rcx, [rbp + 0x20]
mov qword [rbp + 0x20], rdi
call fcn.180083b80
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be288]
lea rcx, str.Bullet_Size
cmovne rcx, rax
lea rdx, [0x1803ad77c]
call fcn.18005cfd0
cmp byte [0x1803ad77c], dil
je 0x180061812
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be2b0]
mov dword [rsp + 0x30], edi
lea rcx, str.Bullet_Size_X
cmovne rcx, rax
mov qword [rsp + 0x28], rdi
lea rax, [rbp + 0x20]
mov dword [rbp + 0x20], 0x42480000
lea r9, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r8, [0x180267dd4]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.18005df70
cmp byte [0x1803ad3fb], dil
lea rax, str.__Y
mov dword [rsp + 0x30], edi
lea rcx, str.Bullet_Size_Y
cmovne rcx, rax
mov qword [rsp + 0x28], rdi
lea rax, [rbp + 0x20]
mov dword [rbp + 0x20], 0x42480000
lea r9, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r8, [0x18021d178]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.18005df70
cmp byte [0x1803ad3fb], dil
lea rax, [0x1801be308]
mov dword [rsp + 0x30], edi
lea rcx, str.Bullet_Size_Z
cmovne rcx, rax
mov qword [rsp + 0x28], rdi
lea rax, [rbp + 0x20]
mov dword [rbp + 0x20], 0x42480000
lea r9, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r8, [0x180268af4]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.18005df70
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
jmp fcn.18007d8c0