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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x21c
push ebx
push esi
mov al, dl
mov byte [esp + 0x7f], al
push edi
mov edi, ecx
mov dword [esp + 0x10], edi
test al, al
jne 0x100b4d96
cmp byte [0x10156950], dl
je 0x100b7b99
mov eax, dword [0x101541b4]
mov edx, 0x10156950
push 0x3a
mov ecx, 0x1013fc0c
or dword [eax + 0x1c18], 2
mov dword [eax + 0x1c38], 0
mov dword [eax + 0x1c3c], 0
mov dword [eax + 0x1c20], 1
call fcn.10046970
movss xmm0, dword [0x1014b2b8]
lea eax, [esp + 0x84]
push eax
lea edx, [edi + 0xa0c]
mov dword [esp + 0x88], 0x42c80000
mov ecx, str.Toggle_Key
mov dword [esp + 0x8c], 0
call fcn.100c1770
movss xmm0, dword [0x1014b2b8]
lea eax, [esp + 0x84]
push eax
lea edx, [edi + 0xa0e]
mov dword [esp + 0x88], 0x42c80000
mov ecx, str.Hold_Key
mov dword [esp + 0x8c], 0
call fcn.100c1770
mov eax, dword [0x101541b4]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100b4e28
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.10062380
lea edx, [esp + 0x84]
mov dword [esp + 0x1c], edi
mov ecx, str.list
mov dword [esp + 0x20], edi
mov dword [esp + 0x84], 0x432a0000
mov dword [esp + 0x88], 0x43960000
call fcn.10070b80
test al, al
je 0x100b6c15
xor ebx, ebx
mov dword [esp + 0x170], 0x1013f948
mov dword [esp + 0x174], 0x1013f940
mov dword [esp + 0x178], 0x1013f974
mov dword [esp + 0x17c], str.Projectiles
mov dword [esp + 0x180], str.Loot_Crates
mov dword [esp + 0x184], str.Other_Entities
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], ebx
cmp dword [0x1015ca50], ebx
jne 0x100b4eed
mov ecx, dword [0x10152d3c]
mov edx, ecx
lea esi, [edx + 1]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b4ed0
push 3
sub edx, esi
push 0x1013ffe4
call fcn.1009a400
test al, al
je 0x100b4eed
mov dl, 1
jmp 0x100b4eef
xor dl, dl
mov ecx, dword [esp + ebx*4 + 0x170]
lea eax, [esp + 0x158]
push eax
push 0
call fcn.10070270
test al, al
je 0x100b4f19
mov dword [0x1015ca50], ebx
mov dword [0x10152d3c], 0x1013ffe4
xor ecx, ecx
call fcn.1004e210
test al, al
je 0x100b52e6
cmp ebx, 3
ja case.default.0x100b4f31
jmp dword [ebx*4 + 0x100b7bac]
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x28]
call fcn.100b8000
mov edx, dword [0x101541b4]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b52b1
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.10102410
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0xc]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.1004f6b0
push 0x14c
lea ecx, [esi + 0x1eb0]
call fcn.1004f6b0
mov edx, esi
mov ecx, 0x53
mov esi, dword [esp + 0x18]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x14c
jmp 0x100b52b1
push 3
push 0x1013ffe4
lea ecx, [esp + 0x148]
mov dword [esp + 0x148], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0xf
call fcn.10099e70
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x18c]
push eax
lea ecx, [edi + 0xa50]
call fcn.100b8ed0
mov edx, dword [0x101541b4]
mov dword [esp + 0xc], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x18], eax
jne 0x100b508e
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.10102410
mov edi, dword [esp + 0x18]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.1004f6b0
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.1004f6b0
mov esi, dword [esp + 0x18]
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 + 0x154]
cmp edx, 0x10
jb 0x100b50d6
mov ecx, dword [esp + 0x140]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b50cc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0xf
mov byte [esp + 0x140], 0
jmp 0x100b52bd
push 3
push 0x1013ffe4
lea ecx, [esp + 0xd0]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0xf
call fcn.10099e70
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0x194]
push eax
lea ecx, [edi + 0xa70]
call fcn.100b8cd0
mov edx, dword [0x101541b4]
mov dword [esp + 0xc], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x18], eax
jne 0x100b51c2
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.10102410
mov edi, dword [esp + 0x18]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.1004f6b0
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.1004f6b0
mov esi, dword [esp + 0x18]
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 + 0xdc]
cmp edx, 0x10
jb 0x100b520a
mov ecx, dword [esp + 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b5200
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xf
mov byte [esp + 0xc8], 0
jmp 0x100b52bd
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x24]
call fcn.100b7c70
mov edx, dword [0x101541b4]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b52b1
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.10102410
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0xc]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.1004f6b0
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.1004f6b0
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0x18]
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 [0x101541b4]
test byte [esi + 0x1e40], 1
jne 0x100b52d1
call fcn.10048bd0
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b52df
call fcn.1004e130
mov byte [esi + 0x1e3d], 0
call fcn.1004e460
test al, al
je 0x100b58fc
xor edx, edx
mov ecx, str.Player
call fcn.1004e4e0
test eax, eax
je 0x100b5469
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100b5312
jmp dword [ebx*4 + 0x100b7bbc]
push edi
push ecx
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x30]
call fcn.100b8000
add esp, 4
mov ecx, eax
call fcn.100b84f0
jmp 0x100b5469
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push 3
push 0x1013ffe4
mov dword [esp + 0x48], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0xf
call fcn.10099e70
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x224]
push eax
lea ecx, [esi + 0xa50]
call fcn.100b8ed0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x54]
cmp edx, 0x10
jb 0x100b5469
mov ecx, dword [esp + 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b53b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b5469
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push 3
push 0x1013ffe4
mov dword [esp + 0x48], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0xf
call fcn.10099e70
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x21c]
push eax
lea ecx, [esi + 0xa70]
call fcn.100b8cd0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x54]
cmp edx, 0x10
jb 0x100b5469
mov ecx, dword [esp + 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b5442
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b5469
push edi
push ecx
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x2c]
call fcn.100b7c70
add esp, 4
mov ecx, eax
call fcn.100b8610
xor edx, edx
mov ecx, str.Weapon
call fcn.1004e4e0
test eax, eax
je 0x100b55fd
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100b5488
jmp dword [ebx*4 + 0x100b7bcc]
push edi
push ecx
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x30]
call fcn.100b8000
jmp 0x100b55f3
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push 3
push 0x1013ffe4
mov dword [esp + 0x48], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0xf
call fcn.10099e70
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x1e4]
push eax
lea ecx, [esi + 0xa50]
call fcn.100b8ed0
push edi
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100b8610
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 + 0x54]
cmp edx, 0x10
jb 0x100b55fd
mov ecx, dword [esp + 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b554c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b55fd
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push 3
push 0x1013ffe4
mov dword [esp + 0x48], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0xf
call fcn.10099e70
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esi + 0xa70]
call fcn.100b8cd0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x54]
cmp edx, 0x10
jb 0x100b55fd
mov ecx, dword [esp + 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b55d6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b55fd
push edi
push ecx
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x2c]
call fcn.100b7c70
add esp, 4
mov ecx, eax
call fcn.100b8610
xor edx, edx
mov ecx, str.Projectile
call fcn.1004e4e0
test eax, eax
je 0x100b5784
mov edi, dword [eax]
mov dword [esp + 0x18], edi
cmp ebx, 3
ja case.default.0x100b5620
jmp dword [ebx*4 + 0x100b7bdc]
push edi
push ecx
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x30]
call fcn.100b8000
jmp 0x100b577a
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push 3
push 0x1013ffe4
mov dword [esp + 0x48], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0xf
call fcn.10099e70
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x1d4]
push eax
lea ecx, [esi + 0xa50]
call fcn.100b8ed0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x54]
cmp edx, 0x10
jb 0x100b5784
mov ecx, dword [esp + 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b56bc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b5784
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push 3
push 0x1013ffe4
mov dword [esp + 0x48], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0xf
call fcn.10099e70
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x204]
push eax
lea ecx, [esi + 0xa70]
call fcn.100b8cd0
mov esi, dword [esp + 0x18]
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100b8610
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x54]
cmp edx, 0x10
jb 0x100b5784
mov ecx, dword [esp + 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b575d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b5784
push edi
push ecx
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x2c]
call fcn.100b7c70
add esp, 4
mov ecx, eax
call fcn.100b8610
xor edx, edx
mov ecx, str.Entity
call fcn.1004e4e0
test eax, eax
je 0x100b58f0
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100b57a3
jmp dword [ebx*4 + 0x100b7bec]
push edi
push ecx
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x30]
call fcn.100b8000
jmp 0x100b58e6
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x40]
push 3
push 0x1013ffe4
mov dword [esp + 0x48], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0xf
call fcn.10099e70
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x1ec]
push eax
lea ecx, [esi + 0xa50]
call fcn.100b8ed0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x54]
cmp edx, 0x10
jb 0x100b58f0
mov ecx, dword [esp + 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b583f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b58f0
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x58]
push 3
push 0x1013ffe4
mov dword [esp + 0x60], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0xf
call fcn.10099e70
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x1f4]
push eax
lea ecx, [esi + 0xa70]
call fcn.100b8cd0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x6c]
cmp edx, 0x10
jb 0x100b58f0
mov ecx, dword [esp + 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b58c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b58f0
push edi
push ecx
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x2c]
call fcn.100b7c70
add esp, 4
mov ecx, eax
call fcn.100b8610
mov eax, dword [0x101541b4]
mov byte [eax + 0x1e3e], 0
mov ecx, ebx
call fcn.10049490
mov ecx, dword [0x101541b4]
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.0x100b5952
jmp dword [ebx*4 + 0x100b7bfc]
lea ecx, [esp + 0x84]
mov dword [esp + 0x84], str.Visible
push ecx
lea eax, [esp + 0x90]
mov dword [esp + 0x8c], str.Occluded
push eax
push ecx
lea ecx, [esp + 0x9c]
call fcn.100b86c0
mov esi, dword [esp + 0x90]
jmp 0x100b5b36
mov dword [esp + 0x58], 0x1013ff88
mov dword [esp + 0x5c], str.SMGs
mov dword [esp + 0x60], 0x1013ff98
mov dword [esp + 0x64], str.Sniper_Rifles
mov dword [esp + 0x68], str.Shotguns
mov dword [esp + 0x6c], str.Machineguns
mov dword [esp + 0x70], str.Grenades
mov dword [esp + 0x74], str.Melee
mov dword [esp + 0x78], str.Other
lea ecx, [esp + 0x58]
push ecx
lea eax, [esp + 0x80]
push eax
push ecx
lea ecx, [esp + 0x9c]
call fcn.100b86c0
mov esi, dword [esp + 0x90]
jmp 0x100b5b36
mov dword [esp + 0x58], str.Flashbang
mov dword [esp + 0x5c], str.HE_Grenade
mov dword [esp + 0x60], str.Breach_Charge
mov dword [esp + 0x64], str.Bump_Mine
mov dword [esp + 0x68], str.Decoy_Grenade
mov dword [esp + 0x6c], str.Molotov
mov dword [esp + 0x70], str.TA_Grenade
mov dword [esp + 0x74], str.Smoke_Grenade
mov dword [esp + 0x78], str.Snowball
jmp 0x100b59e0
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], str.Pistol_Case
push ecx
lea eax, [esp + 0x5c]
mov dword [esp + 0x48], str.Light_Case
push eax
push ecx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x54], str.Heavy_Case
mov dword [esp + 0x58], str.Explosive_Case
mov dword [esp + 0x5c], str.Tools_Case
mov dword [esp + 0x60], str.Cash_Dufflebag
call fcn.100b86c0
mov esi, dword [esp + 0x90]
jmp 0x100b5b36
lea ecx, [esp + 0x58]
mov dword [esp + 0x58], str.Defuse_Kit
push ecx
lea eax, [esp + 0x84]
mov dword [esp + 0x60], str.Chicken
push eax
push ecx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x6c], str.Planted_C4
mov dword [esp + 0x70], str.Hostage
mov dword [esp + 0x74], str.Sentry
mov dword [esp + 0x78], str.Cash
mov dword [esp + 0x7c], str.Ammo_Box
mov dword [esp + 0x80], str.Radar_Jammer
mov dword [esp + 0x84], str.Snowball_Pile
mov dword [esp + 0x88], str.Collectable_Coin
call fcn.100b86c0
mov esi, dword [esp + 0x90]
jmp 0x100b5b36
xor esi, esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
push 0x1013ffe4
push ebx
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], esi
call fcn.100b7c70
mov ecx, dword [esp + 0x94]
xor edi, edi
sub ecx, esi
mov dword [esp + 0xc], edi
sar ecx, 2
mov al, byte [eax]
mov byte [esp + 0x37], al
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x100b6b46
nop dword [eax]
test al, al
je 0x100b5b8a
push dword [esi + edi*4]
lea ecx, [esp + 0x20]
push ebx
call fcn.100b7c70
cmp byte [eax], 0
je 0x100b66ea
cmp dword [0x1015ca50], ebx
jne 0x100b5be2
cmp byte [0x1015ca54], 0
jne 0x100b5be2
mov ecx, dword [0x10152d3c]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b5ba6
mov eax, dword [esp + 0x14]
sub edx, esi
mov edi, dword [eax + edi*4]
mov esi, edi
lea eax, [esi + 1]
mov dword [esp + 0x18], eax
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x100b5bc0
sub esi, dword [esp + 0x18]
push esi
push edi
call fcn.1009a400
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
test al, al
je 0x100b5be2
mov dl, 1
jmp 0x100b5be4
xor dl, dl
mov ecx, dword [esi + edi*4]
lea eax, [esp + 0x160]
push eax
push 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
call fcn.10070270
test al, al
je 0x100b5c25
mov eax, dword [esi + edi*4]
mov dword [0x1015ca50], ebx
mov dword [0x10152d3c], eax
mov byte [0x1015ca54], 0
xor ecx, ecx
call fcn.1004e210
test al, al
je 0x100b601a
cmp ebx, 3
ja case.default.0x100b5c3d
jmp dword [ebx*4 + 0x100b7c14]
push dword [esi + edi*4]
lea ecx, [esp + 0x24]
push ebx
call fcn.100b8000
mov edx, dword [0x101541b4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b5fe1
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.10102410
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x2c]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.1004f6b0
push 0x14c
lea ecx, [esi + 0x1eb0]
call fcn.1004f6b0
mov edx, esi
mov ecx, 0x53
mov esi, dword [esp + 0x18]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x14c
jmp 0x100b5fe1
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov esi, dword [esi + eax*4]
mov edx, esi
mov dword [esp + 0xe0], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b5d00
sub edx, ecx
lea ecx, [esp + 0xe0]
push edx
push esi
call fcn.10099e70
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x1fc]
push eax
lea ecx, [edi + 0xa50]
call fcn.100b8ed0
mov edx, dword [0x101541b4]
mov dword [esp + 0x2c], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x18], eax
jne 0x100b5dac
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.10102410
mov edi, dword [esp + 0x38]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.1004f6b0
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.1004f6b0
mov esi, dword [esp + 0x18]
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 + 0xf4]
cmp edx, 0x10
jb 0x100b5df4
mov ecx, dword [esp + 0xe0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b5dea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
jmp 0x100b5fed
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov esi, dword [esi + eax*4]
mov edx, esi
mov dword [esp + 0x128], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b5e48
sub edx, ecx
lea ecx, [esp + 0x128]
push edx
push esi
call fcn.10099e70
lea eax, [esp + 0x128]
push eax
lea eax, [esp + 0x20c]
push eax
lea ecx, [edi + 0xa70]
call fcn.100b8cd0
mov edx, dword [0x101541b4]
mov dword [esp + 0x2c], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x18], eax
jne 0x100b5ef4
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.10102410
mov edi, dword [esp + 0x38]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.1004f6b0
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.1004f6b0
mov esi, dword [esp + 0x18]
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 + 0x13c]
cmp edx, 0x10
jb 0x100b5f3c
mov ecx, dword [esp + 0x128]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b5f32
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0xf
mov byte [esp + 0x128], 0
jmp 0x100b5fed
push dword [esi + edi*4]
lea ecx, [esp + 0x20]
push ebx
call fcn.100b7c70
mov edx, dword [0x101541b4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b5fe1
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.10102410
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x2c]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.1004f6b0
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.1004f6b0
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0x18]
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 [0x101541b4]
test byte [esi + 0x1e40], 1
jne 0x100b6001
call fcn.10048bd0
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b600f
call fcn.1004e130
mov edi, dword [esp + 0xc]
mov byte [esi + 0x1e3d], 0
call fcn.1004e460
test al, al
je 0x100b66ea
xor edx, edx
mov ecx, str.Player
call fcn.1004e4e0
test eax, eax
je 0x100b6104
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b6046
jmp dword [ebx*4 + 0x100b7c24]
push esi
mov esi, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x28]
push dword [esi + edi*4]
push ebx
call fcn.100b8000
add esp, 4
mov ecx, eax
call fcn.100b84f0
jmp 0x100b6108
mov eax, dword [esp + 0x14]
mov edi, dword [eax + edi*4]
mov edx, edi
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b6093
sub edx, ecx
lea ecx, [esp + 0x58]
push edx
push edi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x214]
push eax
lea ecx, [ecx + 0xa50]
call fcn.100b8ed0
mov ecx, dword [eax]
push esi
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x6c]
cmp edx, 0x10
jb 0x100b6104
mov ecx, dword [esp + 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b60fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, str.Weapon
call fcn.1004e4e0
test eax, eax
je 0x100b6289
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100b6127
jmp dword [ebx*4 + 0x100b7c34]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + edi*4]
mov edx, edi
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b6152
sub edx, ecx
lea ecx, [esp + 0x58]
push edx
push edi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x19c]
push eax
lea ecx, [ecx + 0xa70]
call fcn.100b8cd0
jmp 0x100b60c3
push esi
mov esi, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
push dword [esi + edi*4]
push ebx
call fcn.100b7c70
add esp, 4
mov ecx, eax
call fcn.100b8610
jmp 0x100b6108
push edi
mov edi, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x28]
push dword [esi + edi*4]
push ebx
call fcn.100b8000
add esp, 4
mov ecx, eax
call fcn.100b8610
jmp 0x100b628d
mov eax, dword [esp + 0xc]
mov esi, dword [esi + eax*4]
mov edx, esi
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100b61f0
sub edx, ecx
lea ecx, [esp + 0x58]
push edx
push esi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [ecx + 0xa50]
call fcn.100b8ed0
push edi
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100b8610
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 + 0x6c]
cmp edx, 0x10
jb 0x100b6289
mov ecx, dword [esp + 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b627f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
mov edi, dword [esp + 0xc]
xor edx, edx
mov ecx, str.Projectile
call fcn.1004e4e0
test eax, eax
je 0x100b64b6
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b62ac
jmp dword [ebx*4 + 0x100b7c44]
mov eax, dword [esp + 0xc]
mov esi, dword [esi + eax*4]
mov edx, esi
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b62d7
sub edx, ecx
lea ecx, [esp + 0x58]
push edx
push esi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x1ac]
push eax
lea ecx, [ecx + 0xa70]
call fcn.100b8cd0
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
jmp 0x100b6253
push edi
mov edi, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x24]
push dword [esi + edi*4]
push ebx
call fcn.100b7c70
add esp, 4
mov ecx, eax
call fcn.100b8610
jmp 0x100b628d
mov eax, dword [esp + 0x14]
push esi
push ecx
lea ecx, [esp + 0x28]
push dword [eax + edi*4]
push ebx
call fcn.100b8000
jmp 0x100b64ac
mov eax, dword [esp + 0x14]
mov edi, dword [eax + edi*4]
mov edx, edi
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b6375
sub edx, ecx
lea ecx, [esp + 0x58]
push edx
push edi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x1b4]
push eax
lea ecx, [ecx + 0xa50]
call fcn.100b8ed0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x6c]
cmp edx, 0x10
jb 0x100b64b6
mov ecx, dword [esp + 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b63e0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b64b6
mov eax, dword [esp + 0x14]
mov edi, dword [eax + edi*4]
mov edx, edi
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b6413
sub edx, ecx
lea ecx, [esp + 0x58]
push edx
push edi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x1bc]
push eax
lea ecx, [ecx + 0xa70]
call fcn.100b8cd0
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100b8610
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x6c]
cmp edx, 0x10
jb 0x100b64b6
mov ecx, dword [esp + 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b648d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
jmp 0x100b64b6
mov eax, dword [esp + 0x14]
push esi
push ecx
lea ecx, [esp + 0x24]
push dword [eax + edi*4]
push ebx
call fcn.100b7c70
add esp, 4
mov ecx, eax
call fcn.100b8610
xor edx, edx
mov ecx, str.Entity
call fcn.1004e4e0
test eax, eax
je 0x100b66db
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b64d5
jmp dword [ebx*4 + 0x100b7c54]
mov eax, dword [esp + 0xc]
push esi
push ecx
mov ecx, dword [esp + 0x1c]
push dword [ecx + eax*4]
lea ecx, [esp + 0x2c]
push ebx
call fcn.100b8000
jmp 0x100b66d1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov edi, dword [ecx + eax*4]
mov edx, edi
mov dword [esp + 0xf8], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0xf
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b6530
sub edx, ecx
lea ecx, [esp + 0xf8]
push edx
push edi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0x1c4]
push eax
lea ecx, [ecx + 0xa50]
call fcn.100b8ed0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x10c]
cmp edx, 0x10
jb 0x100b65ad
mov ecx, dword [esp + 0xf8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b65a3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
mov ecx, dword [0x101541b4]
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0xf
mov byte [esp + 0xf8], 0
mov byte [ecx + 0x1e3e], 0
jmp 0x100b66f0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov edi, dword [ecx + eax*4]
mov edx, edi
mov dword [esp + 0x110], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0xf
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100b6610
sub edx, ecx
lea ecx, [esp + 0x110]
push edx
push edi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x1cc]
push eax
lea ecx, [ecx + 0xa70]
call fcn.100b8cd0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100b8610
mov edx, dword [esp + 0x124]
cmp edx, 0x10
jb 0x100b668d
mov ecx, dword [esp + 0x110]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b6683
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
mov ecx, dword [0x101541b4]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0xf
mov byte [esp + 0x110], 0
mov byte [ecx + 0x1e3e], 0
jmp 0x100b66f0
mov eax, dword [esp + 0xc]
push esi
push ecx
mov ecx, dword [esp + 0x1c]
push dword [ecx + eax*4]
lea ecx, [esp + 0x28]
push ebx
call fcn.100b7c70
add esp, 4
mov ecx, eax
call fcn.100b8610
mov ecx, dword [0x101541b4]
mov byte [ecx + 0x1e3e], 0
jmp 0x100b66f0
mov ecx, dword [0x101541b4]
cmp ebx, 2
jne 0x100b6b29
mov eax, dword [ecx + 0x1b94]
mov esi, dword [esp + 0xc]
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 + 0xb8]
push eax
call fcn.100b8130
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x1c]
push dword [eax + esi*4]
push ebx
call fcn.100b7c70
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], edx
mov al, byte [eax]
mov byte [esp + 0x27], al
mov eax, edx
cmp eax, dword [esp + 0xb8]
je 0x100b6a84
mov ebx, dword [esp + 0x10]
add ebx, 0xa50
mov dword [esp + 0xc4], ebx
mov edi, dword [eax]
mov ecx, edi
mov dword [esp + 0x9c], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b67c0
sub ecx, edx
push ecx
push edi
lea ecx, [esp + 0xa4]
call fcn.10099e70
lea eax, [esp + 0x9c]
mov ecx, ebx
push eax
lea eax, [esp + 0x16c]
push eax
call fcn.100b8ed0
mov edx, dword [esp + 0xb0]
mov ebx, dword [eax]
add ebx, 0x20
mov dword [esp + 0x2c], ebx
cmp edx, 0x10
jb 0x100b6833
mov ecx, dword [esp + 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b6829
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
cmp byte [esp + 0x37], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0xf
mov byte [esp + 0x9c], 0
jne 0x100b685f
cmp byte [esp + 0x27], 0
je 0x100b6868
cmp byte [ebx], 0
je 0x100b6a52
cmp dword [0x1015ca50], 2
jne 0x100b68bd
cmp byte [0x1015ca54], 0
je 0x100b68bd
mov ecx, dword [0x10152d3c]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b6885
sub edx, esi
mov esi, edi
lea eax, [esi + 1]
mov dword [esp + 0xc0], eax
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x100b68a0
sub esi, dword [esp + 0xc0]
push esi
push edi
call fcn.1009a400
test al, al
je 0x100b68bd
mov dl, 1
jmp 0x100b68bf
xor dl, dl
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0
push eax
push 0
mov ecx, edi
mov dword [esp + 0x44], 0
call fcn.10070270
test al, al
je 0x100b68f8
mov dword [0x1015ca50], 2
mov dword [0x10152d3c], edi
mov byte [0x1015ca54], 1
xor ecx, ecx
call fcn.1004e210
test al, al
je 0x100b69a9
mov esi, dword [0x101541b4]
mov ebx, esi
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100b6976
push 0x20
lea esi, [ebx + 0x1e60]
push str.Weapon
push esi
call fcn.10102410
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.1004f6b0
push 0xb8
lea ecx, [ebx + 0x1eb0]
call fcn.1004f6b0
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x2e
mov esi, dword [esp + 0x2c]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x101541b4]
mov dword [ebx + 0x1e50], 0xb8
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
test byte [esi + 0x1e40], 1
jne 0x100b6990
call fcn.10048bd0
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b699e
call fcn.1004e130
mov ebx, dword [esp + 0x2c]
mov byte [esi + 0x1e3d], 0
call fcn.1004e460
test al, al
je 0x100b6a52
xor edx, edx
mov ecx, str.Player
call fcn.1004e4e0
test eax, eax
je 0x100b69cf
push dword [eax]
mov ecx, ebx
call fcn.100b8610
xor edx, edx
mov ecx, str.Weapon
call fcn.1004e4e0
test eax, eax
je 0x100b6a11
mov esi, dword [eax]
mov ecx, ebx
push esi
call fcn.100b8610
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.1004e4e0
test eax, eax
je 0x100b6a2a
push dword [eax]
mov ecx, ebx
call fcn.100b8610
xor edx, edx
mov ecx, str.Entity
call fcn.1004e4e0
test eax, eax
je 0x100b6a43
push dword [eax]
mov ecx, ebx
call fcn.100b8610
mov ecx, dword [0x101541b4]
mov byte [ecx + 0x1e3e], 0
jmp 0x100b6a58
mov ecx, dword [0x101541b4]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0xc4]
add eax, 4
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0xb8]
jne 0x100b6791
mov ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x30]
jmp 0x100b6a8a
mov ecx, dword [0x101541b4]
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 0x100b6b29
mov ecx, dword [esp + 0xbc]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100b6af8
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push ecx
push edx
call fcn.100fa9c7
mov ecx, dword [0x101541b4]
add esp, 8
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
inc edi
mov al, byte [esp + 0x37]
mov dword [esp + 0xc], edi
cmp edi, dword [esp + 0x28]
jb 0x100b5b70
jmp 0x100b6b4c
mov ecx, dword [0x101541b4]
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 0x100b6bf1
mov ecx, dword [esp + 0x98]
mov eax, esi
sub ecx, esi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100b6bc6
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push ecx
push esi
call fcn.100fa9c7
add esp, 8
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
inc ebx
mov dword [esp + 0x8c], ebx
cmp ebx, 6
jae 0x100b6c07
mov edi, dword [esp + 0x10]
jmp 0x100b4eb8
call fcn.10044300
call fcn.10049c90
mov edi, dword [esp + 0x10]
movss xmm1, dword [0x1014b378]
xorps xmm0, xmm0
call fcn.10049810
mov esi, dword [0x101541b4]
xor edx, edx
mov dword [esp + 0x38], 0x43c80000
mov dword [esp + 0x3c], 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.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b6c78
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b6c87
mov byte [esi + 0x1c08], 1
push 0
push 0
lea edx, [esp + 0x40]
mov ecx, str.child
push edx
mov edx, eax
call fcn.10044090
test al, al
je 0x100b7b85
push dword [0x10152d3c]
lea ecx, [esp + 0x20]
push dword [0x1015ca50]
call fcn.100b7c70
mov ebx, eax
mov ecx, str.Enabled
mov edx, ebx
mov dword [esp + 0x8c], ebx
call fcn.10061890
mov esi, dword [0x101541b4]
movss xmm1, dword [0x1014b378]
mov ecx, dword [esi + 0x1b94]
movss xmm0, dword [ecx + 0x24c]
subss xmm0, dword [ecx + 0xc]
subss xmm0, dword [0x1014b2f0]
call fcn.10049810
or dword [esi + 0x1c78], 1
mov dword [esi + 0x1c7c], 0x435c0000
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0xae4]
cmp dword [eax + ecx*8 + 0x14], 0x10
lea edx, [eax + ecx*8]
jb 0x100b6d25
mov edx, dword [edx]
push 0
mov ecx, str.Font
call fcn.10062950
test al, al
je 0x100b6e8c
mov ecx, dword [edi + 0xae8]
mov eax, 0x2aaaaaab
mov esi, dword [edi + 0xae4]
sub ecx, esi
imul ecx
mov dword [esp + 0x1c], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100b6e4c
lea edi, [ebx + 8]
mov dword [esp + 0x38], 0x437a0000
mov dword [esp + 0x3c], 0
xor ebx, ebx
nop dword [eax + eax]
add esi, ebx
mov eax, edi
cmp dword [edi + 0x14], 0x10
jb 0x100b6d8c
mov eax, dword [edi]
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x100b6d96
mov ecx, dword [esi]
push dword [edi + 0x10]
mov edx, dword [esi + 0x10]
push eax
call fcn.1009a400
cmp dword [esi + 0x14], 0x10
mov byte [esp + 0x27], al
jb 0x100b6dae
mov esi, dword [esi]
lea ecx, [esp + 0x38]
mov dl, al
push ecx
push 0
mov ecx, esi
call fcn.10070270
mov esi, dword [esp + 0x1c]
test al, al
je 0x100b6dfe
mov eax, dword [esp + 0x8c]
mov dword [eax + 4], esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xae4]
add eax, ebx
cmp edi, eax
je 0x100b6df4
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x100b6deb
mov eax, dword [eax]
push ecx
push eax
mov ecx, edi
call fcn.10099e70
mov ecx, dword [esp + 0x10]
push edi
call fcn.10083510
cmp byte [esp + 0x27], 0
je 0x100b6e0a
call fcn.100492e0
mov ecx, dword [esp + 0x10]
inc esi
add ebx, 0x18
mov dword [esp + 0x1c], esi
mov eax, dword [ecx + 0xae4]
mov ecx, dword [ecx + 0xae8]
mov dword [esp + 0x28], eax
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
mov esi, dword [esp + 0x28]
jb 0x100b6d80
mov ebx, dword [esp + 0x8c]
mov esi, dword [0x101541b4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b6e70
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b6e80
mov byte [esi + 0x1b46], 1
call fcn.10048bd0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x101541b4]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100b6eb2
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.10062380
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.100c0c70
movss xmm1, dword [0x1014b378]
xorps xmm0, xmm0
call fcn.10049810
mov eax, dword [0x101541b4]
mov edx, str.Bottom
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42b40000
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b6f07
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b6f02
push 0xffffffffffffffff
push esi
push str.Bottom
push 0x10063310
lea edx, [ebx + 0x3c]
mov ecx, 0x10141384
call fcn.10063370
movss xmm1, dword [0x1014b378]
movss xmm0, dword [0x1014b2e8]
call fcn.10049810
lea edx, [ebx + 0x40]
mov ecx, 0x101387d0
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.100c0c70
movss xmm1, dword [0x1014b378]
xorps xmm0, xmm0
call fcn.10049810
mov eax, dword [0x101541b4]
xor edx, edx
mov ecx, 0x101387d0
mov esi, dword [eax + 0x1b94]
mov eax, dword [esi + 0xc8]
add esi, 0xc0
mov dword [esp + 0x28], eax
mov edi, dword [esi]
push dword [eax + edi*4 - 4]
call fcn.1003d7c0
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], eax
cmp edi, ecx
jne 0x100b6fdb
inc edi
test ecx, ecx
je 0x100b6fc2
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x100b6fc7
mov eax, 8
cmp eax, edi
mov ecx, esi
cmovg edi, eax
push edi
call fcn.1004f9f0
mov edi, dword [esi]
mov eax, dword [esi + 8]
jmp 0x100b6fdf
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x38]
mov dword [eax + edi*4], ecx
mov ecx, 0x1013805c
inc dword [esi]
push 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
call fcn.100601e0
test al, al
je 0x100b705a
mov esi, dword [0x101541b4]
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, 0x101314de
call fcn.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b7042
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b7051
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004a680
mov esi, dword [0x101541b4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b707d
mov dword [esi + 0x1c18], 0
jmp 0x100b71cd
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, 0x101314de
call fcn.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b70ad
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b70bc
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004a9c0
test al, al
je 0x100b71cd
mov eax, dword [0x101541b4]
mov edx, 0x10141364
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 0x100b70f5
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b70f0
push 0xffffffffffffffff
push esi
push 0x10141364
push 0x10063310
lea edx, [ebx + 0x5c]
mov ecx, str.Type
call fcn.10063370
mov eax, dword [0x101541b4]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x38], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x34], 0x3f000000
push eax
push 3
lea eax, [ebx + 0x60]
push eax
call fcn.100657c0
push 0
lea edx, [ebx + 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.100c0c70
mov esi, dword [0x101541b4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b71b1
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b71c1
mov byte [esi + 0x1b46], 1
call fcn.10048bd0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x101541b4]
lea edx, [ebx + 0x84]
push 0
push 0
mov ecx, str.Name
mov eax, dword [eax + 0x1b94]
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.100c0c70
movss xmm1, dword [0x1014b378]
movss xmm0, dword [0x1014b2e8]
call fcn.10049810
mov eax, dword [0x1015ca50]
cmp eax, 2
jae 0x100b77c8
push dword [0x10152d3c]
lea ecx, [esp + 0x24]
push eax
call fcn.100b8000
mov edi, eax
mov ecx, str.Weapon
push 0
push 0
mov dword [esp + 0x28], edi
lea edx, [edi + 0xa0]
lea esi, [edx + 0x15]
push esi
lea esi, [edx + 0x10]
push esi
lea esi, [edx + 0x14]
push esi
lea eax, [edx + 0xc]
push eax
call fcn.100c0c70
push 0
lea edx, [edi + 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.100c0c70
movss xmm1, dword [0x1014b378]
movss xmm0, dword [0x1014b2e8]
call fcn.10049810
lea edx, [edi + 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.100c0c70
lea edx, [edi + 0xcc]
mov ecx, str.Audible_Only
call fcn.10061890
movss xmm1, dword [0x1014b378]
movss xmm0, dword [0x1014b2e8]
call fcn.10049810
lea edx, [edi + 0xcd]
mov ecx, str.Spotted_Only
call fcn.10061890
lea edx, [edi + 0x108]
mov ecx, str.Head_Box
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.100c0c70
movss xmm1, dword [0x1014b378]
xorps xmm0, xmm0
call fcn.10049810
mov eax, dword [0x101541b4]
mov esi, dword [eax + 0x1b94]
mov eax, dword [esi + 0xc8]
add esi, 0xc0
mov dword [esp + 0x28], eax
mov edi, dword [esi]
push dword [eax + edi*4 - 4]
xor edx, edx
mov ecx, str.Head_Box
call fcn.1003d7c0
mov dword [esp + 0x30], eax
mov eax, dword [esi + 4]
cmp edi, eax
jne 0x100b738b
lea ecx, [edi + 1]
test eax, eax
je 0x100b7372
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
jmp 0x100b7377
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1004f9f0
mov edi, dword [esi]
mov eax, dword [esi + 8]
jmp 0x100b738f
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x38]
mov dword [eax + edi*4], ecx
mov ecx, 0x1013805c
inc dword [esi]
push 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
call fcn.100601e0
test al, al
je 0x100b740a
mov esi, dword [0x101541b4]
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, 0x101314de
call fcn.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b73f2
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b7401
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004a680
mov esi, dword [0x101541b4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b742d
mov dword [esi + 0x1c18], 0
jmp 0x100b758a
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, 0x101314de
call fcn.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b745d
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b746c
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004a9c0
test al, al
je 0x100b758a
mov eax, dword [0x101541b4]
mov edx, 0x10141364
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 0x100b74a5
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b74a0
push 0xffffffffffffffff
push esi
mov esi, dword [esp + 0x28]
mov ecx, str.Type
push 0x10141364
push 0x10063310
lea edx, [esi + 0x124]
call fcn.10063370
mov eax, dword [0x101541b4]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x38], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x34], 0x3f000000
push eax
push 3
lea eax, [esi + 0x128]
push eax
call fcn.100657c0
push 0
lea edx, [esi + 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.100c0c70
mov esi, dword [0x101541b4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b756e
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b757e
mov byte [esi + 0x1b46], 1
call fcn.10048bd0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x101541b4]
movss xmm1, dword [0x1014b378]
movss xmm0, dword [0x1014b2e8]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
call fcn.10049810
mov edx, dword [esp + 0x20]
mov ecx, str.Health_Bar
lea edx, [edx + 0xe5]
call fcn.10061890
movss xmm1, dword [0x1014b378]
xorps xmm0, xmm0
call fcn.10049810
mov eax, dword [0x101541b4]
xor edx, edx
mov ecx, str.Health_Bar
mov esi, dword [eax + 0x1b94]
mov eax, dword [esi + 0xc8]
add esi, 0xc0
mov dword [esp + 0x28], eax
mov edi, dword [esi]
push dword [eax + edi*4 - 4]
call fcn.1003d7c0
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], eax
cmp edi, ecx
jne 0x100b7635
inc edi
test ecx, ecx
je 0x100b761c
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x100b7621
mov eax, 8
cmp eax, edi
mov ecx, esi
cmovg edi, eax
push edi
call fcn.1004f9f0
mov edi, dword [esi]
mov eax, dword [esi + 8]
jmp 0x100b7639
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov ecx, 0x1013805c
mov dword [eax + edi*4], edx
lea edx, [esp + 0x38]
inc dword [esi]
push 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
call fcn.100601e0
test al, al
je 0x100b76b4
mov esi, dword [0x101541b4]
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, 0x101314de
call fcn.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b769c
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b76ab
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004a680
mov esi, dword [0x101541b4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b76d7
mov dword [esi + 0x1c18], 0
jmp 0x100b7b04
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, 0x101314de
call fcn.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b7707
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b7716
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004a9c0
test al, al
je 0x100b7b04
mov eax, dword [0x101541b4]
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 0x100b7750
sub ecx, esi
inc edx
add edx, ecx
inc edi
cmp byte [edx], al
jne 0x100b7747
mov esi, dword [esp + 0x20]
mov ecx, str.Type
push 0xffffffffffffffff
push edi
push str.Gradient
push 0x10063310
lea edx, [esi + 0xe8]
call fcn.10063370
cmp dword [esi + 0xe8], 1
jne 0x100b7ac4
movss xmm1, dword [0x1014b378]
xorps xmm0, xmm0
call fcn.10049810
push 0
mov edx, esi
mov ecx, 0x101314de
add edx, 0xd0
push 0
push 0
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c0c70
jmp 0x100b7ac4
jne 0x100b78b7
mov esi, dword [0x10152d3c]
mov edx, esi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0xf
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100b7800
sub edx, ecx
lea ecx, [esp + 0x9c]
push edx
push esi
call fcn.10099e70
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x16c]
push eax
lea ecx, [edi + 0xa50]
call fcn.100b8ed0
mov edx, dword [esp + 0xb0]
mov esi, dword [eax]
cmp edx, 0x10
jb 0x100b7870
mov ecx, dword [esp + 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b7866
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba0
push edx
push ecx
call fcn.100fa9c7
add esp, 8
push 0
lea edx, [esi + 0xc0]
mov dword [esp + 0xb0], 0
push 0
lea eax, [edx + 0x15]
mov dword [esp + 0xb8], 0xf
push eax
lea eax, [edx + 0x10]
mov byte [esp + 0xa8], 0
push eax
lea eax, [edx + 0x14]
mov ecx, str.Ammo
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c0c70
jmp 0x100b7b15
cmp eax, 3
jne 0x100b7b15
mov esi, dword [0x10152d3c]
mov edx, esi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b78f0
sub edx, ecx
lea ecx, [esp + 0x9c]
push edx
push esi
call fcn.10099e70
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x16c]
push eax
lea ecx, [edi + 0xa70]
call fcn.100b8cd0
mov edx, dword [esp + 0xb0]
mov edi, dword [eax]
cmp edx, 0x10
jb 0x100b7960
mov ecx, dword [esp + 0x9c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b7956
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b7ba5
push edx
push ecx
call fcn.100fa9c7
add esp, 8
lea edx, [edi + 0xc0]
mov dword [esp + 0xac], 0
mov ecx, str.Trails
mov dword [esp + 0xb0], 0xf
mov byte [esp + 0x9c], 0
call fcn.10061890
movss xmm1, dword [0x1014b378]
movss xmm0, dword [0x1014b2f8]
call fcn.10049810
mov ecx, str.Trails
call fcn.10049410
push 0
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], 0
mov ecx, 0x1013805c
mov dword [esp + 0x40], 0
call fcn.100601e0
test al, al
je 0x100b7a1f
mov esi, dword [0x101541b4]
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, 0x101314de
call fcn.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b7a07
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b7a16
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004a680
mov esi, dword [0x101541b4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b7a42
mov dword [esi + 0x1c18], 0
jmp 0x100b7b04
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, 0x101314de
call fcn.1003d7c0
cmp dword [esi + 0x1bc8], eax
jne 0x100b7a72
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b7a81
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004a9c0
test al, al
je 0x100b7b04
lea eax, [edi + 0xc4]
push eax
push str.Local_Player
call fcn.100b83c0
lea eax, [edi + 0xe8]
push eax
push 0x1013f940
call fcn.100b83c0
lea eax, [edi + 0x10c]
push eax
push 0x1013f948
call fcn.100b83c0
mov esi, dword [0x101541b4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b7ae8
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b7af8
mov byte [esi + 0x1b46], 1
call fcn.10048bd0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x101541b4]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
mov eax, dword [0x101541b4]
lea esi, [ebx + 0x9c]
push 0x20000
push str._.1fm
mov edx, 8
mov dword [esp + 0x38], 0x3ecccccd
or dword [eax + 0x1c78], 1
mov ecx, str.Text_Cull_Distance
mov dword [eax + 0x1c7c], 0x42be0000
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x34], 0x3f4ccccd
push eax
push esi
call fcn.100661b0
movss xmm1, dword [esi]
movss xmm0, dword [0x1014b324]
comiss xmm1, xmm0
ja 0x100b7b81
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x100b7b81
movaps xmm0, xmm1
movss dword [esi], xmm0
call fcn.10044300
cmp byte [esp + 0x83], 0
jne 0x100b7b99
call fcn.10048bd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10109b42
call fcn.10109b42
nop
cmp byte [edi + 0xb], cl
adc byte [eax], bh
dec edi
or edx, dword [eax]
lds ecx, [edi + 0xb]
adc cl, bh
push eax
or edx, dword [eax]
sbb dword [ebx + 0xb], edx
adc byte [ecx], bl
push ebx
or edx, dword [eax]
cmp dword [ebx + 0xb], edx
adc bh, al
push ebx
or edx, dword [eax]
invalid