Function at 0x180057480
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 [0x1803a0850]
lea rdx, [0x1801b0f8d]
mov dword [rbp + 0x20], 0x43a00000
lea rsi, [0x1801aa650]
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 [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 0x180057546
cmp byte [rdx], r8b
jne 0x180057546
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 0x180057533
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x180057580
lea r8, [0x1801b0f8c]
mov edx, 0xb
mov ecx, ebx
call fcn.180080b30
lea r8, [rbp + 0x20]
mov edx, ebx
lea rcx, [0x1801b0f8c]
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 0x1800575d0
movss xmm1, dword [0x1801b6644]
lea rcx, [rbp + 0x20]
mov qword [rbp + 0x20], 0
call fcn.180079780
cmp byte [0x1803a029e], 0
lea rax, [0x1801b2fb8]
lea rcx, str.Automatic
cmovne rcx, rax
lea rdx, [0x1803a05be]
call fcn.180054300
cmp byte [0x1803a029e], 0
lea rax, [0x1801b2fd8]
lea rcx, str.Thick_bullet
cmovne rcx, rax
lea rdx, [0x1803a05cd]
call fcn.180054300
xor edi, edi
cmp byte [0x1803a05cd], dil
je 0x180057671
cmp byte [0x1803a029e], dil
lea rax, [0x1801b2ff0]
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, [0x1801f59fc]
mov dword [rbp + 0x28], 0x3dcccccd
lea edx, [rdi + 8]
call fcn.180055190
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3000]
lea rcx, str.Fake_Distance
cmovne rcx, rax
lea rdx, [0x1803a05c8]
call fcn.180054300
cmp byte [0x1803a05c8], dil
je 0x1800576db
mov dword [rsp + 0x30], edi
lea rax, [rbp + 0x20]
mov qword [rsp + 0x28], rdi
lea r9, [rbp + 0x28]
lea r8, [0x180275c38]
mov qword [rsp + 0x20], rax
mov edx, 8
mov dword [rbp + 0x20], 0x44a72000
lea rcx, str.FakeDist
mov dword [rbp + 0x28], 0x3f800000
call fcn.180055190
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3030]
lea rcx, str.Instant_Eoka
cmovne rcx, rax
lea rdx, [0x1803a05d2]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3058]
lea rcx, str.Auto_Reload
cmovne rcx, rax
lea rdx, [0x1803a05ea]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3090]
lea rcx, str.Insta_Charge_Compound
cmovne rcx, rax
lea rdx, [0x1803a05c9]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b30c0]
lea rcx, str.Weapon_Spam
cmovne rcx, rax
lea rdx, [0x1803a06c3]
call fcn.180054300
call fcn.180053070
lea r8, [rbp + 0x20]
mov dword [rbp + 0x20], 0x428c0000
lea rdx, [0x1803a0734]
mov dword [rbp + 0x24], 0x41900000
lea rcx, str.__Weapon_Spam
call fcn.180052700
cmp byte [0x1803a06c3], dil
je 0x1800577ec
cmp byte [0x1803a029e], 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, [0x1803a06a8]
mov dword [rbp + 0x28], edi
mov edx, 8
call fcn.180055190
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3108]
lea rcx, str.Follow_Projectile
cmovne rcx, rax
lea rdx, [0x1803a05d7]
call fcn.180054300
cmp byte [0x1803a05d7], dil
je 0x180057844
call fcn.180053070
lea r8, [rbp + 0x20]
mov dword [rbp + 0x20], 0x428c0000
lea rdx, [0x1803a0718]
mov dword [rbp + 0x24], 0x41900000
lea rcx, str.Projectile_Key
call fcn.180052700
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3158]
lea rcx, str.No_Attack_Animation
cmovne rcx, rax
lea rdx, [0x1803a05d1]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3188]
lea rcx, str.No_Recoil
cmovne rcx, rax
lea rdx, [0x1803a05c6]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b31a0]
lea rcx, str.No_Sway
cmovne rcx, rax
lea rdx, [0x1803a05bf]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b31c0]
lea rcx, str.No_Spread
cmovne rcx, rax
lea rdx, [0x1803a05cf]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b31d8]
lea rcx, str.No_Bob
cmovne rcx, rax
lea rdx, [0x1803a0657]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b31f8]
lea rcx, str.Can_Hold_Items
cmovne rcx, rax
lea rdx, [0x1803a05cc]
call fcn.180054300
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3218]
lea rcx, str.Jump_Shoot
cmovne rcx, rax
lea rdx, [0x1803a06ee]
call fcn.180054300
cmp byte [0x1803a05c6], dil
je 0x18005799a
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3240]
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, [0x180235e34]
mov dword [rbp + 0x28], edi
mov edx, 8
call fcn.180055190
call fcn.1800734c0
mov r10, qword [0x1803a0850]
lea r8, [0x1801b3251]
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 [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 + rax]
cmp dl, 0x23
jne 0x180057a52
cmp byte [r8], dl
jne 0x180057a52
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 0x180057a40
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x180057a8a
lea r8, str.Bullet_Scale
mov edx, 0xb
mov ecx, ebx
call fcn.180080b30
lea r8, [rbp + 0x20]
mov edx, ebx
lea rcx, str.Bullet_Scale
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], dil
jne 0x180057ad6
movss xmm1, dword [0x1801b6644]
lea rcx, [rbp + 0x20]
mov qword [rbp + 0x20], rdi
call fcn.180079780
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3260]
lea rcx, str.Bullet_Size
cmovne rcx, rax
lea rdx, [0x1803a05c7]
call fcn.180054300
cmp byte [0x1803a05c7], dil
je 0x180057bf2
cmp byte [0x1803a029e], dil
lea rax, [0x1801b3278]
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, [0x180235e3c]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.180055190
cmp byte [0x1803a029e], 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, [0x1801f59f8]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.180055190
cmp byte [0x1803a029e], dil
lea rax, [0x1801b32b0]
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, [0x180275c34]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.180055190
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
jmp fcn.1800734c0