Function at 0x100ba09b
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20c
mov edx, dword [0x10189818]
lea eax, [esp + 0x7c]
push ebx
push esi
push edi
push eax
lea edx, [edx + 0x15b8]
mov dword [esp + 0x8c], 0x42c80000
mov ecx, 0x10157a30
mov dword [esp + 0x90], 0
call fcn.100a2690
mov eax, dword [0x1034edb4]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100b9f96
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100fea50
lea edx, [esp + 0x88]
mov dword [esp + 0x88], 0x432a0000
mov ecx, str.list
mov dword [esp + 0x8c], 0x43960000
call fcn.1010c5f0
test al, al
je 0x100bbd51
xor ebx, ebx
mov dword [esp + 0x160], 0x10157c90
mov dword [esp + 0x164], 0x10157c88
mov dword [esp + 0x168], 0x101550cc
mov dword [esp + 0x16c], str.Projectiles
mov dword [esp + 0x170], str.Loot_Crates
mov dword [esp + 0x174], str.Other_Entities
mov dword [esp + 0x78], ebx
mov dword [esp + 0x148], ebx
mov dword [esp + 0x14c], ebx
nop dword [eax + eax]
cmp dword [0x1035271c], ebx
jne 0x100ba050
mov ecx, dword [0x101897b8]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100ba033
push 3
sub edx, esi
push 0x101550b4
call fcn.10027ef0
test al, al
je 0x100ba050
mov dl, 1
jmp 0x100ba052
xor dl, dl
mov ecx, dword [esp + ebx*4 + 0x160]
lea eax, [esp + 0x148]
push eax
push 0
call fcn.1010beb0
test al, al
je 0x100ba07c
mov dword [0x1035271c], ebx
mov dword [0x101897b8], 0x101550b4
xor ecx, ecx
call fcn.100f1a20
test al, al
je 0x100ba44d
cmp ebx, 3
ja case.default.0x100ba094
jmp dword [ebx*4 + 0x100bd088]
push 0x101550b4
push ebx
call fcn.100bd4f0
mov edx, dword [0x1034edb4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100ba418
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.10127940
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x14]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100f2fa0
push 0x168
lea ecx, [esi + 0x1eb0]
call fcn.100f2fa0
mov edx, esi
mov ecx, 0x5a
mov esi, dword [esp + 0x10]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x168
jmp 0x100ba418
mov esi, dword [0x10189818]
lea ecx, [esp + 0xb8]
push 3
push 0x101550b4
mov dword [esp + 0xc0], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0xf
call fcn.1001bfe0
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x17c]
push eax
lea ecx, [esi + 0x161c]
call fcn.10095c60
mov edx, dword [0x1034edb4]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x10], eax
jne 0x100ba1f3
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.10127940
mov edi, dword [esp + 0x20]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100f2fa0
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.100f2fa0
mov esi, dword [esp + 0x10]
mov edx, edi
mov ecx, 0x2e
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0xb8
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov edx, dword [esp + 0xcc]
cmp edx, 0x10
jb 0x100ba23b
mov ecx, dword [esp + 0xb8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba231
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0xf
mov byte [esp + 0xb8], 0
jmp 0x100ba424
mov esi, dword [0x10189818]
lea ecx, [esp + 0xd0]
push 3
push 0x101550b4
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0xf
call fcn.1001bfe0
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x184]
push eax
lea ecx, [esi + 0x163c]
call fcn.10095aa0
mov edx, dword [0x1034edb4]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x10], eax
jne 0x100ba32d
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.10127940
mov edi, dword [esp + 0x20]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100f2fa0
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.100f2fa0
mov esi, dword [esp + 0x10]
mov edx, edi
mov ecx, 0x44
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x110
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov edx, dword [esp + 0xe4]
cmp edx, 0x10
jb 0x100ba375
mov ecx, dword [esp + 0xd0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba36b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0xf
mov byte [esp + 0xd0], 0
jmp 0x100ba424
push 0x101550b4
push ebx
call fcn.100bd140
mov edx, dword [0x1034edb4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100ba418
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.10127940
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x14]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100f2fa0
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.100f2fa0
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0x10]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0xa0
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov esi, dword [0x1034edb4]
test byte [esi + 0x1e40], 1
jne 0x100ba438
call fcn.100ec360
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100ba446
call fcn.100f1940
mov byte [esi + 0x1e3d], 0
call fcn.100f1c70
test al, al
je 0x100baa53
xor edx, edx
mov ecx, str.Player
call fcn.100f1cf0
test eax, eax
je 0x100ba5cc
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100ba479
jmp dword [ebx*4 + 0x100bd098]
push edi
push ecx
push 0x101550b4
push ebx
call fcn.100bd4f0
add esp, 4
mov ecx, eax
call fcn.100bda00
jmp 0x100ba5cc
mov esi, dword [0x10189818]
lea ecx, [esp + 0x34]
push 3
push 0x101550b4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
call fcn.1001bfe0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x18c]
push eax
lea ecx, [esi + 0x161c]
call fcn.10095c60
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x48]
cmp edx, 0x10
jb 0x100ba5cc
mov ecx, dword [esp + 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba51d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100ba5cc
mov esi, dword [0x10189818]
lea ecx, [esp + 0x34]
push 3
push 0x101550b4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
call fcn.1001bfe0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x194]
push eax
lea ecx, [esi + 0x163c]
call fcn.10095aa0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x48]
cmp edx, 0x10
jb 0x100ba5cc
mov ecx, dword [esp + 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba5a9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100ba5cc
push edi
push ecx
push 0x101550b4
push ebx
call fcn.100bd140
add esp, 4
mov ecx, eax
call fcn.100bdb50
xor edx, edx
mov ecx, str.Weapon
call fcn.100f1cf0
test eax, eax
je 0x100ba75c
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100ba5eb
jmp dword [ebx*4 + 0x100bd0a8]
push edi
push ecx
push 0x101550b4
push ebx
call fcn.100bd4f0
jmp 0x100ba752
mov esi, dword [0x10189818]
lea ecx, [esp + 0x34]
push 3
push 0x101550b4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
call fcn.1001bfe0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x19c]
push eax
lea ecx, [esi + 0x161c]
call fcn.10095c60
push edi
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100bdb50
movups xmm0, xmmword [edi + 0xa0]
movups xmmword [esi + 0xc0], xmm0
mov eax, dword [edi + 0xb0]
mov dword [esi + 0xd0], eax
mov ax, word [edi + 0xb4]
mov word [esi + 0xd4], ax
mov edx, dword [esp + 0x48]
cmp edx, 0x10
jb 0x100ba75c
mov ecx, dword [esp + 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba6ad
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100ba75c
mov esi, dword [0x10189818]
lea ecx, [esp + 0x34]
push 3
push 0x101550b4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
call fcn.1001bfe0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x214]
push eax
lea ecx, [esi + 0x163c]
call fcn.10095aa0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x48]
cmp edx, 0x10
jb 0x100ba75c
mov ecx, dword [esp + 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba739
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100ba75c
push edi
push ecx
push 0x101550b4
push ebx
call fcn.100bd140
add esp, 4
mov ecx, eax
call fcn.100bdb50
xor edx, edx
mov ecx, str.Projectile
call fcn.100f1cf0
test eax, eax
je 0x100ba8df
mov edi, dword [eax]
mov dword [esp + 0x10], edi
cmp ebx, 3
ja case.default.0x100ba77f
jmp dword [ebx*4 + 0x100bd0b8]
push edi
push ecx
push 0x101550b4
push ebx
call fcn.100bd4f0
jmp 0x100ba8d5
mov esi, dword [0x10189818]
lea ecx, [esp + 0x34]
push 3
push 0x101550b4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
call fcn.1001bfe0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x20c]
push eax
lea ecx, [esi + 0x161c]
call fcn.10095c60
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x48]
cmp edx, 0x10
jb 0x100ba8df
mov ecx, dword [esp + 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba819
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100ba8df
mov esi, dword [0x10189818]
lea ecx, [esp + 0x34]
push 3
push 0x101550b4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
call fcn.1001bfe0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x1fc]
push eax
lea ecx, [esi + 0x163c]
call fcn.10095aa0
mov esi, dword [esp + 0x10]
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100bdb50
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x48]
cmp edx, 0x10
jb 0x100ba8df
mov ecx, dword [esp + 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba8bc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100ba8df
push edi
push ecx
push 0x101550b4
push ebx
call fcn.100bd140
add esp, 4
mov ecx, eax
call fcn.100bdb50
xor edx, edx
mov ecx, str.Entity
call fcn.100f1cf0
test eax, eax
je 0x100baa47
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100ba8fe
jmp dword [ebx*4 + 0x100bd0c8]
push edi
push ecx
push 0x101550b4
push ebx
call fcn.100bd4f0
jmp 0x100baa3d
mov esi, dword [0x10189818]
lea ecx, [esp + 0x34]
push 3
push 0x101550b4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
call fcn.1001bfe0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esi + 0x161c]
call fcn.10095c60
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x48]
cmp edx, 0x10
jb 0x100baa47
mov ecx, dword [esp + 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ba998
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100baa47
mov esi, dword [0x10189818]
lea ecx, [esp + 0x4c]
push 3
push 0x101550b4
mov dword [esp + 0x54], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0xf
call fcn.1001bfe0
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x204]
push eax
lea ecx, [esi + 0x163c]
call fcn.10095aa0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x60]
cmp edx, 0x10
jb 0x100baa47
mov ecx, dword [esp + 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100baa24
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100baa47
push edi
push ecx
push 0x101550b4
push ebx
call fcn.100bd140
add esp, 4
mov ecx, eax
call fcn.100bdb50
mov eax, dword [0x1034edb4]
mov byte [eax + 0x1e3e], 0
mov ecx, ebx
call fcn.100ecc10
mov ecx, dword [0x1034edb4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1b94]
movss xmm0, dword [ecx + 0x1580]
addss xmm0, dword [eax + 0x10c]
movss dword [eax + 0x10c], xmm0
addss xmm0, dword [eax + 0xc]
addss xmm0, dword [eax + 0x110]
movss dword [eax + 0xcc], xmm0
cmp ebx, 5
ja case.default.0x100baaa9
jmp dword [ebx*4 + 0x100bd0d8]
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], 0x101550b8
push ecx
lea eax, [esp + 0x94]
mov dword [esp + 0x90], 0x101550c0
push eax
push ecx
lea ecx, [esp + 0x88]
call fcn.100c7d90
mov esi, dword [esp + 0x7c]
jmp 0x100bac6f
mov dword [esp + 0x4c], 0x1016c7c4
mov dword [esp + 0x50], str.SMGs
mov dword [esp + 0x54], 0x1016c7d4
mov dword [esp + 0x58], str.Sniper_Rifles
mov dword [esp + 0x5c], str.Shotguns
mov dword [esp + 0x60], str.Machineguns
mov dword [esp + 0x64], str.Grenades
mov dword [esp + 0x68], str.Melee
mov dword [esp + 0x6c], str.Other
lea ecx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x74]
push eax
push ecx
lea ecx, [esp + 0x88]
call fcn.100c7d90
mov esi, dword [esp + 0x7c]
jmp 0x100bac6f
mov dword [esp + 0x4c], str.Flashbang
mov dword [esp + 0x50], str.HE_Grenade
mov dword [esp + 0x54], str.Breach_Charge
mov dword [esp + 0x58], str.Bump_Mine
mov dword [esp + 0x5c], str.Decoy_Grenade
mov dword [esp + 0x60], str.Molotov
mov dword [esp + 0x64], str.TA_Grenade
mov dword [esp + 0x68], str.Smoke_Grenade
mov dword [esp + 0x6c], str.Snowball
jmp 0x100bab34
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], str.Pistol_Case
push ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x3c], str.Light_Case
push eax
push ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x48], str.Heavy_Case
mov dword [esp + 0x4c], str.Explosive_Case
mov dword [esp + 0x50], str.Tools_Case
mov dword [esp + 0x54], str.Cash_Dufflebag
call fcn.100c7d90
mov esi, dword [esp + 0x7c]
jmp 0x100bac6f
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], str.Defuse_Kit
push ecx
lea eax, [esp + 0x78]
mov dword [esp + 0x54], str.Chicken
push eax
push ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x60], str.Planted_C4
mov dword [esp + 0x64], str.Hostage
mov dword [esp + 0x68], str.Sentry
mov dword [esp + 0x6c], str.Cash
mov dword [esp + 0x70], str.Ammo_Box
mov dword [esp + 0x74], str.Radar_Jammer
mov dword [esp + 0x78], str.Snowball_Pile
mov dword [esp + 0x7c], str.Collectable_Coin
call fcn.100c7d90
mov esi, dword [esp + 0x7c]
jmp 0x100bac6f
xor esi, esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
push 0x101550b4
push ebx
mov dword [esp + 0x20], esi
call fcn.100bd140
mov ecx, dword [esp + 0x80]
xor edi, edi
sub ecx, esi
mov dword [esp + 0x1c], edi
sar ecx, 2
mov al, byte [eax]
mov byte [esp + 0x23], al
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x100bbc91
test al, al
je 0x100bacb8
push dword [esi + edi*4]
push ebx
call fcn.100bd140
cmp byte [eax], 0
je 0x100bb846
cmp dword [0x1035271c], ebx
jne 0x100bad12
cmp byte [0x10352694], 0
jne 0x100bad12
mov ecx, dword [0x101897b8]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bacd4
mov eax, dword [esp + 0x18]
sub edx, esi
mov edi, dword [eax + edi*4]
mov esi, edi
lea eax, [esi + 1]
mov dword [esp + 0x10], eax
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x100bacf0
sub esi, dword [esp + 0x10]
push esi
push edi
call fcn.10027ef0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test al, al
je 0x100bad12
mov dl, 1
jmp 0x100bad14
xor dl, dl
mov ecx, dword [esi + edi*4]
lea eax, [esp + 0x150]
push eax
push 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
call fcn.1010beb0
test al, al
je 0x100bad55
mov eax, dword [esi + edi*4]
mov dword [0x1035271c], ebx
mov dword [0x101897b8], eax
mov byte [0x10352694], 0
xor ecx, ecx
call fcn.100f1a20
test al, al
je 0x100bb152
cmp ebx, 3
ja case.default.0x100bad6d
jmp dword [ebx*4 + 0x100bd0f0]
push dword [esi + edi*4]
push ebx
call fcn.100bd4f0
mov edx, dword [0x1034edb4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100bb11d
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.10127940
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x14]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100f2fa0
push 0x168
lea ecx, [esi + 0x1eb0]
call fcn.100f2fa0
mov edx, esi
mov ecx, 0x5a
mov esi, dword [esp + 0x10]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x168
jmp 0x100bb119
mov esi, dword [esi + edi*4]
mov edx, esi
mov eax, dword [0x10189818]
add eax, 0x161c
mov dword [esp + 0xe8], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xf8], 0
lea ecx, [edx + 1]
mov dword [esp + 0xfc], 0xf
mov al, byte [edx]
inc edx
test al, al
jne 0x100bae32
sub edx, ecx
lea ecx, [esp + 0xe8]
push edx
push esi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x1a4]
push eax
call fcn.10095c60
mov edx, dword [0x1034edb4]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x10], eax
jne 0x100baee0
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.10127940
mov edi, dword [esp + 0x20]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100f2fa0
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.100f2fa0
mov esi, dword [esp + 0x10]
mov edx, edi
mov ecx, 0x2e
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov dword [edx + 0x1e50], 0xb8
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov edx, dword [esp + 0xfc]
cmp edx, 0x10
jb 0x100baf28
mov ecx, dword [esp + 0xe8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100baf1e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0xf
mov byte [esp + 0xe8], 0
jmp 0x100bb129
mov esi, dword [esi + edi*4]
mov edx, esi
mov eax, dword [0x10189818]
add eax, 0x163c
mov dword [esp + 0x100], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x110], 0
lea ecx, [edx + 1]
mov dword [esp + 0x114], 0xf
mov al, byte [edx]
inc edx
test al, al
jne 0x100baf82
sub edx, ecx
lea ecx, [esp + 0x100]
push edx
push esi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x1ac]
push eax
call fcn.10095aa0
mov edx, dword [0x1034edb4]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x10], eax
jne 0x100bb030
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.10127940
mov edi, dword [esp + 0x20]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100f2fa0
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.100f2fa0
mov esi, dword [esp + 0x10]
mov edx, edi
mov ecx, 0x44
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov dword [edx + 0x1e50], 0x110
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov edx, dword [esp + 0x114]
cmp edx, 0x10
jb 0x100bb078
mov ecx, dword [esp + 0x100]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb06e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xf
mov byte [esp + 0x100], 0
jmp 0x100bb129
push dword [esi + edi*4]
push ebx
call fcn.100bd140
mov edx, dword [0x1034edb4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100bb11d
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.10127940
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x14]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100f2fa0
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.100f2fa0
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0x10]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0xa0
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov esi, dword [0x1034edb4]
test byte [esi + 0x1e40], 1
jne 0x100bb13d
call fcn.100ec360
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100bb14b
call fcn.100f1940
mov byte [esi + 0x1e3d], 0
call fcn.100f1c70
test al, al
je 0x100bb846
xor edx, edx
mov ecx, str.Player
call fcn.100f1cf0
test eax, eax
je 0x100bb240
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100bb17e
jmp dword [ebx*4 + 0x100bd100]
push esi
mov esi, dword [esp + 0x1c]
push ecx
push dword [esi + edi*4]
push ebx
call fcn.100bd4f0
add esp, 4
mov ecx, eax
call fcn.100bda00
jmp 0x100bb244
mov eax, dword [0x10189818]
add eax, 0x161c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov edi, dword [eax + edi*4]
mov edx, edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb1d5
sub edx, ecx
lea ecx, [esp + 0x4c]
push edx
push edi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x1b4]
push eax
call fcn.10095c60
mov ecx, dword [eax]
push esi
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x60]
cmp edx, 0x10
jb 0x100bb240
mov ecx, dword [esp + 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb236
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
mov esi, dword [esp + 0x18]
xor edx, edx
mov ecx, str.Weapon
call fcn.100f1cf0
test eax, eax
je 0x100bb3d3
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100bb263
jmp dword [ebx*4 + 0x100bd110]
mov eax, dword [0x10189818]
add eax, 0x163c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov edi, dword [eax + edi*4]
mov edx, edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xf
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb2a0
sub edx, ecx
lea ecx, [esp + 0x4c]
push edx
push edi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x1bc]
push eax
call fcn.10095aa0
jmp 0x100bb1ff
push esi
mov esi, dword [esp + 0x1c]
push ecx
push dword [esi + edi*4]
push ebx
call fcn.100bd140
add esp, 4
mov ecx, eax
call fcn.100bdb50
jmp 0x100bb244
push edi
mov edi, dword [esp + 0x20]
push ecx
push dword [esi + edi*4]
push ebx
call fcn.100bd4f0
add esp, 4
mov ecx, eax
call fcn.100bdb50
jmp 0x100bb3d7
mov eax, dword [0x10189818]
add eax, 0x161c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [esi + eax*4]
mov edx, esi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xf
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb340
sub edx, ecx
lea ecx, [esp + 0x4c]
push edx
push esi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x1c4]
push eax
call fcn.10095c60
push edi
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100bdb50
movups xmm0, xmmword [edi + 0xa0]
movups xmmword [esi + 0xc0], xmm0
mov eax, dword [edi + 0xb0]
mov dword [esi + 0xd0], eax
mov ax, word [edi + 0xb4]
mov word [esi + 0xd4], ax
mov edx, dword [esp + 0x60]
cmp edx, 0x10
jb 0x100bb3d3
mov ecx, dword [esp + 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb3c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
mov edi, dword [esp + 0x1c]
xor edx, edx
mov ecx, str.Projectile
call fcn.100f1cf0
test eax, eax
je 0x100bb60f
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100bb3f6
jmp dword [ebx*4 + 0x100bd120]
mov eax, dword [0x10189818]
add eax, 0x163c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [esi + eax*4]
mov edx, esi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xf
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb430
sub edx, ecx
lea ecx, [esp + 0x4c]
push edx
push esi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x1cc]
push eax
call fcn.10095aa0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
jmp 0x100bb39d
push edi
mov edi, dword [esp + 0x20]
push ecx
push dword [esi + edi*4]
push ebx
call fcn.100bd140
add esp, 4
mov ecx, eax
call fcn.100bdb50
jmp 0x100bb3d7
mov eax, dword [esp + 0x18]
push esi
push ecx
push dword [eax + edi*4]
push ebx
call fcn.100bd4f0
jmp 0x100bb605
mov eax, dword [0x10189818]
add eax, 0x161c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov edi, dword [eax + edi*4]
mov edx, edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xf
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb4d0
sub edx, ecx
lea ecx, [esp + 0x4c]
push edx
push edi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x1d4]
push eax
call fcn.10095c60
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x60]
cmp edx, 0x10
jb 0x100bb60f
mov ecx, dword [esp + 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb535
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100bb60f
mov eax, dword [0x10189818]
add eax, 0x163c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov edi, dword [eax + edi*4]
mov edx, edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb576
sub edx, ecx
lea ecx, [esp + 0x4c]
push edx
push edi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x1dc]
push eax
call fcn.10095aa0
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100bdb50
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x60]
cmp edx, 0x10
jb 0x100bb60f
mov ecx, dword [esp + 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb5ea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
jmp 0x100bb60f
mov eax, dword [esp + 0x18]
push esi
push ecx
push dword [eax + edi*4]
push ebx
call fcn.100bd140
add esp, 4
mov ecx, eax
call fcn.100bdb50
xor edx, edx
mov ecx, str.Entity
call fcn.100f1cf0
test eax, eax
je 0x100bb837
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100bb62e
jmp dword [ebx*4 + 0x100bd130]
mov eax, dword [esp + 0x1c]
push esi
push ecx
mov ecx, dword [esp + 0x20]
push dword [ecx + eax*4]
push ebx
call fcn.100bd4f0
jmp 0x100bb82d
mov eax, dword [0x10189818]
mov ecx, dword [esp + 0x18]
add eax, 0x161c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [ecx + eax*4]
mov edx, edi
mov dword [esp + 0x130], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0xf
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb690
sub edx, ecx
lea ecx, [esp + 0x130]
push edx
push edi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x130]
push eax
lea eax, [esp + 0x1e4]
push eax
call fcn.10095c60
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x144]
cmp edx, 0x10
jb 0x100bb707
mov ecx, dword [esp + 0x130]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb6fd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
mov ecx, dword [0x1034edb4]
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0xf
mov byte [esp + 0x130], 0
mov byte [ecx + 0x1e3e], 0
jmp 0x100bb84c
mov eax, dword [0x10189818]
mov ecx, dword [esp + 0x18]
add eax, 0x163c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [ecx + eax*4]
mov edx, edi
mov dword [esp + 0x118], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb776
sub edx, ecx
lea ecx, [esp + 0x118]
push edx
push edi
call fcn.1001bfe0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0x1ec]
push eax
call fcn.10095aa0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdb50
mov edx, dword [esp + 0x12c]
cmp edx, 0x10
jb 0x100bb7ed
mov ecx, dword [esp + 0x118]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb7e3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
mov ecx, dword [0x1034edb4]
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0xf
mov byte [esp + 0x118], 0
mov byte [ecx + 0x1e3e], 0
jmp 0x100bb84c
mov eax, dword [esp + 0x1c]
push esi
push ecx
mov ecx, dword [esp + 0x20]
push dword [ecx + eax*4]
push ebx
call fcn.100bd140
add esp, 4
mov ecx, eax
call fcn.100bdb50
mov ecx, dword [0x1034edb4]
mov byte [ecx + 0x1e3e], 0
jmp 0x100bb84c
mov ecx, dword [0x1034edb4]
cmp ebx, 2
jne 0x100bbc74
mov eax, dword [ecx + 0x1b94]
mov esi, dword [esp + 0x1c]
push esi
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1b94]
movss xmm0, dword [ecx + 0x1580]
addss xmm0, dword [eax + 0x10c]
movss dword [eax + 0x10c], xmm0
addss xmm0, dword [eax + 0xc]
addss xmm0, dword [eax + 0x110]
movss dword [eax + 0xcc], xmm0
lea eax, [esp + 0xb0]
push eax
call fcn.100bd630
mov eax, dword [esp + 0x18]
push dword [eax + esi*4]
push ebx
call fcn.100bd140
mov edx, dword [esp + 0xac]
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], edx
mov al, byte [eax]
mov byte [esp + 0x77], al
mov eax, edx
cmp eax, dword [esp + 0xb0]
je 0x100bbbcf
nop dword [eax + eax]
mov edi, dword [eax]
mov edx, edi
mov esi, dword [0x10189818]
mov dword [esp + 0x90], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0xf
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb910
sub edx, ecx
lea ecx, [esp + 0x90]
push edx
push edi
call fcn.1001bfe0
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x15c]
push eax
lea ecx, [esi + 0x161c]
call fcn.10095c60
mov edx, dword [esp + 0xa4]
mov ebx, dword [eax]
add ebx, 0x20
mov dword [esp + 0x14], ebx
cmp edx, 0x10
jb 0x100bb987
mov ecx, dword [esp + 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb97d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
cmp byte [esp + 0x23], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0xf
mov byte [esp + 0x90], 0
jne 0x100bb9b3
cmp byte [esp + 0x77], 0
je 0x100bb9bc
cmp byte [ebx], 0
je 0x100bbba7
cmp dword [0x1035271c], 2
jne 0x100bba12
cmp byte [0x10352694], 0
je 0x100bba12
mov ecx, dword [0x101897b8]
mov edx, ecx
lea esi, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb9e0
sub edx, esi
mov esi, edi
lea eax, [esi + 1]
mov dword [esp + 0xa8], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x100bb9f5
sub esi, dword [esp + 0xa8]
push esi
push edi
call fcn.10027ef0
test al, al
je 0x100bba12
mov dl, 1
jmp 0x100bba14
xor dl, dl
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push eax
push 0
mov ecx, edi
mov dword [esp + 0x38], 0
call fcn.1010beb0
test al, al
je 0x100bba4d
mov dword [0x1035271c], 2
mov dword [0x101897b8], edi
mov byte [0x10352694], 1
xor ecx, ecx
call fcn.100f1a20
test al, al
je 0x100bbafe
mov esi, dword [0x1034edb4]
mov ebx, esi
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100bbacb
push 0x20
lea esi, [ebx + 0x1e60]
push str.Weapon
push esi
call fcn.10127940
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.100f2fa0
push 0xb8
lea ecx, [ebx + 0x1eb0]
call fcn.100f2fa0
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x2e
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x1034edb4]
mov dword [ebx + 0x1e50], 0xb8
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
test byte [esi + 0x1e40], 1
jne 0x100bbae5
call fcn.100ec360
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100bbaf3
call fcn.100f1940
mov ebx, dword [esp + 0x14]
mov byte [esi + 0x1e3d], 0
call fcn.100f1c70
test al, al
je 0x100bbba7
xor edx, edx
mov ecx, str.Player
call fcn.100f1cf0
test eax, eax
je 0x100bbb24
push dword [eax]
mov ecx, ebx
call fcn.100bdb50
xor edx, edx
mov ecx, str.Weapon
call fcn.100f1cf0
test eax, eax
je 0x100bbb66
mov esi, dword [eax]
mov ecx, ebx
push esi
call fcn.100bdb50
movups xmm0, xmmword [esi + 0xa0]
movups xmmword [ebx + 0xa0], xmm0
mov eax, dword [esi + 0xb0]
mov dword [ebx + 0xb0], eax
mov ax, word [esi + 0xb4]
mov word [ebx + 0xb4], ax
xor edx, edx
mov ecx, str.Projectile
call fcn.100f1cf0
test eax, eax
je 0x100bbb7f
push dword [eax]
mov ecx, ebx
call fcn.100bdb50
xor edx, edx
mov ecx, str.Entity
call fcn.100f1cf0
test eax, eax
je 0x100bbb98
push dword [eax]
mov ecx, ebx
call fcn.100bdb50
mov ecx, dword [0x1034edb4]
mov byte [ecx + 0x1e3e], 0
jmp 0x100bbbad
mov ecx, dword [0x1034edb4]
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0xb0]
jne 0x100bb8e0
mov ebx, dword [esp + 0x78]
mov edx, dword [esp + 0x28]
jmp 0x100bbbd5
mov ecx, dword [0x1034edb4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1b94]
movss xmm0, dword [eax + 0x10c]
subss xmm0, dword [ecx + 0x1580]
movss dword [eax + 0x10c], xmm0
addss xmm0, dword [eax + 0xc]
addss xmm0, dword [eax + 0x110]
movss dword [eax + 0xcc], xmm0
test edx, edx
je 0x100bbc74
mov ecx, dword [esp + 0xb4]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100bbc43
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push ecx
push edx
call fcn.1011c1c8
mov ecx, dword [0x1034edb4]
add esp, 8
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
inc edi
mov al, byte [esp + 0x23]
mov dword [esp + 0x1c], edi
cmp edi, dword [esp + 0x24]
jb 0x100baca2
jmp 0x100bbc97
mov ecx, dword [0x1034edb4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1b94]
movss xmm0, dword [eax + 0x10c]
subss xmm0, dword [ecx + 0x1580]
movss dword [eax + 0x10c], xmm0
addss xmm0, dword [eax + 0xc]
addss xmm0, dword [eax + 0x110]
movss dword [eax + 0xcc], xmm0
mov eax, dword [ecx + 0x1b94]
dec dword [eax + 0xc0]
test esi, esi
je 0x100bbd39
mov ecx, dword [esp + 0x84]
mov eax, esi
sub ecx, esi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100bbd11
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push ecx
push esi
call fcn.1011c1c8
add esp, 8
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
inc ebx
mov dword [esp + 0x78], ebx
cmp ebx, 6
jb 0x100ba020
call fcn.100e7a90
call fcn.100ed4a0
movss xmm1, dword [0x101791fc]
xorps xmm0, xmm0
call fcn.100ecf90
mov esi, dword [0x1034edb4]
xor edx, edx
mov dword [esp + 0x2c], 0x43c80000
mov dword [esp + 0x30], 0
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, str.child
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bbdb4
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bbdc3
mov byte [esi + 0x1c08], 1
push 0
push 0
lea edx, [esp + 0x34]
mov ecx, str.child
push edx
mov edx, eax
call fcn.100e7890
test al, al
je 0x100bd06d
push dword [0x101897b8]
push dword [0x1035271c]
call fcn.100bd140
mov ebx, eax
mov ecx, str.Enabled
mov edx, ebx
mov dword [esp + 0x1c], ebx
call fcn.100fdfe0
mov esi, dword [0x1034edb4]
movss xmm1, dword [0x101791fc]
mov ecx, dword [esi + 0x1b94]
movss xmm0, dword [ecx + 0x24c]
subss xmm0, dword [ecx + 0xc]
subss xmm0, dword [0x10179108]
call fcn.100ecf90
or dword [esi + 0x1c78], 1
mov dword [esi + 0x1c7c], 0x435c0000
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*2]
mov eax, dword [0x10189818]
mov eax, dword [eax + 0x384c]
cmp dword [eax + ecx*8 + 0x14], 0x10
lea edx, [eax + ecx*8]
jb 0x100bbe5f
mov edx, dword [edx]
push 0
mov ecx, str.Font
call fcn.100fecd0
test al, al
je 0x100bc0c1
mov eax, dword [0x10189818]
mov dword [esp + 0x18], 0
mov ecx, dword [eax + 0x3850]
mov esi, dword [eax + 0x384c]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100bc081
lea edi, [ebx + 8]
mov dword [esp + 0x2c], 0x437a0000
xor ebx, ebx
mov dword [esp + 0x30], 0
mov dword [esp + 0x10], ebx
nop
add esi, ebx
mov eax, edi
cmp dword [edi + 0x14], 0x10
jb 0x100bbecc
mov eax, dword [edi]
mov ecx, dword [esi + 0x14]
cmp ecx, 0x10
mov edx, dword [esi + 0x10]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x10]
push ecx
push eax
jb 0x100bbeed
mov ecx, dword [esi]
call fcn.10027ef0
mov byte [esp + 0x23], al
jmp 0x100bbeff
mov ecx, esi
call fcn.10027ef0
cmp dword [esp + 0x24], 0x10
mov byte [esp + 0x23], al
jb 0x100bbf01
mov esi, dword [esi]
lea ecx, [esp + 0x2c]
mov dl, al
push ecx
push 0
mov ecx, esi
call fcn.1010beb0
test al, al
je 0x100bc037
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [0x10189818]
mov ecx, dword [eax + 0x384c]
add ecx, ebx
cmp edi, ecx
je 0x100bbf4e
cmp dword [ecx + 0x14], 0x10
mov eax, dword [ecx + 0x10]
jb 0x100bbf40
mov ecx, dword [ecx]
push eax
push ecx
mov ecx, edi
call fcn.1001bfe0
mov eax, dword [0x10189818]
lea esi, [eax + 0x3840]
mov eax, dword [esi + 4]
mov ecx, eax
mov dword [esp + 0x28], eax
cmp eax, dword [esi + 8]
je 0x100bbf71
push edi
call fcn.10019f90
add dword [esi + 4], 0x18
jmp 0x100bc037
sub ecx, dword [esi]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp ebx, 0xaaaaaaa
je 0x100bd079
mov ecx, dword [esi + 8]
lea eax, [ebx + 1]
sub ecx, dword [esi]
mov dword [esp + 0xa8], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, 0xaaaaaaa
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, ecx
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x100bbfc6
mov eax, 0xaaaaaaa
jmp 0x100bbfd1
lea eax, [edx + ecx]
lea ecx, [ebx + 1]
cmp eax, ecx
cmovb eax, ecx
push eax
mov dword [esp + 0x7c], eax
call fcn.10022960
lea ecx, [ebx + ebx*2]
mov dword [esp + 0x14], eax
push edi
lea eax, [eax + ecx*8]
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.10019f90
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov ebx, dword [esp + 0x28]
push ecx
push dword [esp + 0x18]
cmp ebx, edx
je 0x100bc018
mov edx, ebx
call fcn.10027e90
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 4]
add eax, 0x18
push ecx
push eax
mov ecx, ebx
call fcn.10027e90
push dword [esp + 0x78]
mov ecx, esi
push dword [esp + 0xac]
push dword [esp + 0x1c]
call fcn.100228e0
mov ebx, dword [esp + 0x10]
cmp byte [esp + 0x23], 0
je 0x100bc043
call fcn.100eca60
mov ecx, dword [0x10189818]
mov eax, 0x2aaaaaab
inc dword [esp + 0x18]
add ebx, 0x18
mov dword [esp + 0x10], ebx
mov esi, dword [ecx + 0x384c]
mov ecx, dword [ecx + 0x3850]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x100bbec0
mov ebx, dword [esp + 0x1c]
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bc0a5
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bc0b5
mov byte [esi + 0x1b46], 1
call fcn.100ec360
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1034edb4]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100bc0e7
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100fea50
push 0
lea edx, [ebx + 0x20]
mov ecx, str.Snapline
push 0
lea eax, [edx + 0x18]
push eax
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [esi + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100bc17a
movss xmm1, dword [esi + 0x1560]
addss xmm1, dword [edx + 0xd4]
movss xmm0, dword [edx + 0xd8]
movss dword [edx + 0xcc], xmm1
movss dword [edx + 0xd0], xmm0
mov eax, dword [edx + 0xfc]
mov ecx, dword [edx + 0x100]
mov dword [edx + 0xf4], eax
mov eax, dword [edx + 0x108]
mov dword [edx + 0xf8], ecx
mov dword [edx + 0x104], eax
or dword [esi + 0x1c78], 1
mov edx, str.Bottom
mov dword [esi + 0x1c7c], 0x42b40000
xor esi, esi
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bc197
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bc192
push 0xffffffffffffffff
push esi
push str.Bottom
push 0x100ff690
lea edx, [ebx + 0x3c]
mov ecx, 0x1017052c
call fcn.100ff6f0
mov ecx, dword [0x1034edb4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [ecx + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100bc246
movss xmm1, dword [edx + 0xc]
subss xmm1, dword [edx + 0x58]
movss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x110]
addss xmm1, dword [0x10179100]
addss xmm1, xmm0
movss xmm0, dword [edx + 0xd8]
movss dword [edx + 0xcc], xmm1
movss dword [edx + 0xd0], xmm0
mov eax, dword [edx + 0xfc]
mov ecx, dword [edx + 0x100]
mov dword [edx + 0xf4], eax
mov eax, dword [edx + 0x108]
mov dword [edx + 0xf8], ecx
mov dword [edx + 0x104], eax
lea edx, [ebx + 0x40]
mov ecx, 0x10157c68
push 0
lea eax, [edx + 0x18]
push eax
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [esi + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100bc2d9
movss xmm1, dword [esi + 0x1560]
addss xmm1, dword [edx + 0xd4]
movss xmm0, dword [edx + 0xd8]
movss dword [edx + 0xcc], xmm1
movss dword [edx + 0xd0], xmm0
mov eax, dword [edx + 0xfc]
mov ecx, dword [edx + 0x100]
mov dword [edx + 0xf4], eax
mov eax, dword [edx + 0x108]
mov dword [edx + 0xf8], ecx
mov dword [edx + 0x104], eax
mov esi, dword [esi + 0x1b94]
xor edx, edx
add esi, 0xc0
mov ecx, 0x10157c68
mov edi, dword [esi]
mov ebx, dword [esi + 8]
push dword [ebx + edi*4 - 4]
call fcn.100e1110
mov ecx, dword [esi + 4]
mov dword [esp + 0x24], eax
cmp edi, ecx
jne 0x100bc330
inc edi
test ecx, ecx
je 0x100bc315
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x100bc31a
mov eax, 8
cmp eax, edi
mov ecx, esi
cmovg edi, eax
push edi
call fcn.100a0f40
mov ebx, dword [esi + 8]
mov edi, dword [esi]
mov eax, dword [esp + 0x24]
mov dword [ebx + edi*4], eax
lea edx, [esp + 0x2c]
inc dword [esi]
mov ecx, 0x1016f18c
push 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call fcn.100fc930
test al, al
je 0x100bc3a7
mov esi, dword [0x1034edb4]
xor edx, edx
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10157378
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bc38f
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc39e
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100ede90
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bc3ca
mov dword [esi + 0x1c18], 0
jmp 0x100bc523
mov eax, dword [esi + 0x1b94]
xor edx, edx
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10157378
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bc3fa
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc409
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100ee1d0
test al, al
je 0x100bc523
mov eax, dword [0x1034edb4]
mov edx, 0x10170530
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42be0000
nop word [eax + eax]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bc445
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bc440
push 0xffffffffffffffff
push esi
mov esi, dword [esp + 0x24]
mov ecx, str.Type
push 0x10170530
push 0x100ff690
lea edx, [esi + 0x5c]
call fcn.100ff6f0
mov eax, dword [0x1034edb4]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x30], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x30], 0x3f000000
push eax
push 3
lea eax, [esi + 0x60]
push eax
call fcn.10101b40
push 0
push 0
lea edx, [esi + 0x6c]
mov ecx, str.Fill
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bc507
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bc517
mov byte [esi + 0x1b46], 1
call fcn.100ec360
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1034edb4]
mov ecx, str.Name
mov edx, dword [esp + 0x1c]
push 0
add edx, 0x84
mov eax, dword [eax + 0x1b94]
push 0
push 0
dec dword [eax + 0xc0]
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
mov ecx, dword [0x1034edb4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [ecx + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100bc5e2
movss xmm1, dword [edx + 0xc]
subss xmm1, dword [edx + 0x58]
movss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x110]
addss xmm1, dword [0x10179100]
addss xmm1, xmm0
movss xmm0, dword [edx + 0xd8]
movss dword [edx + 0xcc], xmm1
movss dword [edx + 0xd0], xmm0
mov eax, dword [edx + 0xfc]
mov ecx, dword [edx + 0x100]
mov dword [edx + 0xf4], eax
mov eax, dword [edx + 0x108]
mov dword [edx + 0xf8], ecx
mov dword [edx + 0x104], eax
mov eax, dword [0x1035271c]
cmp eax, 2
jae 0x100bcca4
push dword [0x101897b8]
push eax
call fcn.100bd4f0
mov ebx, eax
mov ecx, str.Weapon
push 0
push 0
push 0
lea edx, [ebx + 0xa0]
mov dword [esp + 0x20], ebx
lea esi, [edx + 0x15]
push esi
lea esi, [edx + 0x10]
push esi
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
push 0
push 0
lea edx, [ebx + 0xb6]
mov ecx, str.Flash_Duration
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
movss xmm1, dword [0x101791fc]
movss xmm0, dword [0x10179100]
call fcn.100ecf90
push 0
lea edx, [ebx + 0xec]
mov ecx, str.Skeleton
push 0
lea eax, [edx + 0x18]
push eax
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
lea edx, [ebx + 0xcc]
mov ecx, str.Audible_Only
call fcn.100fdfe0
movss xmm1, dword [0x101791fc]
movss xmm0, dword [0x10179100]
call fcn.100ecf90
lea edx, [ebx + 0xcd]
mov ecx, str.Spotted_Only
call fcn.100fdfe0
lea edx, [ebx + 0x108]
mov ecx, str.Head_Box
push 0
lea eax, [edx + 0x18]
push eax
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
movss xmm1, dword [0x101791fc]
xorps xmm0, xmm0
call fcn.100ecf90
mov eax, dword [0x1034edb4]
mov esi, dword [eax + 0x1b94]
add esi, 0xc0
mov eax, dword [esi + 8]
xor edx, edx
mov edi, dword [esi]
mov ecx, str.Head_Box
mov dword [esp + 0x24], eax
push dword [eax + edi*4 - 4]
call fcn.100e1110
mov dword [esp + 0x28], eax
mov eax, dword [esi + 4]
cmp edi, eax
jne 0x100bc757
lea ecx, [edi + 1]
test eax, eax
je 0x100bc73e
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
jmp 0x100bc743
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a0f40
mov eax, dword [esi + 8]
mov edi, dword [esi]
jmp 0x100bc75b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x2c]
mov dword [eax + edi*4], ecx
mov ecx, 0x1016f18c
inc dword [esi]
push 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call fcn.100fc930
test al, al
je 0x100bc7d6
mov esi, dword [0x1034edb4]
xor edx, edx
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10157378
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bc7be
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc7cd
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100ede90
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bc7f9
mov dword [esi + 0x1c18], 0
jmp 0x100bc958
mov eax, dword [esi + 0x1b94]
xor edx, edx
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10157378
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bc829
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc838
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100ee1d0
test al, al
je 0x100bc958
mov eax, dword [0x1034edb4]
mov edx, 0x10170530
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42be0000
nop dword [eax]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bc875
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bc870
push 0xffffffffffffffff
push esi
push 0x10170530
push 0x100ff690
lea edx, [ebx + 0x124]
mov ecx, str.Type
call fcn.100ff6f0
mov eax, dword [0x1034edb4]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x30], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x30], 0x3f000000
push eax
push 3
lea eax, [ebx + 0x128]
push eax
call fcn.10101b40
push 0
push 0
lea edx, [ebx + 0x134]
mov ecx, str.Fill
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bc93c
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bc94c
mov byte [esi + 0x1b46], 1
call fcn.100ec360
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1034edb4]
movss xmm1, dword [0x101791fc]
movss xmm0, dword [0x10179100]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
call fcn.100ecf90
lea edx, [ebx + 0xe5]
mov ecx, str.Health_Bar
call fcn.100fdfe0
movss xmm1, dword [0x101791fc]
xorps xmm0, xmm0
call fcn.100ecf90
mov eax, dword [0x1034edb4]
xor edx, edx
mov ecx, str.Health_Bar
mov esi, dword [eax + 0x1b94]
add esi, 0xc0
mov edi, dword [esi]
mov ebx, dword [esi + 8]
push dword [ebx + edi*4 - 4]
call fcn.100e1110
mov ecx, dword [esi + 4]
mov dword [esp + 0x24], eax
cmp edi, ecx
jne 0x100bc9fa
inc edi
test ecx, ecx
je 0x100bc9df
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x100bc9e4
mov eax, 8
cmp eax, edi
mov ecx, esi
cmovg edi, eax
push edi
call fcn.100a0f40
mov edi, dword [esi]
mov ebx, dword [esi + 8]
mov eax, dword [esp + 0x24]
mov dword [ebx + edi*4], eax
lea edx, [esp + 0x2c]
inc dword [esi]
mov ecx, 0x1016f18c
push 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call fcn.100fc930
test al, al
je 0x100bca71
mov esi, dword [0x1034edb4]
xor edx, edx
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10157378
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bca59
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bca68
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100ede90
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bcb77
mov dword [esi + 0x1c18], 0
mov ebx, dword [esp + 0x14]
mov eax, dword [0x1034edb4]
mov ecx, str.Footsteps
push 0
push 0
push 0
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
mov edx, dword [0x10189818]
add edx, 0x17fc
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
push 0
push str.Thickness:__d__
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x1e
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0
push eax
mov eax, dword [0x10189818]
mov edx, 4
add eax, 0x1818
mov ecx, str.Thickness
push eax
call fcn.10101590
push 0
push str.Radius:__d__
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0xe6
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0
push eax
mov eax, dword [0x10189818]
mov edx, 4
add eax, 0x1814
mov ecx, str.Radius
push eax
call fcn.10101590
push 0
lea edx, [ebx + 0x14c]
mov ecx, str.Line_of_sight
push 0
lea eax, [edx + 0x18]
push eax
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
jmp 0x100bcff9
mov eax, dword [esi + 0x1b94]
xor edx, edx
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10157378
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bcba7
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bcbb6
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100ee1d0
test al, al
je 0x100bca93
mov eax, dword [0x1034edb4]
mov edx, str.Gradient
or dword [eax + 0x1c78], 1
xor edi, edi
mov dword [eax + 0x1c7c], 0x42be0000
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bcbf0
sub ecx, esi
inc edx
add edx, ecx
inc edi
cmp byte [edx], al
jne 0x100bcbe7
mov ebx, dword [esp + 0x14]
mov ecx, str.Type
push 0xffffffffffffffff
push edi
push str.Gradient
push 0x100ff690
lea edx, [ebx + 0xe8]
call fcn.100ff6f0
cmp dword [ebx + 0xe8], 1
jne 0x100bcc5f
movss xmm1, dword [0x101791fc]
xorps xmm0, xmm0
call fcn.100ecf90
push 0
push 0
push 0
lea edx, [ebx + 0xd0]
mov ecx, 0x10157378
push 0
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bcc83
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bcc93
mov byte [esi + 0x1b46], 1
call fcn.100ec360
mov byte [esi + 0x1b46], 0
jmp 0x100bca97
jne 0x100bcd99
mov esi, dword [0x101897b8]
mov edx, esi
mov edi, dword [0x10189818]
mov dword [esp + 0x90], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0xf
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bcce0
sub edx, ecx
lea ecx, [esp + 0x90]
push edx
push esi
call fcn.1001bfe0
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x15c]
push eax
lea ecx, [edi + 0x161c]
call fcn.10095c60
mov edx, dword [esp + 0xa4]
mov esi, dword [eax]
cmp edx, 0x10
jb 0x100bcd50
mov ecx, dword [esp + 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bcd46
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd07e
push edx
push ecx
call fcn.1011c1c8
add esp, 8
push 0
push 0
lea edx, [esi + 0xc0]
mov dword [esp + 0xa8], 0
push 0
lea eax, [edx + 0x15]
mov dword [esp + 0xb0], 0xf
push eax
lea eax, [edx + 0x10]
mov byte [esp + 0xa0], 0
push eax
lea eax, [edx + 0x14]
mov ecx, str.Ammo
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a13d0
jmp 0x100bcff9
cmp eax, 3
jne 0x100bcff9
mov esi, dword [0x101897b8]
mov edx, esi
mov edi, dword [0x10189818]
mov dword [esp + 0x90], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bcdd4
sub edx, ecx
lea ecx, [esp + 0x90]
push edx
push esi
call fcn.1001bfe0
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x15c]
push eax
lea ecx, [edi + 0x163c]
call fcn.10095aa0
mov edx, dword [esp + 0xa4]
mov edi, dword [eax]
cmp edx, 0x10
jb 0x100bce44
mov ecx, dword [esp + 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bce3a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd083
push edx
push ecx
call fcn.1011c1c8
add esp, 8
lea edx, [edi + 0xc0]
mov dword [esp + 0xa0], 0
mov ecx, str.Trails
mov dword [esp + 0xa4], 0xf
mov byte [esp + 0x90], 0
call fcn.100fdfe0
movss xmm1, dword [0x101791fc]
movss xmm0, dword [0x1017912c]
call fcn.100ecf90
mov ecx, str.Trails
call fcn.100ecb90
push 0
lea edx, [esp + 0x30]
mov dword [esp + 0x30], 0
mov ecx, 0x1016f18c
mov dword [esp + 0x34], 0
call fcn.100fc930
test al, al
je 0x100bcf03
mov esi, dword [0x1034edb4]
xor edx, edx
mov eax, dword [esi + 0x1b94]
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10157378
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bceeb
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bcefa
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100ede90
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bcf26
mov dword [esi + 0x1c18], 0
jmp 0x100bcfe8
mov eax, dword [esi + 0x1b94]
xor edx, edx
mov ecx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10157378
call fcn.100e1110
cmp dword [esi + 0x1bc8], eax
jne 0x100bcf56
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bcf65
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100ee1d0
test al, al
je 0x100bcfe8
lea eax, [edi + 0xc4]
push eax
push str.Local_Player
call fcn.100bd8c0
lea eax, [edi + 0xe8]
push eax
push 0x10157c88
call fcn.100bd8c0
lea eax, [edi + 0x10c]
push eax
push 0x10157c90
call fcn.100bd8c0
mov esi, dword [0x1034edb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bcfcc
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bcfdc
mov byte [esi + 0x1b46], 1
call fcn.100ec360
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1034edb4]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
mov eax, dword [0x1034edb4]
mov edx, 8
mov esi, dword [esp + 0x1c]
mov ecx, str.Text_Cull_Distance
push 0x20000
push str._.1fm
or dword [eax + 0x1c78], 1
add esi, 0x9c
mov dword [eax + 0x1c7c], 0x42be0000
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0x3ecccccd
push eax
push esi
mov dword [esp + 0x38], 0x3f4ccccd
call fcn.101020f0
movss xmm1, dword [esi]
movss xmm0, dword [0x10179178]
comiss xmm1, xmm0
ja 0x100bd069
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x100bd069
movaps xmm0, xmm1
movss dword [esi], xmm0
call fcn.100e7a90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1001dd10
call fcn.10120cee
call fcn.10120cee
wait
mov al, byte [2694516747]
or edx, dword [eax]
and al, 0xa1
or edx, dword [eax]
pop esi
mov byte [2759856139], al
or edx, dword [eax]
and byte [ebx + ecx + 0xba49c10], 0x10
sub al, 165
adc byte [esp - 0x5ad3eff5], bl
adc byte [0xa5f2100b], ch
or edx, dword [eax]
movsd dword es:[edi], dword [esi]
or edx, dword [eax]
movsd dword es:[edi], dword [esi]
or edx, dword [eax]
add al, 0xa6
or edx, dword [eax]
mov esp, 0x86100ba6
cmpsd dword [esi], dword es:[edi]
or edx, dword [eax]
xchg byte [edi - 0x5867eff5], ah
or edx, dword [eax]
sub byte [eax - 0x56faeff5], ch
or edx, dword [eax]
add eax, 0x17100ba9
test eax, -1448669173
or edx, dword [eax]
mov al, 0xaa
or edx, dword [eax]
mov al, 0xaa
or edx, dword [eax]
in al, dx
stosb byte es:[edi], al
or edx, dword [eax]
push esp
stosd dword es:[edi], eax
or edx, dword [eax]
sahf
stosd dword es:[edi], eax
or edx, dword [eax]
out dx, al
stosd dword es:[edi], eax
or edx, dword [eax]
je 0x100bd09f
or edx, dword [eax]
je 0x100bd0a3
or edx, dword [eax]
sti
lodsd eax, dword [esi]
or edx, dword [eax]
dec ebx
scasd eax, dword es:[edi]
or edx, dword [eax]
test dword [ecx - 0x4e7aeff5], esi
or edx, dword [eax]
mov dword [0x6a100bb1], eax
mov dl, 11
adc ch, ch
mov dl, 0xb
adc ch, ch
mov dl, 0xb
adc byte [ebx], cl
mov bl, 0xb
adc ch, bh
mov bl, 0xb
adc byte [eax - 0x77eff44c], cl
mov ah, 0xb
adc byte [esp + esi*4 - 0x4abbeff5], bl
or edx, dword [eax]
xor eax, 0x35100bb6
mov dh, 11
adc byte [ebp - 0x4a], cl
or edx, dword [eax]
aaa
mov bh, 11
adc byte [ebx - 0x7cfbdbbc], cl
mov eax, dword [esp + 4]
sub esp, 0x24
push esi