Function at 0x1016e465
Capabilities:
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1017db09
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x178
mov ecx, dword [0x1029da6c]
xorps xmm0, xmm0
movups xmmword [0x1029a070], xmm0
push esi
push edi
mov eax, dword [ecx]
mov edi, 1
mov dword [ebp - 0x14], edi
mov eax, dword [eax + 0x54]
call eax
cmp eax, edi
jl 0x1016ddcb
nop dword [eax + eax]
push 0x84
lea eax, [ebp - 0x188]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [0x1029da6c]
lea edx, [ebp - 0x188]
add esp, 0xc
mov eax, dword [ecx]
push edx
push edi
mov eax, dword [eax + 0x20]
call eax
test al, al
je 0x1016ddb2
lea eax, [ebp - 0x140]
mov ecx, 0x1029a050
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.10128a90
mov eax, dword [eax]
mov dword [eax + 0xc], edi
mov esi, dword [ebp - 0x140]
test esi, esi
je 0x1016dd73
mov ecx, dword [0x1029d9b0]
mov byte [ebp - 0x29], 1
mov edx, dword [ebp - 0x2c]
and edx, 0xff100001
mov eax, dword [ecx]
or edx, 0x100001
push 4
push edx
push esi
mov eax, dword [eax + 0x44]
mov dword [ebp - 0x2c], edx
call eax
mov ecx, edi
xor edx, edx
shr ecx, 6
xor esi, esi
lea ecx, [ecx*8 + 0x1029a070]
mov dword [ebp - 0x24], ecx
mov ecx, edi
and ecx, 0x3f
bts edx, ecx
cmp ecx, 0x20
cmovae esi, edx
xor edx, esi
cmp ecx, 0x40
mov ecx, dword [ebp - 0x24]
cmovae esi, edx
mov edi, dword [ecx + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x14]
test al, al
je 0x1016dda2
or dword [ecx], edx
mov edx, dword [ebp - 0x1c]
or edx, esi
mov dword [ecx + 4], edx
jmp 0x1016ddb2
mov eax, edi
xor edx, edx
shr eax, 6
xor esi, esi
lea ecx, [eax*8 + 0x1029a070]
mov eax, edi
mov edi, dword [ecx + 4]
and eax, 0x3f
bts edx, eax
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x14]
cmp eax, 0x20
cmovae esi, edx
xor edx, esi
cmp eax, 0x40
cmovae esi, edx
mov eax, dword [ecx]
not edx
not esi
and edx, eax
and esi, dword [ebp - 0x1c]
mov dword [ecx], edx
mov dword [ecx + 4], esi
mov ecx, dword [0x1029da6c]
inc edi
mov dword [ebp - 0x14], edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x54]
call eax
cmp edi, eax
jle 0x1016dcb0
mov ecx, dword [0x1029da6c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x54]
call eax
mov ecx, dword [0x1029daf4]
lea esi, [eax + 1]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
call edx
cmp esi, eax
jge 0x1016de34
nop dword [eax]
mov ecx, dword [0x1029daf4]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
test edi, edi
je 0x1016de22
mov edx, dword [edi + 8]
lea ecx, [edi + 8]
mov edx, dword [edx + 8]
call edx
test eax, eax
je 0x1016de22
cmp dword [eax + 0x14], 0xf9
jne 0x1016de22
mov dword [0x1029a02c], edi
mov ecx, dword [0x1029daf4]
inc esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp esi, eax
jl 0x1016ddf0
mov ecx, dword [0x1029da6c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x1029daf4]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
test eax, eax
je 0x1016e947
mov ecx, eax
mov dword [0x1029a020], eax
call fcn.100c23e0
mov ecx, dword [0x1029c3d4]
mov esi, dword [0x1029a020]
mov dword [0x1029a024], eax
mov eax, dword fs:[0x2c]
mov edi, dword [eax + ecx*4]
mov eax, dword [0x1029dd50]
mov dword [ebp - 0x1c], edi
cmp eax, dword [edi + 4]
jle 0x1016ded2
push 0x1029dd50
call fcn.101707aa
add esp, 4
cmp dword [0x1029dd50], 0xffffffff
jne 0x1016ded2
push str.m_iObserverMode
push str.CBasePlayer
mov dword [ebp - 4], 0
call fcn.1016f4e0
push 0x1029dd50
mov dword [0x1029dd48], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029dd48]
mov eax, dword [esi + eax]
sub eax, 4
je 0x1016dee4
sub eax, 1
jne 0x1016df57
mov eax, dword [0x1029dd58]
mov esi, dword [0x1029a020]
cmp eax, dword [edi + 4]
jle 0x1016df3c
push 0x1029dd58
call fcn.101707aa
add esp, 4
cmp dword [0x1029dd58], 0xffffffff
jne 0x1016df3c
push str.m_hObserverTarget
push str.CBasePlayer
mov dword [ebp - 4], 1
call fcn.1016f4e0
push 0x1029dd58
mov dword [0x1029dd4c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029dd4c]
mov ecx, dword [0x1029daf4]
mov edx, dword [esi + eax]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov dword [0x1029a028], eax
mov ecx, dword [0x1029daf4]
mov dword [ebp - 0x28], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [ebp - 0x28]
cmp edx, eax
jge 0x1016e947
mov ecx, dword [0x1029daf4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov esi, eax
mov dword [ebp - 0x14], esi
test esi, esi
je case.0x1016e60a.263
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x1016dfa5
mov edi, dword [eax + 0x14]
jmp 0x1016dfa7
xor edi, edi
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 0x20]
call eax
test al, al
je 0x1016e1f4
cmp edi, 0xf7
jne case.0x1016e60a.263
mov edx, dword [ebp - 0x28]
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [ebp - 0x26]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0x25]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.101563a0
cmp dword [eax + 4], 0
je case.0x1016e60a.263
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.10155de0
mov ecx, dword [0x1029da6c]
mov eax, dword [eax]
add eax, 0xc
mov dword [ebp - 0x20], eax
movss xmm0, dword [eax + 0xc]
mov eax, dword [ecx]
movss dword [ebp - 0x18], xmm0
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x24], eax
call dword [ebp - 0x24]
fstp dword [ebp - 0x24]
movss xmm0, dword [ebp - 0x24]
subss xmm0, dword [ebp - 0x18]
comiss xmm0, dword [0x102a672c]
ja case.0x1016e60a.263
mov eax, dword [0x10299a8c]
test eax, eax
jne 0x1016e074
mov ecx, 0x10299a8c
call fcn.1016f570
mov eax, dword [0x10299a8c]
push dword [ebp - 0x20]
mov ecx, esi
call eax
mov ecx, esi
call fcn.100a7550
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, esi
call fcn.100a6630
mov byte [eax], 0
mov eax, dword [0x1029a02c]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1016e206
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov eax, dword [0x1029dd10]
cmp eax, dword [ecx + 4]
jle 0x1016e10d
push 0x1029dd10
call fcn.101707aa
add esp, 4
cmp dword [0x1029dd10], 0xffffffff
jne 0x1016e10a
push str.m_bValid
push str.CTFPlayerResource
mov dword [ebp - 4], 2
call fcn.1016f4e0
push 0x1029dd10
mov dword [0x1029dd28], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x1029dd28]
add eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov al, byte [eax + edx]
test al, al
je 0x1016e206
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov eax, dword [0x1029dc90]
cmp eax, dword [ecx + 4]
jle 0x1016e17e
push 0x1029dc90
call fcn.101707aa
add esp, 4
cmp dword [0x1029dc90], 0xffffffff
jne 0x1016e17b
push str.m_iHealth
push str.CTFPlayerResource
mov dword [ebp - 4], 3
call fcn.1016f4e0
push 0x1029dc90
mov dword [0x1029dc70], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x1029dc70]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax + edx]
mov dword [ebp - 0x18], eax
mov eax, dword [0x1029dab4]
cmp eax, dword [ecx + 4]
jle 0x1016e1e4
push 0x1029dab4
call fcn.101707aa
add esp, 4
cmp dword [0x1029dab4], 0xffffffff
jne 0x1016e1e4
push str.m_iHealth
push str.CBasePlayer
mov dword [ebp - 4], 4
call fcn.1016f4e0
push 0x1029dab4
mov dword [0x1029dadc], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029dadc]
mov ecx, dword [ebp - 0x18]
mov dword [eax + esi], ecx
lea eax, [edi - 1]
jmp 0x1016e214
cmp edi, 0xfc
jg 0x1016e5f4
je case.0x1016e60a.254
lea eax, [edi - 1]
cmp eax, 0xf6
ja case.0x1016e60a.263
movzx eax, byte [eax + 0x1016e988]
jmp dword [eax*4 + 0x1016e95c]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x84]
mov ecx, 0x1029a030
push eax
call fcn.100b08e0
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
add ecx, 0xc
cmp eax, dword [ecx + 8]
je 0x1016e253
mov dword [eax], esi
add dword [ecx + 4], 4
jmp 0x1016e260
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.1014ef60
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov eax, dword [0x1029a020]
mov dword [ebp - 0x18], eax
mov eax, dword [0x1029da54]
cmp eax, dword [edi + 4]
jle 0x1016e2c3
push 0x1029da54
call fcn.101707aa
mov eax, dword [0x1029da54]
add esp, 4
cmp eax, 0xffffffff
jne 0x1016e2c3
push str.m_iTeamNum
push str.CBaseEntity
mov dword [ebp - 4], 5
call fcn.1016f4e0
push 0x1029da54
mov dword [0x1029da4c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
mov eax, dword [0x1029da54]
add esp, 4
mov ecx, dword [0x1029da4c]
mov dword [ebp - 0x24], ecx
cmp eax, dword [edi + 4]
jle 0x1016e319
push 0x1029da54
call fcn.101707aa
add esp, 4
cmp dword [0x1029da54], 0xffffffff
jne 0x1016e319
push str.m_iTeamNum
push str.CBaseEntity
mov dword [ebp - 4], 6
call fcn.1016f4e0
push 0x1029da54
mov dword [0x1029da4c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029da4c]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
mov eax, dword [eax + esi]
sub eax, dword [ecx + edx]
neg eax
sbb eax, eax
add eax, 2
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x8c]
jmp 0x1016e902
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 3
push eax
lea eax, [ebp - 0x94]
mov ecx, 0x1029a030
push eax
call fcn.100b08e0
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
add ecx, 0xc
cmp eax, dword [ecx + 8]
je 0x1016e374
mov dword [eax], esi
add dword [ecx + 4], 4
jmp 0x1016e381
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.1014ef60
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov eax, dword [0x1029da54]
cmp eax, dword [edi + 4]
jle 0x1016e3dc
push 0x1029da54
call fcn.101707aa
mov eax, dword [0x1029da54]
add esp, 4
cmp eax, 0xffffffff
jne 0x1016e3dc
push str.m_iTeamNum
push str.CBaseEntity
mov dword [ebp - 4], 7
call fcn.1016f4e0
push 0x1029da54
mov dword [0x1029da4c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
mov eax, dword [0x1029da54]
add esp, 4
mov ecx, dword [0x1029da4c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x1029a020]
mov dword [ebp - 0x24], ecx
cmp eax, dword [edi + 4]
jle 0x1016e43b
push 0x1029da54
call fcn.101707aa
add esp, 4
cmp dword [0x1029da54], 0xffffffff
jne 0x1016e43b
push str.m_iTeamNum
push str.CBaseEntity
mov dword [ebp - 4], 8
call fcn.1016f4e0
push 0x1029da54
mov dword [0x1029da4c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax + esi]
mov eax, dword [0x1029da4c]
sub ecx, dword [edx + eax]
lea eax, [ebp - 0x38]
neg ecx
push eax
sbb ecx, ecx
lea eax, [ebp - 0x9c]
add ecx, 5
mov dword [ebp - 0x38], ecx
jmp 0x1016e902
mov eax, dword [esi + 4]
lea ecx, [esi + 4]
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x1029daf0]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edi, eax
mov ecx, edi
mov dword [ebp - 0x6c], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1016e488
lea eax, [ebp - 0x6c]
sub ecx, edx
push eax
mov dword [ebp - 0x68], ecx
call fcn.100d9070
cmp eax, 0x5978b32e
ja 0x1016e4bb
je 0x1016e50f
cmp eax, 0x1b20e275
je 0x1016e50f
cmp eax, 0x3cb8abb3
je 0x1016e50f
cmp eax, 0x4c849f3c
jmp 0x1016e4c7
cmp eax, 0x97113ea7
je 0x1016e50f
cmp eax, 0xa8d619ea
je 0x1016e50f
mov ecx, edi
call fcn.101702c0
test al, al
je 0x1016e4ea
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 6
push eax
lea eax, [ebp - 0xa4]
jmp 0x1016e902
mov ecx, edi
call fcn.101703a0
test al, al
je case.0x1016e60a.263
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0xc
push eax
lea eax, [ebp - 0xac]
jmp 0x1016e902
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 7
push eax
lea eax, [ebp - 0xb4]
jmp 0x1016e902
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 7
push eax
lea eax, [ebp - 0xbc]
jmp 0x1016e902
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0xb
push eax
lea eax, [ebp - 0xc4]
jmp 0x1016e902
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x1029e0c0]
cmp eax, dword [ecx + 4]
jle 0x1016e5a6
push 0x1029e0c0
call fcn.101707aa
add esp, 4
cmp dword [0x1029e0c0], 0xffffffff
jne 0x1016e5a6
push str.m_hTargetPlayer
push str.CHalloweenGiftPickup
mov dword [ebp - 4], 0xe
call fcn.1016f4e0
push 0x1029e0c0
mov dword [0x1029e0c4], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029e0c4]
mov ecx, dword [0x1029daf4]
mov edx, dword [eax + esi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
cmp eax, dword [0x1029a020]
jne case.0x1016e60a.263
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], 0xd
push eax
lea eax, [ebp - 0xcc]
jmp 0x1016e902
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], 0x10
push eax
lea eax, [ebp - 0xd4]
jmp 0x1016e902
lea eax, [edi - 0xfe]
cmp eax, 0x64
ja case.0x1016e60a.263
movzx eax, byte [eax + 0x1016ea90]
jmp dword [eax*4 + 0x1016ea80]
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 8
push eax
lea eax, [ebp - 0xdc]
mov ecx, 0x1029a030
push eax
call fcn.100b08e0
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
add ecx, 0xc
cmp eax, dword [ecx + 8]
je 0x1016e642
mov dword [eax], esi
add dword [ecx + 4], 4
jmp 0x1016e64f
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.1014ef60
mov esi, dword [ebp - 0x14]
cmp edi, 0xd9
jne 0x1016e7c5
mov edi, dword [ebp - 0x1c]
mov eax, dword [0x1029dabc]
cmp eax, dword [edi + 4]
jle 0x1016e6b0
push 0x1029dabc
call fcn.101707aa
add esp, 4
cmp dword [0x1029dabc], 0xffffffff
jne 0x1016e6b0
push str.m_iType
push str.CTFGrenadePipebombProjectile
mov dword [ebp - 4], 9
call fcn.1016f4e0
push 0x1029dabc
mov dword [0x1029dac4], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029dac4]
cmp dword [eax + esi], 2
je 0x1016e6c8
cmp byte [esi + 0x908], 0
je case.0x1016e60a.263
mov eax, dword [0x1029dac0]
cmp eax, dword [edi + 4]
jle 0x1016e71a
push 0x1029dac0
call fcn.101707aa
add esp, 4
cmp dword [0x1029dac0], 0xffffffff
jne 0x1016e71a
push str.m_hThrower
push str.CBaseGrenade
mov dword [ebp - 4], 0xa
call fcn.1016f4e0
push 0x1029dac0
mov dword [0x1029dab8], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029dab8]
mov ecx, dword [0x1029daf4]
mov edx, dword [eax + esi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [0x1029ddb0]
mov dword [ebp - 0x18], eax
cmp ecx, dword [edi + 4]
jle 0x1016e786
push 0x1029ddb0
call fcn.101707aa
add esp, 4
cmp dword [0x1029ddb0], 0xffffffff
jne 0x1016e786
push str.m_hOwnerEntity
push str.CBaseEntity
mov dword [ebp - 4], 0xb
call fcn.1016f4e0
push 0x1029ddb0
mov dword [0x1029ddb4], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029ddb4]
mov ecx, dword [0x1029daf4]
mov edx, dword [eax + esi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [0x1029a020]
cmp dword [ebp - 0x18], ecx
je 0x1016e7af
cmp eax, ecx
jne case.0x1016e60a.263
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0xe
push eax
lea eax, [ebp - 0xe4]
jmp 0x1016e902
cmp edi, 0x101
jne case.0x1016e60a.263
mov ecx, dword [0x1029a020]
push 1
call fcn.100b9370
mov edi, dword [ebp - 0x1c]
mov ecx, dword [0x1029ddb0]
mov dword [ebp - 0x24], eax
cmp ecx, dword [edi + 4]
jle 0x1016e837
push 0x1029ddb0
call fcn.101707aa
add esp, 4
cmp dword [0x1029ddb0], 0xffffffff
jne 0x1016e837
push str.m_hOwnerEntity
push str.CBaseEntity
mov dword [ebp - 4], 0xc
call fcn.1016f4e0
push 0x1029ddb0
mov dword [0x1029ddb4], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov eax, dword [0x1029ddb4]
mov ecx, dword [0x1029daf4]
mov edx, dword [eax + esi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
cmp dword [ebp - 0x24], 0
mov edx, eax
mov dword [ebp - 0x20], edx
je case.0x1016e60a.263
mov ecx, dword [0x1029daf8]
cmp ecx, dword [edi + 4]
jle 0x1016e8b2
push 0x1029daf8
call fcn.101707aa
add esp, 4
cmp dword [0x1029daf8], 0xffffffff
jne 0x1016e8af
push str.m_iItemDefinitionIndex
push str.CEconEntity
mov dword [ebp - 4], 0xd
call fcn.1016f4e0
push 0x1029daf8
mov dword [0x1029db08], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10170759
add esp, 4
mov edx, dword [ebp - 0x20]
mov eax, dword [0x1029db08]
mov ecx, dword [ebp - 0x24]
cmp dword [eax + ecx], 0x15f
jne case.0x1016e60a.263
cmp edx, dword [0x1029a020]
jne case.0x1016e60a.263
lea eax, [ebp - 0x60]
mov dword [ebp - 0x60], 0xf
push eax
lea eax, [ebp - 0xec]
jmp 0x1016e902
lea eax, [ebp - 0x64]
mov dword [ebp - 0x64], 9
push eax
lea eax, [ebp - 0xf4]
jmp 0x1016e902
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0xa
push eax
lea eax, [ebp - 0xfc]
push eax
mov ecx, 0x1029a030
call fcn.100b08e0
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
add ecx, 0xc
cmp eax, dword [ecx + 8]
je 0x1016e922
mov dword [eax], esi
add dword [ecx + 4], 4
jmp case.0x1016e60a.263
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.1014ef60
mov ecx, dword [0x1029daf4]
inc dword [ebp - 0x28]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [ebp - 0x28]
cmp edx, eax
jl 0x1016df76
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret