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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x254
mov edx, dword [0x10187fc4]
lea eax, [esp + 0x8c]
push ebx
push esi
push edi
push eax
lea edx, [edx + 0x13c4]
mov dword [esp + 0x9c], 0x42c80000
mov ecx, 0x10153538
mov dword [esp + 0xa0], 0
call fcn.100a5b90
mov eax, dword [0x1026fb74]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100ba289
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100ff180
lea edx, [esp + 0x98]
mov dword [esp + 0x98], 0x432a0000
mov ecx, str.list
mov dword [esp + 0x9c], 0x43960000
call fcn.1010df80
test al, al
je 0x100bc002
xor ebx, ebx
mov dword [esp + 0x1a8], 0x10153770
mov dword [esp + 0x1ac], 0x10153768
mov dword [esp + 0x1b0], 0x10153b64
mov dword [esp + 0x1b4], str.Projectiles
mov dword [esp + 0x1b8], str.Loot_Crates
mov dword [esp + 0x1bc], str.Other_Entities
mov dword [esp + 0x94], ebx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x194], ebx
cmp dword [0x10272d78], ebx
jne 0x100ba341
mov ecx, dword [0x10187614]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100ba324
push 3
sub edx, esi
push 0x10153b4c
call fcn.1002b530
test al, al
je 0x100ba341
mov dl, 1
jmp 0x100ba343
xor dl, dl
mov ecx, dword [esp + ebx*4 + 0x1a8]
lea eax, [esp + 0x190]
push eax
push 0
call fcn.1010d890
test al, al
je 0x100ba36d
mov dword [0x10272d78], ebx
mov dword [0x10187614], 0x10153b4c
xor ecx, ecx
call fcn.100f1f90
test al, al
je 0x100ba75c
cmp ebx, 3
ja case.default.0x100ba385
jmp dword [ebx*4 + 0x100bd2a8]
push 0x10153b4c
push ebx
call fcn.100bd710
mov edx, dword [0x1026fb74]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100ba727
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.1012a730
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x10]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100f34c0
push 0x168
lea ecx, [esi + 0x1eb0]
call fcn.100f34c0
mov edx, esi
mov ecx, 0x5a
mov esi, dword [esp + 0xc]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x168
jmp 0x100ba727
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0xe0], xmm0
mov word [esp + 0xe0], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0xe2], al
lea ecx, [ecx + 0x1428]
lea eax, [esp + 0xe0]
mov dword [esp + 0xf0], 3
push eax
lea eax, [esp + 0x1c4]
mov dword [esp + 0xf8], 0xf
push eax
mov byte [esp + 0xeb], 0
call fcn.10099160
mov edx, dword [0x1026fb74]
mov dword [esp + 0x10], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0xc], eax
jne 0x100ba4f3
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.1012a730
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100f34c0
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.100f34c0
mov esi, dword [esp + 0xc]
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 ecx, dword [esp + 0xf4]
cmp ecx, 0xf
jbe 0x100ba53b
mov edx, dword [esp + 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba531
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
jmp 0x100ba733
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0xc0], xmm0
mov word [esp + 0xc0], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0xc2], al
lea ecx, [ecx + 0x1448]
lea eax, [esp + 0xc0]
mov dword [esp + 0xd0], 3
push eax
lea eax, [esp + 0x1cc]
mov dword [esp + 0xd8], 0xf
push eax
mov byte [esp + 0xcb], 0
call fcn.10098f70
mov edx, dword [0x1026fb74]
mov dword [esp + 0x10], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0xc], eax
jne 0x100ba63c
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.1012a730
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100f34c0
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.100f34c0
mov esi, dword [esp + 0xc]
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 ecx, dword [esp + 0xd4]
cmp ecx, 0xf
jbe 0x100ba684
mov edx, dword [esp + 0xc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba67a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0xf
mov byte [esp + 0xc0], 0
jmp 0x100ba733
push 0x10153b4c
push ebx
call fcn.100bd360
mov edx, dword [0x1026fb74]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100ba727
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.1012a730
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x10]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100f34c0
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.100f34c0
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0xc]
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 [0x1026fb74]
test byte [esi + 0x1e40], 1
jne 0x100ba747
call fcn.100ec7b0
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100ba755
call fcn.100f1eb0
mov byte [esi + 0x1e3d], 0
call fcn.100f21e0
test al, al
je 0x100bada3
xor edx, edx
mov ecx, str.Player
call fcn.100f2260
test eax, eax
je 0x100ba8ed
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100ba788
jmp dword [ebx*4 + 0x100bd2b8]
push esi
push ecx
push 0x10153b4c
push ebx
call fcn.100bd710
add esp, 4
mov ecx, eax
call fcn.100bdc90
jmp 0x100ba8ed
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0x30], xmm0
mov word [esp + 0x30], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0x32], al
lea ecx, [ecx + 0x1428]
lea eax, [esp + 0x30]
mov dword [esp + 0x40], 3
push eax
lea eax, [esp + 0x1d4]
mov dword [esp + 0x48], 0xf
push eax
mov byte [esp + 0x3b], 0
call fcn.10099160
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x100ba8ed
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba835
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100ba8ed
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0x30], xmm0
mov word [esp + 0x30], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0x32], al
lea ecx, [ecx + 0x1448]
lea eax, [esp + 0x30]
mov dword [esp + 0x40], 3
push eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0x48], 0xf
push eax
mov byte [esp + 0x3b], 0
call fcn.10098f70
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x100ba8ed
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba8ca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100ba8ed
push esi
push ecx
push 0x10153b4c
push ebx
call fcn.100bd360
add esp, 4
mov ecx, eax
call fcn.100bdde0
xor edx, edx
mov ecx, str.Weapon
call fcn.100f2260
test eax, eax
je 0x100baa90
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100ba90c
jmp dword [ebx*4 + 0x100bd2c8]
push edi
push ecx
push 0x10153b4c
push ebx
call fcn.100bd710
jmp 0x100baa86
movzx eax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0x30], xmm0
mov word [esp + 0x30], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0x32], al
lea ecx, [ecx + 0x1428]
lea eax, [esp + 0x30]
mov dword [esp + 0x40], 3
push eax
lea eax, [esp + 0x25c]
mov dword [esp + 0x48], 0xf
push eax
mov byte [esp + 0x3b], 0
call fcn.10099160
push edi
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100bdde0
movups xmm0, xmmword [edi + 0xa0]
movups xmmword [esi + 0xc0], xmm0
mov eax, dword [edi + 0xb0]
mov dword [esi + 0xd0], eax
movzx eax, word [edi + 0xb4]
mov word [esi + 0xd4], ax
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x100baa90
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba9d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100baa90
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0x30], xmm0
mov word [esp + 0x30], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0x32], al
lea ecx, [ecx + 0x1448]
lea eax, [esp + 0x30]
mov dword [esp + 0x40], 3
push eax
lea eax, [esp + 0x254]
mov dword [esp + 0x48], 0xf
push eax
mov byte [esp + 0x3b], 0
call fcn.10098f70
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x100baa90
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100baa6d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100baa90
push edi
push ecx
push 0x10153b4c
push ebx
call fcn.100bd360
add esp, 4
mov ecx, eax
call fcn.100bdde0
xor edx, edx
mov ecx, str.Projectile
call fcn.100f2260
test eax, eax
je 0x100bac1d
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100baaaf
jmp dword [ebx*4 + 0x100bd2d8]
push esi
push ecx
push 0x10153b4c
push ebx
call fcn.100bd710
jmp 0x100bac13
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0x30], xmm0
mov word [esp + 0x30], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0x32], al
lea ecx, [ecx + 0x1428]
lea eax, [esp + 0x30]
mov dword [esp + 0x40], 3
push eax
lea eax, [esp + 0x24c]
mov dword [esp + 0x48], 0xf
push eax
mov byte [esp + 0x3b], 0
call fcn.10099160
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x100bac1d
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bab52
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100bac1d
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0x30], xmm0
mov word [esp + 0x30], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0x32], al
lea ecx, [ecx + 0x1448]
lea eax, [esp + 0x30]
mov dword [esp + 0x40], 3
push eax
lea eax, [esp + 0x224]
mov dword [esp + 0x48], 0xf
push eax
mov byte [esp + 0x3b], 0
call fcn.10098f70
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100bdde0
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x100bac1d
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100babfa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100bac1d
push esi
push ecx
push 0x10153b4c
push ebx
call fcn.100bd360
add esp, 4
mov ecx, eax
call fcn.100bdde0
xor edx, edx
mov ecx, str.Entity
call fcn.100f2260
test eax, eax
je 0x100bad97
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100bac3c
jmp dword [ebx*4 + 0x100bd2e8]
push esi
push ecx
push 0x10153b4c
push ebx
call fcn.100bd710
jmp 0x100bad8d
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0x30], xmm0
mov word [esp + 0x30], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0x32], al
lea ecx, [ecx + 0x1428]
lea eax, [esp + 0x30]
mov dword [esp + 0x40], 3
push eax
lea eax, [esp + 0x21c]
mov dword [esp + 0x48], 0xf
push eax
mov byte [esp + 0x3b], 0
call fcn.10099160
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x100bad97
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bacdf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100bad97
mov ax, word [0x10153b4c]
xorps xmm0, xmm0
mov ecx, dword [0x10187fc4]
movaps xmmword [esp + 0x60], xmm0
mov word [esp + 0x60], ax
mov al, byte [0x10153b4e]
mov byte [esp + 0x62], al
lea ecx, [ecx + 0x1448]
lea eax, [esp + 0x60]
mov dword [esp + 0x70], 3
push eax
lea eax, [esp + 0x20c]
mov dword [esp + 0x78], 0xf
push eax
mov byte [esp + 0x6b], 0
call fcn.10098f70
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100bad97
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bad74
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100bad97
push esi
push ecx
push 0x10153b4c
push ebx
call fcn.100bd360
add esp, 4
mov ecx, eax
call fcn.100bdde0
mov eax, dword [0x1026fb74]
mov byte [eax + 0x1e3e], 0
mov ecx, ebx
call fcn.100ed0e0
mov ecx, dword [0x1026fb74]
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.0x100badf9
jmp dword [ebx*4 + 0x100bd2f8]
lea ecx, [esp + 0x98]
mov dword [esp + 0x98], 0x10153b50
push ecx
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], 0x10153b58
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.100c80c0
mov esi, dword [esp + 0x20]
jmp 0x100bafcb
mov dword [esp + 0x60], 0x1015cd7c
mov dword [esp + 0x64], str.SMGs
mov dword [esp + 0x68], 0x1015cd8c
mov dword [esp + 0x6c], str.Sniper_Rifles
mov dword [esp + 0x70], str.Shotguns
mov dword [esp + 0x74], str.Machineguns
mov dword [esp + 0x78], str.Grenades
mov dword [esp + 0x7c], str.Melee
mov dword [esp + 0x80], str.Other
lea ecx, [esp + 0x60]
push ecx
lea eax, [esp + 0x88]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.100c80c0
mov esi, dword [esp + 0x20]
jmp 0x100bafcb
mov dword [esp + 0x60], str.Flashbang
mov dword [esp + 0x64], str.HE_Grenade
mov dword [esp + 0x68], str.Breach_Charge
mov dword [esp + 0x6c], str.Bump_Mine
mov dword [esp + 0x70], str.Decoy_Grenade
mov dword [esp + 0x74], str.Molotov
mov dword [esp + 0x78], str.TA_Grenade
mov dword [esp + 0x7c], str.Smoke_Grenade
mov dword [esp + 0x80], str.Snowball
jmp 0x100bae84
lea ecx, [esp + 0x60]
mov dword [esp + 0x60], str.Pistol_Case
push ecx
lea eax, [esp + 0x7c]
mov dword [esp + 0x68], str.Light_Case
push eax
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x74], str.Heavy_Case
mov dword [esp + 0x78], str.Explosive_Case
mov dword [esp + 0x7c], str.Tools_Case
mov dword [esp + 0x80], str.Cash_Dufflebag
call fcn.100c80c0
mov esi, dword [esp + 0x20]
jmp 0x100bafcb
lea ecx, [esp + 0x60]
mov dword [esp + 0x60], str.Defuse_Kit
push ecx
lea eax, [esp + 0x8c]
mov dword [esp + 0x68], str.Chicken
push eax
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x74], str.Planted_C4
mov dword [esp + 0x78], str.Hostage
mov dword [esp + 0x7c], str.Sentry
mov dword [esp + 0x80], str.Cash
mov dword [esp + 0x84], str.Ammo_Box
mov dword [esp + 0x88], str.Radar_Jammer
mov dword [esp + 0x8c], str.Snowball_Pile
mov dword [esp + 0x90], str.Collectable_Coin
call fcn.100c80c0
mov esi, dword [esp + 0x20]
jmp 0x100bafcb
xor esi, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
push 0x10153b4c
push ebx
call fcn.100bd360
mov edx, dword [esp + 0x24]
sub edx, esi
sar edx, 2
mov cl, byte [eax]
xor eax, eax
mov byte [esp + 0x2f], cl
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x100bbf8c
nop word [eax + eax]
lea edi, [eax*4]
test cl, cl
je 0x100bb01d
push dword [esi + edi]
push ebx
call fcn.100bd360
cmp byte [eax], 0
je 0x100bbab5
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
cmp dword [0x10272d78], ebx
jne 0x100bb089
cmp byte [0x10272d68], 0
jne 0x100bb089
mov edx, dword [0x10187614]
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb050
sub edx, ecx
mov ecx, dword [edi + esi]
mov esi, ecx
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x100bb065
sub esi, dword [esp + 0xc]
push esi
push ecx
mov ecx, dword [0x10187614]
call fcn.1002b530
mov esi, dword [esp + 0x20]
test al, al
je 0x100bb089
mov dl, 1
jmp 0x100bb08b
xor dl, dl
mov ecx, dword [edi + esi]
lea eax, [esp + 0x198]
push eax
push 0
call fcn.1010d890
test al, al
je 0x100bb0b6
mov eax, dword [edi + esi]
mov dword [0x10272d78], ebx
mov dword [0x10187614], eax
mov byte [0x10272d68], 0
xor ecx, ecx
call fcn.100f1f90
test al, al
je 0x100bb4ac
cmp ebx, 3
ja case.default.0x100bb0ce
jmp dword [ebx*4 + 0x100bd310]
push dword [edi + esi]
push ebx
call fcn.100bd710
mov edx, dword [0x1026fb74]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100bb473
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.1012a730
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x10]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100f34c0
push 0x168
lea ecx, [esi + 0x1eb0]
call fcn.100f34c0
mov edx, esi
mov ecx, 0x5a
mov esi, dword [esp + 0xc]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x168
jmp 0x100bb473
mov esi, dword [edi + esi]
xorps xmm0, xmm0
mov eax, dword [0x10187fc4]
mov edx, esi
add eax, 0x1428
movaps xmmword [esp + 0x150], xmm0
mov dword [esp + 0xc], eax
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb193
sub edx, ecx
lea ecx, [esp + 0x150]
push edx
push esi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x150]
push eax
lea eax, [esp + 0x23c]
push eax
call fcn.10099160
mov edx, dword [0x1026fb74]
mov dword [esp + 0x10], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0xc], eax
jne 0x100bb23d
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.1012a730
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100f34c0
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.100f34c0
mov esi, dword [esp + 0xc]
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 ecx, dword [esp + 0x164]
cmp ecx, 0xf
jbe 0x100bb285
mov edx, dword [esp + 0x150]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb27b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xf
mov byte [esp + 0x150], 0
jmp 0x100bb47f
mov esi, dword [edi + esi]
xorps xmm0, xmm0
mov eax, dword [0x10187fc4]
mov edx, esi
add eax, 0x1448
movaps xmmword [esp + 0x170], xmm0
mov dword [esp + 0xc], eax
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 0
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb2e0
sub edx, ecx
lea ecx, [esp + 0x170]
push edx
push esi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x170]
push eax
lea eax, [esp + 0x214]
push eax
call fcn.10098f70
mov edx, dword [0x1026fb74]
mov dword [esp + 0x10], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0xc], eax
jne 0x100bb38a
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.1012a730
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100f34c0
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.100f34c0
mov esi, dword [esp + 0xc]
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 ecx, dword [esp + 0x184]
cmp ecx, 0xf
jbe 0x100bb3d2
mov edx, dword [esp + 0x170]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb3c8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 0xf
mov byte [esp + 0x170], 0
jmp 0x100bb47f
push dword [edi + esi]
push ebx
call fcn.100bd360
mov edx, dword [0x1026fb74]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100bb473
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.1012a730
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x10]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100f34c0
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.100f34c0
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0xc]
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 [0x1026fb74]
test byte [esi + 0x1e40], 1
jne 0x100bb493
call fcn.100ec7b0
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100bb4a1
call fcn.100f1eb0
mov byte [esi + 0x1e3d], 0
mov esi, dword [esp + 0x20]
call fcn.100f21e0
test al, al
je 0x100bbab5
xor edx, edx
mov ecx, str.Player
call fcn.100f2260
test eax, eax
je 0x100bb5a2
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100bb4d8
jmp dword [ebx*4 + 0x100bd320]
mov eax, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0x24]
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100bd710
add esp, 4
mov ecx, eax
call fcn.100bdc90
jmp 0x100bb5a6
mov eax, dword [0x10187fc4]
xorps xmm0, xmm0
mov edi, dword [esp + 0x20]
add eax, 0x1428
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov edi, dword [edi + eax*4]
mov edx, edi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb537
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x22c]
push eax
call fcn.10099160
mov ecx, dword [eax]
push esi
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100bb5a2
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb598
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
mov esi, dword [esp + 0x20]
xor edx, edx
mov ecx, str.Weapon
call fcn.100f2260
test eax, eax
je 0x100bb7f6
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100bb5c5
jmp dword [ebx*4 + 0x100bd330]
mov eax, dword [0x10187fc4]
xorps xmm0, xmm0
mov edi, dword [esp + 0x20]
add eax, 0x1448
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov edi, dword [edi + eax*4]
mov edx, edi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb602
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x234]
push eax
call fcn.10098f70
jmp 0x100bb561
mov eax, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0x24]
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100bd360
add esp, 4
mov ecx, eax
call fcn.100bdde0
jmp 0x100bb5a6
mov eax, dword [esp + 0x14]
push edi
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100bd710
jmp 0x100bb7ec
mov eax, dword [0x10187fc4]
xorps xmm0, xmm0
add eax, 0x1428
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov esi, dword [esi + eax*4]
mov edx, esi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb6a0
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push esi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x244]
push eax
call fcn.10099160
push edi
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100bdde0
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 ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100bb7f6
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb72d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100bb7f6
mov eax, dword [0x10187fc4]
xorps xmm0, xmm0
add eax, 0x1448
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov esi, dword [esi + eax*4]
mov edx, esi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb770
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push esi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x1e4]
push eax
call fcn.10098f70
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100bb7f6
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb7d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
jmp 0x100bb7f6
mov eax, dword [esp + 0x14]
push edi
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100bd360
add esp, 4
mov ecx, eax
call fcn.100bdde0
xor edx, edx
mov ecx, str.Projectile
call fcn.100f2260
test eax, eax
je 0x100bb8df
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100bb815
jmp dword [ebx*4 + 0x100bd340]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
push esi
push ecx
push dword [edi + eax*4]
push ebx
call fcn.100bd710
add esp, 4
mov ecx, eax
call fcn.100bdde0
jmp 0x100bb8e3
mov eax, dword [0x10187fc4]
xorps xmm0, xmm0
mov edi, dword [esp + 0x20]
add eax, 0x1428
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov edi, dword [edi + eax*4]
mov edx, edi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb874
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x1ec]
push eax
call fcn.10099160
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100bb8df
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb8d5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
mov edi, dword [esp + 0x20]
xor edx, edx
mov ecx, str.Entity
call fcn.100f2260
test eax, eax
je 0x100bbaa5
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100bb902
jmp dword [ebx*4 + 0x100bd350]
mov eax, dword [0x10187fc4]
xorps xmm0, xmm0
mov edi, dword [esp + 0x20]
add eax, 0x1448
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov edi, dword [edi + eax*4]
mov edx, edi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb940
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x1f4]
push eax
call fcn.10098f70
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100bdde0
add esi, 0xa0
mov ecx, 0x1c
add edi, 0xc0
rep movsd dword es:[edi], dword [esi]
jmp 0x100bb8a9
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
push esi
push ecx
push dword [edi + eax*4]
push ebx
call fcn.100bd360
add esp, 4
mov ecx, eax
call fcn.100bdde0
jmp 0x100bb8e3
mov eax, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0x24]
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100bd710
add esp, 4
mov ecx, eax
call fcn.100bdde0
jmp 0x100bbaa9
mov eax, dword [0x10187fc4]
xorps xmm0, xmm0
add eax, 0x1428
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov edi, dword [edi + eax*4]
mov edx, edi
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bba10
sub edx, ecx
lea ecx, [esp + 0x120]
push edx
push edi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x1fc]
push eax
call fcn.10099160
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x134]
cmp ecx, 0xf
jbe 0x100bba87
mov edx, dword [esp + 0x120]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bba7d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0xf
mov byte [esp + 0x120], 0
mov esi, dword [esp + 0x20]
mov eax, dword [0x1026fb74]
mov byte [eax + 0x1e3e], 0
cmp ebx, 2
jne 0x100bbf75
mov ecx, dword [0x1026fb74]
mov edi, dword [esp + 0x14]
push edi
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
lea eax, [esp + 0x148]
push eax
call fcn.100bd850
push dword [esi + edi*4]
push ebx
call fcn.100bd360
mov al, byte [eax]
mov byte [esp + 0x93], al
mov eax, dword [esp + 0x144]
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x148]
je 0x100bbf23
mov edi, dword [eax]
xorps xmm0, xmm0
mov esi, dword [0x10187fc4]
mov edx, edi
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100bbb70
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push edi
call fcn.100231d0
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esi + 0x1428]
call fcn.10099160
mov ecx, dword [esp + 0xb4]
mov ebx, dword [eax]
add ebx, 0x20
mov dword [esp + 0x10], ebx
cmp ecx, 0xf
jbe 0x100bbbe7
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bbbdd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
cmp byte [esp + 0x2f], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xf
mov byte [esp + 0xa0], 0
jne 0x100bbc16
cmp byte [esp + 0x93], 0
je 0x100bbc1f
cmp byte [ebx], 0
je 0x100bbf00
cmp dword [0x10272d78], 2
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
jne 0x100bbd7e
cmp byte [0x10272d68], 0
je 0x100bbd7e
mov ecx, dword [0x10187614]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bbc54
sub edx, esi
mov esi, edi
lea eax, [esi + 1]
mov dword [esp + 0x1c], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x100bbc66
sub esi, dword [esp + 0x1c]
push esi
push edi
call fcn.1002b530
test al, al
je 0x100bbd7e
mov dl, 1
jmp 0x100bbd80
mov eax, dword [0x10187fc4]
xorps xmm0, xmm0
add eax, 0x1448
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov edi, dword [edi + eax*4]
mov edx, edi
movaps xmmword [esp + 0x100], xmm0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bbcc2
sub edx, ecx
lea ecx, [esp + 0x100]
push edx
push edi
call fcn.100231d0
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x204]
push eax
call fcn.10098f70
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bdde0
mov ecx, dword [esp + 0x114]
cmp ecx, 0xf
jbe 0x100bbd39
mov edx, dword [esp + 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bbd2f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xf
mov byte [esp + 0x100], 0
jmp 0x100bbaa5
mov eax, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0x24]
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100bd360
add esp, 4
mov ecx, eax
call fcn.100bdde0
jmp 0x100bbaa9
xor dl, dl
lea eax, [esp + 0x58]
mov ecx, edi
push eax
push 0
call fcn.1010d890
test al, al
je 0x100bbda9
mov dword [0x10272d78], 2
mov dword [0x10187614], edi
mov byte [0x10272d68], 1
xor ecx, ecx
call fcn.100f1f90
test al, al
je 0x100bbe5a
mov esi, dword [0x1026fb74]
mov ebx, esi
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100bbe27
push 0x20
lea esi, [ebx + 0x1e60]
push str.Weapon
push esi
call fcn.1012a730
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.100f34c0
push 0xb8
lea ecx, [ebx + 0x1eb0]
call fcn.100f34c0
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x2e
mov esi, dword [esp + 0x10]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x1026fb74]
mov dword [ebx + 0x1e50], 0xb8
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
test byte [esi + 0x1e40], 1
jne 0x100bbe41
call fcn.100ec7b0
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100bbe4f
call fcn.100f1eb0
mov ebx, dword [esp + 0x10]
mov byte [esi + 0x1e3d], 0
call fcn.100f21e0
test al, al
je 0x100bbf00
xor edx, edx
mov ecx, str.Player
call fcn.100f2260
test eax, eax
je 0x100bbe80
push dword [eax]
mov ecx, ebx
call fcn.100bdde0
xor edx, edx
mov ecx, str.Weapon
call fcn.100f2260
test eax, eax
je 0x100bbec2
mov esi, dword [eax]
mov ecx, ebx
push esi
call fcn.100bdde0
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.100f2260
test eax, eax
je 0x100bbedb
push dword [eax]
mov ecx, ebx
call fcn.100bdde0
xor edx, edx
mov ecx, str.Entity
call fcn.100f2260
test eax, eax
je 0x100bbef4
push dword [eax]
mov ecx, ebx
call fcn.100bdde0
mov eax, dword [0x1026fb74]
mov byte [eax + 0x1e3e], 0
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x148]
jne 0x100bbb40
mov ebx, dword [esp + 0x94]
mov esi, dword [esp + 0x20]
mov ecx, dword [0x1026fb74]
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]
lea ecx, [esp + 0x144]
movss dword [eax + 0x10c], xmm0
addss xmm0, dword [eax + 0xc]
addss xmm0, dword [eax + 0x110]
movss dword [eax + 0xcc], xmm0
call fcn.100278e0
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x2f]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
jb 0x100bb000
mov ecx, dword [0x1026fb74]
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]
lea ecx, [esp + 0x20]
dec dword [eax + 0xc0]
call fcn.100278e0
inc ebx
mov dword [esp + 0x94], ebx
cmp ebx, 6
jb 0x100ba311
call fcn.100e7fb0
call fcn.100ed970
movss xmm1, dword [0x101771bc]
xorps xmm0, xmm0
call fcn.100ed470
mov esi, dword [0x1026fb74]
xor edx, edx
mov dword [esp + 0x58], 0x43c80000
mov dword [esp + 0x5c], 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.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bc065
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc074
mov byte [esi + 0x1c08], 1
push 0
push 0
lea edx, [esp + 0x60]
mov ecx, str.child
push edx
mov edx, eax
call fcn.100e7db0
test al, al
je 0x100bd292
push dword [0x10187614]
push dword [0x10272d78]
call fcn.100bd360
mov ebx, eax
mov ecx, str.Enabled
mov edx, ebx
mov dword [esp + 0x94], ebx
call fcn.100fe700
mov esi, dword [0x1026fb74]
movss xmm1, dword [0x101771bc]
mov ecx, dword [esi + 0x1b94]
movss xmm0, dword [ecx + 0x24c]
subss xmm0, dword [ecx + 0xc]
subss xmm0, dword [0x101770c4]
call fcn.100ed470
or dword [esi + 0x1c78], 1
mov dword [esi + 0x1c7c], 0x435c0000
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*2]
mov eax, dword [0x10187fc4]
mov eax, dword [eax + 0x3624]
cmp dword [eax + ecx*8 + 0x14], 0xf
lea edx, [eax + ecx*8]
jbe 0x100bc113
mov edx, dword [edx]
push 0
mov ecx, str.Font
call fcn.100ff400
test al, al
je 0x100bc286
mov ecx, dword [0x10187fc4]
mov eax, 0x2aaaaaab
mov dword [esp + 0x14], 0
mov edx, dword [ecx + 0x3628]
sub edx, dword [ecx + 0x3624]
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100bc246
xor esi, esi
mov dword [esp + 0x58], 0x437a0000
mov dword [esp + 0x5c], 0
lea edi, [ebx + 8]
mov dword [esp + 0x10], esi
add esi, dword [ecx + 0x3624]
mov eax, edi
cmp dword [edi + 0x14], 0xf
mov ecx, dword [edi + 0x10]
jbe 0x100bc184
mov eax, dword [edi]
cmp dword [esi + 0x14], 0xf
mov edx, dword [esi + 0x10]
push ecx
push eax
jbe 0x100bc19a
mov ecx, dword [esi]
call fcn.1002b530
mov esi, dword [esi]
jmp 0x100bc1a1
mov ecx, esi
call fcn.1002b530
mov bl, al
mov ecx, esi
lea eax, [esp + 0x58]
mov dl, bl
push eax
push 0
call fcn.1010d890
mov esi, dword [esp + 0x10]
test al, al
je 0x100bc1fb
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], eax
mov ecx, dword [0x10187fc4]
mov eax, dword [ecx + 0x3624]
add eax, esi
cmp edi, eax
je 0x100bc1f5
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x100bc1e6
mov eax, dword [eax]
push ecx
push eax
mov ecx, edi
call fcn.1001cd20
mov ecx, dword [0x10187fc4]
push edi
call fcn.100181c0
test bl, bl
je 0x100bc204
call fcn.100ecfa0
mov ecx, dword [0x10187fc4]
mov eax, 0x2aaaaaab
mov ebx, dword [esp + 0x14]
add esi, 0x18
inc ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
mov edx, dword [ecx + 0x3628]
sub edx, dword [ecx + 0x3624]
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x100bc171
mov ebx, dword [esp + 0x94]
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bc26a
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bc27a
mov byte [esi + 0x1b46], 1
call fcn.100ec7b0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1026fb74]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100bc2ac
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100ff180
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.100a48d0
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [esi + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100bc33f
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]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bc360
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bc357
push 0xffffffffffffffff
push esi
push str.Bottom
push 0x100ffd80
lea edx, [ebx + 0x3c]
mov ecx, 0x1016e3c8
call fcn.100ffde0
mov ecx, dword [0x1026fb74]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [ecx + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100bc40f
movss xmm1, dword [edx + 0xc]
subss xmm1, dword [edx + 0x58]
movss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x110]
addss xmm1, dword [0x101770bc]
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, 0x10153730
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.100a48d0
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [esi + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100bc4a2
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, dword [esi]
mov eax, dword [esi + 8]
push dword [eax + ecx*4 - 4]
mov ecx, 0x10153730
call fcn.100e16c0
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x18], eax
cmp ecx, edi
jne 0x100bc4f2
inc ecx
test edi, edi
je 0x100bc4e0
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100bc4e5
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a4460
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x18]
push 0
mov dword [esp + 0x5c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x5c]
inc dword [esi]
mov ecx, 0x1016d5b8
mov dword [esp + 0x60], 0
call fcn.100fd060
test al, al
je 0x100bc572
mov esi, dword [0x1026fb74]
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, 0x10153321
call fcn.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bc55a
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc569
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100ee370
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bc595
mov dword [esi + 0x1c18], 0
jmp 0x100bc6ea
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, 0x10153321
call fcn.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bc5c5
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc5d4
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100ee6b0
test al, al
je 0x100bc6ea
mov eax, dword [0x1026fb74]
mov edx, 0x1016e404
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42be0000
mov ecx, edx
lea edi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bc610
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bc605
push 0xffffffffffffffff
push esi
push 0x1016e404
push 0x100ffd80
lea edx, [ebx + 0x5c]
mov ecx, str.Type
call fcn.100ffde0
mov eax, dword [0x1026fb74]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x24], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x24], 0x3f000000
push eax
push 3
lea eax, [ebx + 0x60]
push eax
call fcn.101020c0
push 0
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.100a48d0
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bc6ce
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bc6de
mov byte [esi + 0x1b46], 1
call fcn.100ec7b0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1026fb74]
lea edx, [ebx + 0x84]
push 0
push 0
push 0
mov eax, dword [eax + 0x1b94]
mov ecx, str.Name
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.100a48d0
mov ecx, dword [0x1026fb74]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [ecx + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100bc7a5
movss xmm1, dword [edx + 0xc]
subss xmm1, dword [edx + 0x58]
movss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x110]
addss xmm1, dword [0x101770bc]
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 [0x10272d78]
cmp eax, 2
jae 0x100bce5a
push dword [0x10187614]
push eax
call fcn.100bd710
mov edi, eax
mov ecx, str.Weapon
push 0
push 0
push 0
lea edx, [edi + 0xa0]
mov dword [esp + 0x20], edi
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.100a48d0
push 0
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.100a48d0
movss xmm1, dword [0x101771bc]
movss xmm0, dword [0x101770bc]
call fcn.100ed470
push 0
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.100a48d0
lea edx, [edi + 0xcc]
mov ecx, str.Audible_Only
call fcn.100fe700
movss xmm1, dword [0x101771bc]
movss xmm0, dword [0x101770bc]
call fcn.100ed470
lea edx, [edi + 0xcd]
mov ecx, str.Spotted_Only
call fcn.100fe700
lea edx, [edi + 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.100a48d0
movss xmm1, dword [0x101771bc]
xorps xmm0, xmm0
call fcn.100ed470
mov eax, dword [0x1026fb74]
mov esi, dword [eax + 0x1b94]
add esi, 0xc0
mov ecx, dword [esi]
xor edx, edx
mov eax, dword [esi + 8]
push dword [eax + ecx*4 - 4]
mov ecx, str.Head_Box
call fcn.100e16c0
mov ecx, dword [esi]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x100bc90f
inc ecx
test eax, eax
je 0x100bc8fd
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
jmp 0x100bc902
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a4460
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x18]
push 0
mov dword [esp + 0x5c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x5c]
inc dword [esi]
mov ecx, 0x1016d5b8
mov dword [esp + 0x60], 0
call fcn.100fd060
test al, al
je 0x100bc98f
mov esi, dword [0x1026fb74]
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, 0x10153321
call fcn.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bc977
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc986
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100ee370
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bc9b2
mov dword [esi + 0x1c18], 0
jmp 0x100bcb0e
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, 0x10153321
call fcn.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bc9e2
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc9f1
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100ee6b0
test al, al
je 0x100bcb0e
mov eax, dword [0x1026fb74]
mov edx, 0x1016e404
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42be0000
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bca27
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bca22
mov edi, dword [esp + 0x14]
mov ecx, str.Type
push 0xffffffffffffffff
push esi
push 0x1016e404
push 0x100ffd80
lea edx, [edi + 0x124]
call fcn.100ffde0
mov eax, dword [0x1026fb74]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x24], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x24], 0x3f000000
push eax
push 3
lea eax, [edi + 0x128]
push eax
call fcn.101020c0
push 0
push 0
lea edx, [edi + 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.100a48d0
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bcaf2
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bcb02
mov byte [esi + 0x1b46], 1
call fcn.100ec7b0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1026fb74]
movss xmm1, dword [0x101771bc]
movss xmm0, dword [0x101770bc]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
call fcn.100ed470
lea edx, [edi + 0xe5]
mov ecx, str.Health_Bar
call fcn.100fe700
movss xmm1, dword [0x101771bc]
xorps xmm0, xmm0
call fcn.100ed470
mov eax, dword [0x1026fb74]
xor edx, edx
mov esi, dword [eax + 0x1b94]
mov eax, dword [esi + 0xc8]
add esi, 0xc0
mov ecx, dword [esi]
push dword [eax + ecx*4 - 4]
mov ecx, str.Health_Bar
call fcn.100e16c0
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x18], eax
cmp ecx, edi
jne 0x100bcbac
inc ecx
test edi, edi
je 0x100bcb9a
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100bcb9f
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a4460
mov edx, dword [esi]
mov ecx, 0x1016d5b8
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x18]
push 0
mov dword [esp + 0x5c], 0
mov dword [eax + edx*4], edi
lea edx, [esp + 0x5c]
inc dword [esi]
mov dword [esp + 0x60], 0
call fcn.100fd060
test al, al
je 0x100bcc2c
mov esi, dword [0x1026fb74]
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, 0x10153321
call fcn.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bcc14
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bcc23
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100ee370
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bcc4f
mov dword [esi + 0x1c18], 0
jmp 0x100bcd76
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, 0x10153321
call fcn.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bcc7f
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bcc8e
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100ee6b0
test al, al
je 0x100bcd76
mov eax, dword [0x1026fb74]
mov edx, str.Gradient
or dword [eax + 0x1c78], 1
xor edi, edi
mov dword [eax + 0x1c7c], 0x42be0000
nop
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bccc5
sub ecx, esi
inc edx
add edx, ecx
inc edi
cmp byte [edx], al
jne 0x100bccc0
mov esi, dword [esp + 0x14]
mov ecx, str.Type
push 0xffffffffffffffff
push edi
push str.Gradient
push 0x100ffd80
lea edx, [esi + 0xe8]
call fcn.100ffde0
cmp dword [esi + 0xe8], 1
jne 0x100bcd36
movss xmm1, dword [0x101771bc]
xorps xmm0, xmm0
call fcn.100ed470
push 0
push 0
mov edx, esi
mov ecx, 0x10153321
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.100a48d0
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bcd5a
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bcd6a
mov byte [esi + 0x1b46], 1
call fcn.100ec7b0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1026fb74]
mov ecx, str.Footsteps
push 0
push 0
push 0
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
mov edx, dword [0x10187fc4]
add edx, 0x15e8
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.100a48d0
push 0
push str.Thickness:__d__
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0x1e
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
push eax
mov eax, dword [0x10187fc4]
mov edx, 4
add eax, 0x1604
mov ecx, str.Thickness
push eax
call fcn.10101ac0
push 0
push str.Radius:__d__
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0xe6
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
push eax
mov eax, dword [0x10187fc4]
mov edx, 4
add eax, 0x1600
mov ecx, str.Radius
push eax
call fcn.10101ac0
mov edx, dword [esp + 0x14]
mov ecx, str.Line_of_sight
add edx, 0x14c
push 0
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.100a48d0
jmp 0x100bd20a
jne 0x100bcf4b
mov esi, dword [0x10187614]
xorps xmm0, xmm0
mov edi, dword [0x10187fc4]
mov edx, esi
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bce92
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push esi
call fcn.100231d0
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [edi + 0x1428]
call fcn.10099160
mov ecx, dword [esp + 0xb4]
mov esi, dword [eax]
cmp ecx, 0xf
jbe 0x100bcf02
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bcef8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd29e
push ecx
push edx
call fcn.1011e9c0
add esp, 8
push 0
push 0
lea edx, [esi + 0xc0]
mov dword [esp + 0xb8], 0
push 0
lea eax, [edx + 0x15]
mov dword [esp + 0xc0], 0xf
push eax
lea eax, [edx + 0x10]
mov byte [esp + 0xb0], 0
push eax
lea eax, [edx + 0x14]
mov ecx, str.Ammo
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a48d0
jmp 0x100bd20a
cmp eax, 3
jne 0x100bd20a
mov esi, dword [0x10187614]
xorps xmm0, xmm0
mov edi, dword [0x10187fc4]
mov edx, esi
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bcf86
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push esi
call fcn.100231d0
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [edi + 0x1448]
call fcn.10098f70
mov ecx, dword [esp + 0xb4]
mov edi, dword [eax]
cmp ecx, 0xf
jbe 0x100bcff6
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bcfec
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bd2a3
push ecx
push edx
call fcn.1011e9c0
add esp, 8
lea edx, [edi + 0xc0]
mov dword [esp + 0xb0], 0
mov ecx, str.Trails
mov dword [esp + 0xb4], 0xf
mov byte [esp + 0xa0], 0
call fcn.100fe700
movss xmm1, dword [0x101771bc]
movss xmm0, dword [0x101770e4]
call fcn.100ed470
mov eax, dword [0x1026fb74]
xor edx, edx
mov esi, dword [eax + 0x1b94]
mov eax, dword [esi + 0xc8]
add esi, 0xc0
mov ecx, dword [esi]
push dword [eax + ecx*4 - 4]
mov ecx, str.Trails
call fcn.100e16c0
mov ecx, dword [esi]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x100bd090
inc ecx
test eax, eax
je 0x100bd07e
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
jmp 0x100bd083
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a4460
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x18]
push 0
mov dword [esp + 0x5c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x5c]
inc dword [esi]
mov ecx, 0x1016d5b8
mov dword [esp + 0x60], 0
call fcn.100fd060
test al, al
je 0x100bd110
mov esi, dword [0x1026fb74]
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, 0x10153321
call fcn.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bd0f8
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bd107
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100ee370
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bd133
mov dword [esi + 0x1c18], 0
jmp 0x100bd1f9
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, 0x10153321
call fcn.100e16c0
cmp dword [esi + 0x1bc8], eax
jne 0x100bd163
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bd172
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100ee6b0
test al, al
je 0x100bd1f9
lea eax, [edi + 0xc4]
push eax
push str.Local_Player
call fcn.100bdae0
lea eax, [edi + 0xe8]
push eax
push 0x10153768
call fcn.100bdae0
lea eax, [edi + 0x10c]
push eax
push 0x10153770
call fcn.100bdae0
mov esi, dword [0x1026fb74]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bd1dd
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bd1ed
mov byte [esi + 0x1b46], 1
call fcn.100ec7b0
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1026fb74]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
mov eax, dword [0x1026fb74]
lea esi, [ebx + 0x9c]
push 0x20000
push str._.1fm
mov edx, 8
mov dword [esp + 0x24], 0x3ecccccd
or dword [eax + 0x1c78], 1
mov ecx, str.Text_Cull_Distance
mov dword [eax + 0x1c7c], 0x42be0000
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x24], 0x3f4ccccd
push eax
push esi
call fcn.101028d0
movss xmm0, dword [esi]
lea ecx, [esp + 0x18]
comiss xmm0, dword [0x10176d3c]
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x4479f99a
mov dword [esp + 0x18], 0
movss xmm1, dword [0x10177134]
cmovae ecx, esi
comiss xmm1, xmm0
cmovae eax, ecx
mov eax, dword [eax]
mov dword [esi], eax
call fcn.100e7fb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1012734a
call fcn.1012734a
mov word [ebx - 0x5c73eff5], fs
or edx, dword [eax]
adc eax, 0x5e100ba4
movsd dword es:[edi], dword [esi]
or edx, dword [eax]
invalid