Function at 0x180059ad0
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 [0x1803a3798]
lea rdx, [0x1801b3f55]
mov dword [rbp + 0x20], 0x43a00000
lea rsi, [0x1801ad630]
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 [0x1801b9590]
addss xmm0, dword [0x1801b94ec]
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 0x180059b96
cmp byte [rdx], r8b
jne 0x180059b96
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 0x180059b83
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x180059bd0
lea r8, [0x1801b3f54]
mov edx, 0xb
mov ecx, ebx
call fcn.180080a70
lea r8, [rbp + 0x20]
mov edx, ebx
lea rcx, [0x1801b3f54]
call fcn.1800585c0
mov rcx, qword [0x1803a3798]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
cmp byte [rax + 0x9b], 0
jne 0x180059c20
movss xmm1, dword [0x1801b96b8]
lea rcx, [rbp + 0x20]
mov qword [rbp + 0x20], 0
call fcn.1800796c0
cmp byte [0x1803a31ee], 0
lea rax, [0x1801b5fd0]
lea rcx, str.Automatic
cmovne rcx, rax
lea rdx, [0x1803a34ce]
call fcn.1800568e0
cmp byte [0x1803a31ee], 0
lea rax, [0x1801b5ff0]
lea rcx, str.Thick_bullet
cmovne rcx, rax
lea rdx, [0x1803a351c]
call fcn.1800568e0
xor edi, edi
cmp byte [0x1803a351c], dil
je 0x180059cc1
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6008]
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, [0x1801f89fc]
mov dword [rbp + 0x28], 0x3dcccccd
lea edx, [rdi + 8]
call fcn.180057770
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6018]
lea rcx, str.Fake_Distance
cmovne rcx, rax
lea rdx, [0x1803a3516]
call fcn.1800568e0
cmp byte [0x1803a3516], dil
je 0x180059d2b
mov dword [rsp + 0x30], edi
lea rax, [rbp + 0x20]
mov qword [rsp + 0x28], rdi
lea r9, [rbp + 0x28]
lea r8, [0x180278c38]
mov qword [rsp + 0x20], rax
mov edx, 8
mov dword [rbp + 0x20], 0x44a72000
lea rcx, str.FakeDist
mov dword [rbp + 0x28], 0x3f800000
call fcn.180057770
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6048]
lea rcx, str.Instant_Eoka
cmovne rcx, rax
lea rdx, [0x1803a3521]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6070]
lea rcx, str.Auto_Reload
cmovne rcx, rax
lea rdx, [0x1803a3532]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b60a8]
lea rcx, str.No_Attack_Animation
cmovne rcx, rax
lea rdx, [0x1803a3520]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b60d8]
lea rcx, str.Insta_Charge_Compound
cmovne rcx, rax
lea rdx, [0x1803a3517]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6108]
lea rcx, str.Weapon_Spam
cmovne rcx, rax
lea rdx, [0x1803a360d]
call fcn.1800568e0
call fcn.180055650
lea r8, [rbp + 0x20]
mov dword [rbp + 0x20], 0x428c0000
lea rdx, [0x1803a3678]
mov dword [rbp + 0x24], 0x41900000
lea rcx, str.__Weapon_Spam
call fcn.180054ce0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6130]
lea rcx, str.Follow_Projectile
cmovne rcx, rax
lea rdx, [0x1803a3526]
call fcn.1800568e0
cmp byte [0x1803a3526], dil
je 0x180059e66
call fcn.180055650
lea r8, [rbp + 0x20]
mov dword [rbp + 0x20], 0x428c0000
lea rdx, [0x1803a3660]
mov dword [rbp + 0x24], 0x41900000
lea rcx, str.Projectile_Key
call fcn.180054ce0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6180]
lea rcx, str.No_Recoil
cmovne rcx, rax
lea rdx, [0x1803a3514]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6198]
lea rcx, str.No_Sway
cmovne rcx, rax
lea rdx, [0x1803a34cd]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b61b8]
lea rcx, str.No_Spread
cmovne rcx, rax
lea rdx, [0x1803a351e]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b61d0]
lea rcx, str.No_Bob
cmovne rcx, rax
lea rdx, [0x1803a35a9]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b61f0]
lea rcx, str.Can_Hold_Items
cmovne rcx, rax
lea rdx, [0x1803a3519]
call fcn.1800568e0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6210]
lea rcx, str.Jump_Shoot
cmovne rcx, rax
lea rdx, [0x1803a3635]
call fcn.1800568e0
cmp byte [0x1803a3514], dil
je 0x180059f97
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6238]
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, [0x180238e3c]
mov dword [rbp + 0x28], edi
mov edx, 8
call fcn.180057770
call fcn.180073430
mov r10, qword [0x1803a3798]
lea r8, [0x1801b6249]
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 [0x1801b9618]
addss xmm0, dword [0x1801b94ec]
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 0x18005a04a
cmp byte [r8], dl
jne 0x18005a04a
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 0x18005a038
not ebx
cmp dword [r10 + 0x3ed4], ebx
jne 0x18005a082
lea r8, str.Bullet_Scale
mov edx, 0xb
mov ecx, ebx
call fcn.180080a70
lea r8, [rbp + 0x20]
mov edx, ebx
lea rcx, str.Bullet_Scale
call fcn.1800585c0
mov rcx, qword [0x1803a3798]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
cmp byte [rax + 0x9b], dil
jne 0x18005a0ce
movss xmm1, dword [0x1801b96b8]
lea rcx, [rbp + 0x20]
mov qword [rbp + 0x20], rdi
call fcn.1800796c0
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6258]
lea rcx, str.Bullet_Size
cmovne rcx, rax
lea rdx, [0x1803a3518]
call fcn.1800568e0
cmp byte [0x1803a3518], dil
je 0x18005a1ea
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b6270]
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, [0x180278c14]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.180057770
cmp byte [0x1803a31ee], 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, [0x18023828c]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.180057770
cmp byte [0x1803a31ee], dil
lea rax, [0x1801b62a8]
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, [0x180278c3c]
mov dword [rbp + 0x28], 0x3f800000
mov edx, 8
call fcn.180057770
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
jmp fcn.180073430