Function at 0x18000a380
Capabilities:
Hash data with crc32

Disassembly:
mov rax, rsp
sub rsp, 0xa8
mov qword [rax + 0x10], rbx
lea rdx, [rsp + 0x30]
mov rbx, qword [0x1800670a0]
mov qword [rax + 0x18], rsi
mov qword [rax - 8], rdi
mov edi, 3
movaps xmmword [rax - 0x28], xmm7
movss xmm7, dword [0x18005c62c]
lea rcx, [rbx + 0x4800]
movaps xmmword [rax - 0x38], xmm8
mov rax, qword [rbx + 0x3eb8]
mov dword [rsp + 0x30], edi
movss xmm1, dword [rax + 0xfc]
subss xmm1, dword [rax + 0x1c]
addss xmm1, dword [rax + 0x80]
mov byte [rax + 0xb0], 1
mov rax, qword [rbx + 0x3eb8]
addss xmm1, xmm7
movss xmm0, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x80]
mov byte [rax + 0x139], 1
addss xmm0, xmm1
movss dword [rax + 0xfc], xmm0
movups xmm0, xmmword [rbx + 0x38ec]
movups xmmword [rsp + 0x34], xmm0
call fcn.180028af0
mov dword [rbx + 0x38ec], 0x3df5c28f
lea ecx, [rdi + 4]
mov dword [rbx + 0x38f0], 0x3df5c28f
mov dword [rbx + 0x38f4], 0x3df5c28f
mov dword [rbx + 0x38f8], 0x3f000000
movss xmm8, dword [0x18005c610]
movaps xmm1, xmm8
call fcn.180012b70
mov r10, qword [0x1800670a0]
lea r8, [0x1800537b1]
mov dword [rsp + 0xb0], 0x43d48000
mov dword [rsp + 0xb4], 0x43be8000
mov rax, qword [r10 + 0x3eb8]
mov byte [rax + 0xb0], 1
mov rax, qword [r10 + 0x3eb8]
movsxd rcx, dword [rax + 0xe8]
mov rax, qword [rax + 0xf0]
mov r9d, dword [rax + rcx*4 - 4]
movzx eax, word [0x1800537b0]
not r9d
mov ebx, r9d
test al, al
je 0x18000a4ef
lea r11, [0x1800559c0]
cmp al, 0x23
jne 0x18000a4d4
cmp byte [r8], al
jne 0x18000a4d4
cmp byte [r8 + 1], al
cmove ebx, r9d
movzx edx, bl
movzx ecx, al
movzx eax, byte [r8]
xor rdx, rcx
shr ebx, 8
inc r8
xor ebx, dword [r11 + rdx*4]
test al, al
jne 0x18000a4c3
not ebx
cmp dword [r10 + 0x3f00], ebx
jne 0x18000a50d
lea r8, [0x1800537b0]
mov edx, 0xb
mov ecx, ebx
call fcn.180028390
xor esi, esi
lea r8, [rsp + 0xb0]
xor r9d, r9d
mov dword [rsp + 0x20], esi
mov edx, ebx
lea rcx, [0x1800537b0]
call fcn.180018d60
test al, al
je 0x18000ab4f
mov rcx, qword [0x1800670a0]
lea r8, [0x180067180]
movaps xmmword [rsp + 0x90], xmm6
lea rdx, str.aim_assist
movaps xmmword [rsp + 0x60], xmm9
movaps xmmword [rsp + 0x50], xmm10
mov rax, qword [rcx + 0x3eb8]
movss xmm1, dword [rax + 0xfc]
subss xmm1, dword [rax + 0x1c]
addss xmm1, dword [rax + 0x80]
mov byte [rax + 0xb0], 1
mov rax, qword [rcx + 0x3eb8]
mov ecx, 0xc8bc8d0
addss xmm1, dword [0x18005c5c4]
movss xmm0, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x80]
mov byte [rax + 0x139], 1
addss xmm0, xmm1
movss dword [rax + 0xfc], xmm0
call fcn.18004cbd0
mov rcx, qword [0x1800670a0]
movss xmm6, dword [0x18005c5ec]
mov rax, qword [rcx + 0x3eb8]
movss xmm1, dword [rax + 0xfc]
subss xmm1, dword [rax + 0x1c]
addss xmm1, dword [rax + 0x80]
mov byte [rax + 0xb0], 1
mov rax, qword [rcx + 0x3eb8]
addss xmm1, xmm6
movss xmm0, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x80]
mov byte [rax + 0x139], 1
addss xmm0, xmm1
movss dword [rax + 0xfc], xmm0
mov rax, qword [rcx + 0x3eb8]
cmp byte [rax + 0xb3], sil
jne 0x18000a638
mov eax, dword [rax + 0x1ac]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.1800409a0
movss xmm0, dword [0x18005c668]
lea r8, [0x1800662e8]
movaps xmm3, xmm6
movss dword [rsp + 0x20], xmm0
lea rdx, [0x18005a9b4]
mov ecx, 0x5ff27871
call fcn.18004c900
movss xmm0, dword [0x18005c608]
lea r8, [0x180066320]
movss xmm10, dword [0x18005c55c]
lea rdx, str.lock_distance
movaps xmm3, xmm10
movss dword [rsp + 0x20], xmm0
mov ecx, 0x33d78f8f
call fcn.18004c900
movss xmm0, dword [0x18005c64c]
lea r8, [0x180066310]
movaps xmm3, xmm10
movss dword [rsp + 0x20], xmm0
lea rdx, str.smoothness
mov ecx, 0xc8926fe1
call fcn.18004c900
lea r8, [0x180066324]
mov ecx, 0x1598a5e
lea rdx, str.visbility_check
call fcn.18004cbd0
lea r8, [0x1800662ec]
mov ecx, 0xa206f562
lea rdx, str.left_button_to_aim
call fcn.18004cbd0
mov rcx, qword [0x1800670a0]
mov rax, qword [rcx + 0x3eb8]
movss xmm4, dword [rax + 0xfc]
movss xmm1, dword [rax + 0x1c]
movss xmm3, dword [rax + 0x80]
subss xmm4, xmm1
mov byte [rax + 0xb0], 1
mov rax, qword [rcx + 0x3eb8]
lea rcx, str.target_priority
addss xmm4, xmm3
movss xmm2, dword [rax + 0x18]
movss xmm0, dword [rax + 0x1c]
subss xmm2, dword [rax + 0x7c]
subss xmm0, dword [rax + 0x80]
addss xmm4, xmm6
mov byte [rax + 0x139], 1
addss xmm2, xmm7
addss xmm0, xmm4
movss dword [rax + 0xf8], xmm2
movss dword [rax + 0xfc], xmm0
call fcn.18003ee80
movss xmm1, dword [0x18005c6c4]
xorps xmm0, xmm0
xorps xmm9, xmm9
call fcn.180021020
mov rdx, qword [0x1800670a0]
movaps xmm1, xmm8
mov ecx, 0xc
mov rax, qword [rdx + 0x3eb8]
movss xmm4, dword [rax + 0xf8]
subss xmm4, dword [rax + 0x18]
addss xmm4, dword [rax + 0x7c]
mov byte [rax + 0xb0], 1
mov rax, qword [rdx + 0x3eb8]
addss xmm4, dword [0x18005c664]
movss xmm0, dword [rax + 0x18]
subss xmm0, dword [rax + 0x7c]
mov byte [rax + 0x139], 1
addss xmm0, xmm4
movss dword [rax + 0xf8], xmm0
call fcn.180012b70
mov rbx, qword [0x1800670a0]
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x15
movups xmm0, xmmword [rbx + 0x3a0c]
lea rcx, [rbx + 0x4800]
movups xmmword [rsp + 0x34], xmm0
call fcn.180028af0
mov dword [rbx + 0x3a0c], esi
mov dword [rbx + 0x3a10], 0x3f0ccccd
mov dword [rbx + 0x3a14], 0x3f0ccccd
mov dword [rbx + 0x3a18], 0x3f800000
lea rdx, [rsp + 0x30]
mov rbx, qword [0x1800670a0]
mov dword [rsp + 0x30], 0x16
movups xmm0, xmmword [rbx + 0x3a1c]
lea rcx, [rbx + 0x4800]
movups xmmword [rsp + 0x34], xmm0
call fcn.180028af0
mov dword [rbx + 0x3a1c], esi
lea rdx, [rsp + 0x30]
mov dword [rbx + 0x3a20], 0x3f266666
mov dword [rbx + 0x3a24], 0x3f266666
mov dword [rbx + 0x3a28], 0x3f800000
mov rbx, qword [0x1800670a0]
mov dword [rsp + 0x30], 0x17
movups xmm0, xmmword [rbx + 0x3a2c]
lea rcx, [rbx + 0x4800]
movups xmmword [rsp + 0x34], xmm0
call fcn.180028af0
mov dword [rbx + 0x3a2c], esi
mov dword [rbx + 0x3a30], 0x3f4ccccd
mov dword [rbx + 0x3a34], 0x3f4ccccd
mov dword [rbx + 0x3a38], 0x3f800000
call fcn.180041990
mov rbx, qword [0x1800670a0]
mov eax, dword [rbx + 0x4800]
cmp eax, edi
jge 0x18000a8f0
mov edi, eax
test eax, eax
jle 0x18000a924
nop
mov rcx, qword [rbx + 0x4808]
dec edi
cdqe
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [rbx + rax*8 + 0x38bc], xmm0
dec dword [rbx + 0x4800]
mov eax, dword [rbx + 0x4800]
test edi, edi
jg 0x18000a8f0
mov ecx, 1
call fcn.180012bf0
mov rax, qword [rbx + 0x3eb8]
cmp byte [rax + 0xb3], sil
jne 0x18000a950
mov eax, dword [rax + 0x1ac]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.1800409a0
lea r8, [0x180066314]
mov ecx, 0x28a15d97
lea rdx, str.adapt_to_strafing
call fcn.18004cbd0
movss xmm0, dword [0x18005c620]
lea r8, [0x18006631c]
movss xmm3, dword [0x18005c4fc]
lea rdx, str.adaptive_strafing_offset
mov ecx, 0x1b4233aa
movss dword [rsp + 0x20], xmm0
call fcn.18004c900
mov rcx, qword [0x1800670a0]
mov rax, qword [rcx + 0x3eb8]
movss xmm4, dword [rax + 0xfc]
movss xmm1, dword [rax + 0x1c]
movss xmm3, dword [rax + 0x80]
subss xmm4, xmm1
mov byte [rax + 0xb0], 1
mov rax, qword [rcx + 0x3eb8]
addss xmm4, xmm3
movss xmm2, dword [rax + 0x18]
movss xmm0, dword [rax + 0x1c]
subss xmm2, dword [rax + 0x7c]
subss xmm0, dword [rax + 0x80]
mov byte [rax + 0x139], 1
addss xmm4, xmm6
addss xmm2, xmm7
addss xmm0, xmm4
movss dword [rax + 0xf8], xmm2
movss dword [rax + 0xfc], xmm0
mov rax, qword [rcx + 0x3eb8]
cmp byte [rax + 0xb3], sil
jne 0x18000aa2b
mov eax, dword [rax + 0x1ac]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.1800409a0
movaps xmm3, xmm9
movss dword [rsp + 0x20], xmm8
lea r8, [0x1800662f0]
mov ecx, 0xce7da258
lea rdx, str.yaw_randomness
call fcn.18004c900
movaps xmm3, xmm9
movss dword [rsp + 0x20], xmm10
lea r8, [0x180066328]
mov ecx, 0x94b2c8db
lea rdx, str.pitch_randomness
call fcn.18004c900
mov rcx, qword [0x1800670a0]
movaps xmm10, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
mov rax, qword [rcx + 0x3eb8]
movss xmm4, dword [rax + 0xfc]
movss xmm1, dword [rax + 0x1c]
movss xmm3, dword [rax + 0x80]
subss xmm4, xmm1
mov byte [rax + 0xb0], 1
mov rax, qword [rcx + 0x3eb8]
addss xmm4, xmm3
movss xmm2, dword [rax + 0x18]
movss xmm0, dword [rax + 0x1c]
subss xmm2, dword [rax + 0x7c]
subss xmm0, dword [rax + 0x80]
addss xmm4, xmm6
mov byte [rax + 0x139], 1
movaps xmm6, xmmword [rsp + 0x90]
addss xmm2, xmm7
addss xmm0, xmm4
movss dword [rax + 0xf8], xmm2
movss dword [rax + 0xfc], xmm0
mov rax, qword [rcx + 0x3eb8]
cmp byte [rax + 0xb3], sil
jne 0x18000ab1a
mov eax, dword [rax + 0x1ac]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.1800409a0
lea r8, [0x180066325]
mov ecx, 0xd126f970
lea rdx, str.fov_circle
call fcn.18004cbd0
lea r8, [0x180066326]
mov ecx, 0x7a2cfa7e
lea rdx, str.feedback_line
call fcn.18004cbd0
call fcn.180018f70
mov ecx, 1
call fcn.180012bf0
mov r8, qword [0x1800670a0]
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
mov rdi, qword [rsp + 0xa0]
movsxd rax, dword [r8 + 0x4800]
mov rsi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xb8]
cmp eax, 1
jl 0x18000abba
mov rcx, qword [r8 + 0x4808]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x38bc], xmm0
dec dword [r8 + 0x4800]
add rsp, 0xa8
ret