Function at 0x10008a00
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
movzx eax, byte [ebp + 0x18]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea edx, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1000ed90
mov esi, dword fs:[0]
mov dword [ebp - 0x18], esi
mov dword fs:[0], edx
test al, al
jne 0x10008a65
mov eax, dword [0x1012d334]
cmp byte [eax + 0x1800], 0
je 0x10008a65
mov eax, dword [eax + 0x1804]
mov edx, dword [0x1012d370]
mov edx, dword [edx + 0x4d2c]
cmp eax, edx
jle 0x10008a65
add edx, 0x64
cmp eax, edx
jl 0x10008ae8
mov esi, dword [ebp + 8]
xor eax, eax
test esi, esi
je 0x10008aea
cmp byte [ecx + 0x1b0], 0
jne 0x10008aea
mov eax, dword [0x1012d35c]
mov edx, dword [eax]
xor eax, eax
test edx, edx
je 0x10008aea
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x38], 0
jne 0x10008aea
mov eax, dword [0x1012d48c]
test al, 1
je 0x10008cbb
mov edi, dword [0x1012d488]
mov eax, dword [edi + 4]
test byte [eax + edx], 0x40
jne 0x10008ae8
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x1012d494]
test al, 1
je 0x10008d15
mov edi, dword [0x1012d490]
mov eax, dword [edi + 4]
cmp dword [eax + ecx], 0
jle 0x10008ae8
mov eax, dword [0x1012d49c]
test al, 1
je 0x10008d7d
mov edi, dword [0x1012d498]
mov eax, dword [edi + 4]
cmp byte [eax + ecx], 0
je 0x10008afe
xor eax, eax
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
mov eax, dword [0x1012d320]
mov ecx, dword [eax + 0x40]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
mov eax, dword [0x1012d47c]
test al, 1
je 0x10008f84
mov edi, dword [0x1012d478]
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [edi + 4]
movzx eax, word [eax + esi]
push eax
call edx
test eax, eax
je 0x10008ae8
mov eax, dword [0x1012d47c]
test al, 1
je 0x100090bd
mov edi, dword [0x1012d478]
mov eax, dword [edi + 4]
movzx ecx, word [eax + esi]
mov eax, dword [0x1012d320]
mov eax, dword [eax + 0x1cc]
mov eax, dword [eax + 0xcc]
add eax, 0xfffffffe
cmp eax, 6
setb al
cmp cx, 0x1f
sete dl
or dl, al
mov eax, dword [0x1012d35c]
mov ebx, dword [eax]
mov eax, dword [0x1012d4a4]
cmp dl, 1
jne 0x10008b9a
test al, 1
je 0x1000918b
mov edi, dword [0x1012d4a0]
mov eax, dword [edi + 4]
mov eax, dword [eax + ebx]
sub eax, dword [ebp + 0x14]
jmp 0x10008bae
test al, 1
je 0x100091ef
mov edi, dword [0x1012d4a0]
mov eax, dword [edi + 4]
mov eax, dword [eax + ebx]
vcvtsi2ss xmm0, xmm0, eax
mov eax, dword [0x1012d364]
vmulss xmm2, xmm0, dword [eax + 0x20]
mov eax, dword [0x1012d35c]
mov ebx, dword [eax]
mov eax, dword [0x1012d4ac]
test al, 1
je 0x10009118
mov edi, dword [0x1012d4a8]
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + ebx]
vucomiss xmm0, xmm2
ja 0x10008ae8
mov al, 1
cmp cx, 0x31
je 0x10008aea
lea eax, [ecx - 0x2b]
cmp ax, 5
ja 0x10008c43
mov eax, dword [0x1012d4b4]
test al, 1
je 0x100096ab
mov edi, dword [0x1012d4b0]
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + esi]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jbe 0x10008ae8
mov ecx, dword [0x1012d4b4]
test cl, 1
je 0x100097d1
add eax, esi
vucomiss xmm2, dword [eax]
seta al
jmp 0x10008aea
test dl, dl
je 0x10008c87
mov eax, dword [0x1012d4bc]
test al, 1
je 0x1000976e
mov edi, dword [0x1012d4b8]
mov eax, dword [edi + 4]
cmp dword [eax + esi], 0
jle 0x10008ae8
mov eax, dword [0x1012d4c4]
test al, 1
je 0x1000983c
mov edi, dword [0x1012d4c0]
mov eax, dword [edi + 4]
cmp byte [eax + esi], 0
jne 0x10008ae8
mov eax, dword [0x1012d4cc]
test al, 1
je 0x1000970b
mov edi, dword [0x1012d4c8]
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + esi]
vucomiss xmm0, xmm2
ja 0x10008ae8
cmp cx, 0x40
setne al
or al, byte [ebp + 0x10]
jmp 0x10008aea
mov dword [ebp - 0x2c], edx
or eax, 1
mov dword [0x1012d48c], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_fFlags
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x10008cf4
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10008d73
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10008ddb
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10008e24
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x1012d494], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_iHealth
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x10008d4e
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10008eac
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10008eb3
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10008efc
mov ecx, 0x811c9dc5
jmp 0x10008e41
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x1012d49c], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 4
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_lifeState
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x10008db6
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10008fe5
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10008fec
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10009035
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10008dea
cmp dword [ebp - 0x24], 0
je 0x10008e41
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10008e2f
mov edx, dword [ebp - 0x28]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009ce9
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10008e71
cmp edi, ebx
je 0x10009ce9
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10008e61
cmp dword [edi + 0x1c], 0x10
jb 0x10008e7c
mov eax, dword [edi + 8]
jmp 0x10008e7f
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10008e61
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d488], edi
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
jmp 0x10008aa0
mov ecx, 0x811c9dc5
jmp 0x10008f19
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10008ec2
cmp dword [ebp - 0x24], 0
je 0x10008f19
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10008f07
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009cfd
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10008f49
cmp edi, ebx
je 0x10009cfd
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10008f39
cmp dword [edi + 0x1c], 0x10
jb 0x10008f54
mov eax, dword [edi + 8]
jmp 0x10008f57
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10008f39
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d490], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
jmp 0x10008ac3
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
or eax, 1
mov dword [0x1012d47c], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 6
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBaseAttributableItem__m_iItemDefinitionIndex
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x10008fc0
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10009181
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10009253
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1000929c
mov ecx, 0x811c9dc5
jmp 0x10009052
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10008ffb
cmp dword [ebp - 0x24], 0
je 0x10009052
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10009040
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009d11
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10009082
cmp edi, ebx
je 0x10009d11
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10009072
cmp dword [edi + 0x1c], 0x10
jb 0x1000908d
mov eax, dword [edi + 8]
jmp 0x10009090
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10009072
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d498], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
jmp 0x10008adf
or eax, 1
mov dword [0x1012d47c], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 8
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBaseAttributableItem__m_iItemDefinitionIndex
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100090f3
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x1000932e
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x1000933f
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10009388
mov dword [ebp - 0x50], ebx
mov byte [ebp - 0x2c], dl
vmovss dword [ebp - 0x30], xmm2
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x1012d4ac], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x10], 0xe
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.m_flNextAttack
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x1000915c
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10009335
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x1000940d
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10009456
mov ecx, 0x811c9dc5
jmp 0x100092b9
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x2c], dl
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x1012d4a4], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x10], 0xa
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_nTickBase
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100091ca
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100094ea
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100094fb
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10009544
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x2c], dl
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x1012d4a4], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x10], 0xc
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_nTickBase
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x1000922e
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100094f1
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100095d3
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1000961c
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10009262
cmp dword [ebp - 0x24], 0
je 0x100092b9
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x100092a7
mov edx, dword [ebp - 0x28]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009d25
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100092e9
cmp edi, ebx
je 0x10009d25
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100092d9
cmp dword [edi + 0x1c], 0x10
jb 0x100092f4
mov eax, dword [edi + 8]
jmp 0x100092f7
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100092d9
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d478], edi
mov dword [ebp - 0x10], 0xffffffff
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
jmp 0x10008b25
mov ecx, 0x811c9dc5
jmp 0x100093a5
mov ecx, 0x811c9dc5
jmp 0x10009473
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1000934e
cmp dword [ebp - 0x24], 0
je 0x100093a5
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10009393
mov edx, dword [ebp - 0x28]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009d39
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100093d5
cmp edi, ebx
je 0x10009d39
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100093c5
cmp dword [edi + 0x1c], 0x10
jb 0x100093e0
mov eax, dword [edi + 8]
jmp 0x100093e3
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100093c5
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d478], edi
mov esi, dword [ebp + 8]
jmp 0x10008b46
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1000941c
cmp dword [ebp - 0x24], 0
je 0x10009473
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10009461
mov edx, dword [ebp - 0x4c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009d4d
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100094a3
cmp edi, ebx
je 0x10009d4d
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10009493
cmp dword [edi + 0x1c], 0x10
jb 0x100094ae
mov eax, dword [edi + 8]
jmp 0x100094b1
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10009493
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d4a8], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
vmovss xmm2, dword [ebp - 0x30]
movzx edx, byte [ebp - 0x2c]
mov ebx, dword [ebp - 0x50]
jmp 0x10008bd6
mov ecx, 0x811c9dc5
jmp 0x10009561
mov ecx, 0x811c9dc5
jmp 0x10009639
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1000950a
cmp dword [ebp - 0x24], 0
je 0x10009561
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x1000954f
mov edx, dword [ebp - 0x4c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009d61
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10009591
cmp edi, ebx
je 0x10009d61
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10009581
cmp dword [edi + 0x1c], 0x10
jb 0x1000959c
mov eax, dword [edi + 8]
jmp 0x1000959f
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10009581
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d4a0], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
jmp 0x10008b8f
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100095e2
cmp dword [ebp - 0x24], 0
je 0x10009639
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10009627
mov edx, dword [ebp - 0x4c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009d75
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10009669
cmp edi, ebx
je 0x10009d75
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10009659
cmp dword [edi + 0x1c], 0x10
jb 0x10009674
mov eax, dword [edi + 8]
jmp 0x10009677
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10009659
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d4a0], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
jmp 0x10008ba8
vmovss dword [ebp - 0x30], xmm2
or eax, 1
mov dword [0x1012d4b4], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0x10
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBaseCSGrenade__m_fThrowTime
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100096e6
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10009832
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x1000989f
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100098e8
vmovss dword [ebp - 0x30], xmm2
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x1012d4cc], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0x18
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBaseCombatWeapon__m_flNextPrimaryAttack
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x10009749
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10009972
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10009979
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100099c2
vmovss dword [ebp - 0x30], xmm2
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x1012d4bc], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0x14
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBaseCombatWeapon__m_iClip1
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100097ac
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10009a4f
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10009a60
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10009aa9
vmovss dword [ebp - 0x30], xmm2
or ecx, 1
mov dword [0x1012d4b4], ecx
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0x12
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBaseCSGrenade__m_fThrowTime
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x1000980d
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10009a56
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10009b36
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10009b7f
mov ecx, 0x811c9dc5
jmp 0x10009905
vmovss dword [ebp - 0x30], xmm2
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x1012d4c4], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0x16
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.m_bInReload
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x1000987a
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10009c0c
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10009c13
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10009c5c
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100098ae
cmp dword [ebp - 0x24], 0
je 0x10009905
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x100098f3
mov edx, dword [ebp - 0x28]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009d89
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10009935
cmp edi, ebx
je 0x10009d89
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10009925
cmp dword [edi + 0x1c], 0x10
jb 0x10009940
mov eax, dword [edi + 8]
jmp 0x10009943
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10009925
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d4b0], edi
mov esi, dword [ebp + 8]
vmovss xmm2, dword [ebp - 0x30]
jmp 0x10008c10
mov ecx, 0x811c9dc5
jmp 0x100099df
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10009988
cmp dword [ebp - 0x24], 0
je 0x100099df
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x100099cd
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009d9d
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10009a0f
cmp edi, ebx
je 0x10009d9d
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100099ff
cmp dword [edi + 0x1c], 0x10
jb 0x10009a1a
mov eax, dword [edi + 8]
jmp 0x10009a1d
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100099ff
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d4c8], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
vmovss xmm2, dword [ebp - 0x30]
jmp 0x10008c9a
mov ecx, 0x811c9dc5
jmp 0x10009ac6
mov ecx, 0x811c9dc5
jmp 0x10009b9c
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10009a6f
cmp dword [ebp - 0x24], 0
je 0x10009ac6
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10009ab4
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009db1
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10009af6
cmp edi, ebx
je 0x10009db1
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10009ae6
cmp dword [edi + 0x1c], 0x10
jb 0x10009b01
mov eax, dword [edi + 8]
jmp 0x10009b04
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10009ae6
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d4b8], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
vmovss xmm2, dword [ebp - 0x30]
jmp 0x10008c5a
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10009b45
cmp dword [ebp - 0x24], 0
je 0x10009b9c
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10009b8a
mov edx, dword [ebp - 0x28]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009dc5
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10009bcc
cmp edi, ebx
je 0x10009dc5
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10009bbc
cmp dword [edi + 0x1c], 0x10
jb 0x10009bd7
mov eax, dword [edi + 8]
jmp 0x10009bda
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10009bbc
lea esi, [edi + 0x20]
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d4b0], esi
mov eax, dword [ebp + 8]
add eax, dword [edi + 0x24]
vmovss xmm2, dword [ebp - 0x30]
jmp 0x10008c37
mov ecx, 0x811c9dc5
jmp 0x10009c79
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10009c22
cmp dword [ebp - 0x24], 0
je 0x10009c79
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x24], edi
jne 0x10009c67
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10009dd9
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x10009ca9
cmp edi, ebx
je 0x10009dd9
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x10009c99
cmp dword [edi + 0x1c], 0x10
jb 0x10009cb4
mov eax, dword [edi + 8]
jmp 0x10009cb7
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10009c99
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d4c0], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
vmovss xmm2, dword [ebp - 0x30]
jmp 0x10008c7a
mov dword [ebp - 0x10], 1
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 3
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 5
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 7
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 9
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0xf
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0xb
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0xd
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0x11
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0x19
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0x15
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0x13
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0x17
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
lea ecx, [ebp - 0x48]
call fcn.100029d0
add esp, 0xc
pop ebp
ret