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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x264
mov edx, dword [0x101939c0]
lea eax, [esp + 0x8c]
push ebx
push esi
push edi
push eax
lea edx, [edx + 0x134c]
mov dword [esp + 0x9c], 0x42c80000
mov ecx, 0x101609f8
mov dword [esp + 0xa0], 0
call fcn.100a3200
mov eax, dword [0x1019eea4]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100b7199
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100fa7d0
lea edx, [esp + 0x98]
mov dword [esp + 0x98], 0x432a0000
mov ecx, str.list
mov dword [esp + 0x9c], 0x43960000
call fcn.101095c0
test al, al
je 0x100b8f12
xor ebx, ebx
mov dword [esp + 0x1b8], 0x10160c0c
mov dword [esp + 0x1bc], 0x10160c04
mov dword [esp + 0x1c0], str.Projectiles
mov dword [esp + 0x1c4], 0x10160fcc
mov dword [esp + 0x1c8], str.Loot_Crates
mov dword [esp + 0x1cc], str.Other_Entities
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], ebx
cmp dword [0x1027e9c4], ebx
jne 0x100b7251
mov ecx, dword [0x1019142c]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b7234
push 3
sub edx, esi
push 0x10160fb4
call fcn.1002a320
test al, al
je 0x100b7251
mov dl, 1
jmp 0x100b7253
xor dl, dl
mov ecx, dword [esp + ebx*4 + 0x1b8]
lea eax, [esp + 0x1a0]
push eax
push 0
call fcn.10108ed0
test al, al
je 0x100b727d
mov dword [0x1027e9c4], ebx
mov dword [0x1019142c], 0x10160fb4
xor ecx, ecx
call fcn.100ed6e0
test al, al
je 0x100b766c
cmp ebx, 3
ja case.default.0x100b7295
jmp dword [ebx*4 + 0x100ba3dc]
push 0x10160fb4
push ebx
call fcn.100ba850
mov edx, dword [0x1019eea4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b7637
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.1012b680
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x14]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100eec10
push 0x1cc
lea ecx, [esi + 0x1eb0]
call fcn.100eec10
mov edx, esi
mov ecx, 0x73
mov esi, dword [esp + 0x1c]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x1cc
jmp 0x100b7637
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0xf0], xmm0
mov word [esp + 0xf0], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0xf2], al
lea ecx, [ecx + 0x13b0]
lea eax, [esp + 0xf0]
mov dword [esp + 0x100], 3
push eax
lea eax, [esp + 0x1d4]
mov dword [esp + 0x108], 0xf
push eax
mov byte [esp + 0xfb], 0
call fcn.10097950
mov edx, dword [0x1019eea4]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x1c], eax
jne 0x100b7403
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.1012b680
mov edi, dword [esp + 0x20]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100eec10
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.100eec10
mov esi, dword [esp + 0x1c]
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 + 0x104]
cmp ecx, 0xf
jbe 0x100b744b
mov edx, dword [esp + 0xf0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7441
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0xf
mov byte [esp + 0xf0], 0
jmp 0x100b7643
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0xd0], xmm0
mov word [esp + 0xd0], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0xd2], al
lea ecx, [ecx + 0x13d0]
lea eax, [esp + 0xd0]
mov dword [esp + 0xe0], 3
push eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0xe8], 0xf
push eax
mov byte [esp + 0xdb], 0
call fcn.10097760
mov edx, dword [0x1019eea4]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x1c], eax
jne 0x100b754c
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.1012b680
mov edi, dword [esp + 0x20]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100eec10
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.100eec10
mov esi, dword [esp + 0x1c]
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 + 0xe4]
cmp ecx, 0xf
jbe 0x100b7594
mov edx, dword [esp + 0xd0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b758a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0xf
mov byte [esp + 0xd0], 0
jmp 0x100b7643
push 0x10160fb4
push ebx
call fcn.100ba4a0
mov edx, dword [0x1019eea4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b7637
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.1012b680
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x14]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100eec10
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.100eec10
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0x1c]
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 [0x1019eea4]
test byte [esi + 0x1e40], 1
jne 0x100b7657
call fcn.100e7f00
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b7665
call fcn.100ed600
mov byte [esi + 0x1e3d], 0
call fcn.100ed930
test al, al
je 0x100b7cb3
xor edx, edx
mov ecx, str.Player
call fcn.100ed9b0
test eax, eax
je 0x100b77fd
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b7698
jmp dword [ebx*4 + 0x100ba3ec]
push esi
push ecx
push 0x10160fb4
push ebx
call fcn.100ba850
add esp, 4
mov ecx, eax
call fcn.100badd0
jmp 0x100b77fd
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13b0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x1e4]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.10097950
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x100b77fd
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7745
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b77fd
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13d0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x1ec]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.10097760
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x100b77fd
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b77da
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b77fd
push esi
push ecx
push 0x10160fb4
push ebx
call fcn.100ba4a0
add esp, 4
mov ecx, eax
call fcn.100bafc0
xor edx, edx
mov ecx, str.Projectile
call fcn.100ed9b0
test eax, eax
je 0x100b798a
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b781c
jmp dword [ebx*4 + 0x100ba3fc]
push esi
push ecx
push 0x10160fb4
push ebx
call fcn.100ba850
jmp 0x100b7980
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13b0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x26c]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.10097950
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x100b798a
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b78bf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b798a
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13d0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x264]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.10097760
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100bafc0
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x100b798a
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7967
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b798a
push esi
push ecx
push 0x10160fb4
push ebx
call fcn.100ba4a0
add esp, 4
mov ecx, eax
call fcn.100bafc0
xor edx, edx
mov ecx, str.Weapon
call fcn.100ed9b0
test eax, eax
je 0x100b7b2d
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100b79a9
jmp dword [ebx*4 + 0x100ba40c]
push edi
push ecx
push 0x10160fb4
push ebx
call fcn.100ba850
jmp 0x100b7b23
movzx eax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13b0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x25c]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.10097950
push edi
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100bafc0
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 + 0x54]
cmp ecx, 0xf
jbe 0x100b7b2d
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7a75
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b7b2d
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13d0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x234]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.10097760
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x100b7b2d
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7b0a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b7b2d
push edi
push ecx
push 0x10160fb4
push ebx
call fcn.100ba4a0
add esp, 4
mov ecx, eax
call fcn.100bafc0
xor edx, edx
mov ecx, str.Entity
call fcn.100ed9b0
test eax, eax
je 0x100b7ca7
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b7b4c
jmp dword [ebx*4 + 0x100ba41c]
push esi
push ecx
push 0x10160fb4
push ebx
call fcn.100ba850
jmp 0x100b7c9d
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13b0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x22c]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.10097950
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x100b7ca7
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7bef
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b7ca7
mov ax, word [0x10160fb4]
xorps xmm0, xmm0
mov ecx, dword [0x101939c0]
movaps xmmword [esp + 0x60], xmm0
mov word [esp + 0x60], ax
mov al, byte [0x10160fb6]
mov byte [esp + 0x62], al
lea ecx, [ecx + 0x13d0]
lea eax, [esp + 0x60]
mov dword [esp + 0x70], 3
push eax
lea eax, [esp + 0x21c]
mov dword [esp + 0x78], 0xf
push eax
mov byte [esp + 0x6b], 0
call fcn.10097760
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100b7ca7
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7c84
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b7ca7
push esi
push ecx
push 0x10160fb4
push ebx
call fcn.100ba4a0
add esp, 4
mov ecx, eax
call fcn.100bafc0
mov eax, dword [0x1019eea4]
mov byte [eax + 0x1e3e], 0
mov ecx, ebx
call fcn.100e8830
mov ecx, dword [0x1019eea4]
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.0x100b7d09
jmp dword [ebx*4 + 0x100ba42c]
lea ecx, [esp + 0x98]
mov dword [esp + 0x98], 0x10160fb8
push ecx
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], 0x10160fc0
push eax
push ecx
lea ecx, [esp + 0x30]
call fcn.100c50c0
mov esi, dword [esp + 0x24]
jmp 0x100b7edb
mov dword [esp + 0x60], 0x10169fc4
mov dword [esp + 0x64], str.SMGs
mov dword [esp + 0x68], 0x10169fd4
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 + 0x30]
call fcn.100c50c0
mov esi, dword [esp + 0x24]
jmp 0x100b7edb
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 0x100b7d94
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 + 0x30]
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.100c50c0
mov esi, dword [esp + 0x24]
jmp 0x100b7edb
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 + 0x30]
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.100c50c0
mov esi, dword [esp + 0x24]
jmp 0x100b7edb
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
push 0x10160fb4
push ebx
call fcn.100ba4a0
mov edx, dword [esp + 0x28]
sub edx, esi
sar edx, 2
mov cl, byte [eax]
xor eax, eax
mov byte [esp + 0x33], cl
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
test edx, edx
je 0x100b8e9c
nop word [eax + eax]
lea edi, [eax*4]
test cl, cl
je 0x100b7f2d
push dword [esi + edi]
push ebx
call fcn.100ba4a0
cmp byte [eax], 0
je 0x100b89c5
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
cmp dword [0x1027e9c4], ebx
jne 0x100b7f99
cmp byte [0x1027e9b8], 0
jne 0x100b7f99
mov edx, dword [0x1019142c]
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b7f60
sub edx, ecx
mov ecx, dword [edi + esi]
mov esi, ecx
lea eax, [esi + 1]
mov dword [esp + 0x14], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x100b7f75
sub esi, dword [esp + 0x14]
push esi
push ecx
mov ecx, dword [0x1019142c]
call fcn.1002a320
mov esi, dword [esp + 0x24]
test al, al
je 0x100b7f99
mov dl, 1
jmp 0x100b7f9b
xor dl, dl
mov ecx, dword [edi + esi]
lea eax, [esp + 0x1a8]
push eax
push 0
call fcn.10108ed0
test al, al
je 0x100b7fc6
mov eax, dword [edi + esi]
mov dword [0x1027e9c4], ebx
mov dword [0x1019142c], eax
mov byte [0x1027e9b8], 0
xor ecx, ecx
call fcn.100ed6e0
test al, al
je 0x100b83bc
cmp ebx, 3
ja case.default.0x100b7fde
jmp dword [ebx*4 + 0x100ba444]
push dword [edi + esi]
push ebx
call fcn.100ba850
mov edx, dword [0x1019eea4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b8383
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.1012b680
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x14]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100eec10
push 0x1cc
lea ecx, [esi + 0x1eb0]
call fcn.100eec10
mov edx, esi
mov ecx, 0x73
mov esi, dword [esp + 0x1c]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x1cc
jmp 0x100b8383
mov esi, dword [edi + esi]
xorps xmm0, xmm0
mov eax, dword [0x101939c0]
mov edx, esi
add eax, 0x13b0
movaps xmmword [esp + 0x160], xmm0
mov dword [esp + 0x14], eax
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b80a3
sub edx, ecx
lea ecx, [esp + 0x160]
push edx
push esi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x160]
push eax
lea eax, [esp + 0x24c]
push eax
call fcn.10097950
mov edx, dword [0x1019eea4]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x1c], eax
jne 0x100b814d
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.1012b680
mov edi, dword [esp + 0x20]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100eec10
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.100eec10
mov esi, dword [esp + 0x1c]
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 + 0x174]
cmp ecx, 0xf
jbe 0x100b8195
mov edx, dword [esp + 0x160]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b818b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0xf
mov byte [esp + 0x160], 0
jmp 0x100b838f
mov esi, dword [edi + esi]
xorps xmm0, xmm0
mov eax, dword [0x101939c0]
mov edx, esi
add eax, 0x13d0
movaps xmmword [esp + 0x180], xmm0
mov dword [esp + 0x14], eax
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100b81f0
sub edx, ecx
lea ecx, [esp + 0x180]
push edx
push esi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x180]
push eax
lea eax, [esp + 0x224]
push eax
call fcn.10097760
mov edx, dword [0x1019eea4]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x1c], eax
jne 0x100b829a
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.1012b680
mov edi, dword [esp + 0x20]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100eec10
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.100eec10
mov esi, dword [esp + 0x1c]
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 + 0x194]
cmp ecx, 0xf
jbe 0x100b82e2
mov edx, dword [esp + 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b82d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0xf
mov byte [esp + 0x180], 0
jmp 0x100b838f
push dword [edi + esi]
push ebx
call fcn.100ba4a0
mov edx, dword [0x1019eea4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b8383
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.1012b680
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x14]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100eec10
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.100eec10
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0x1c]
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 [0x1019eea4]
test byte [esi + 0x1e40], 1
jne 0x100b83a3
call fcn.100e7f00
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b83b1
call fcn.100ed600
mov byte [esi + 0x1e3d], 0
mov esi, dword [esp + 0x24]
call fcn.100ed930
test al, al
je 0x100b89c5
xor edx, edx
mov ecx, str.Player
call fcn.100ed9b0
test eax, eax
je 0x100b84b2
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b83e8
jmp dword [ebx*4 + 0x100ba454]
mov eax, dword [esp + 0x18]
push esi
mov esi, dword [esp + 0x28]
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100ba850
add esp, 4
mov ecx, eax
call fcn.100badd0
jmp 0x100b84b6
mov eax, dword [0x101939c0]
xorps xmm0, xmm0
mov edi, dword [esp + 0x24]
add eax, 0x13b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
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 0x100b8447
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x23c]
push eax
call fcn.10097950
mov ecx, dword [eax]
push esi
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100b84b2
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b84a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
mov esi, dword [esp + 0x24]
xor edx, edx
mov ecx, str.Weapon
call fcn.100ed9b0
test eax, eax
je 0x100b8706
mov edi, dword [eax]
cmp ebx, 3
ja case.default.0x100b84d5
jmp dword [ebx*4 + 0x100ba464]
mov eax, dword [0x101939c0]
xorps xmm0, xmm0
mov edi, dword [esp + 0x24]
add eax, 0x13d0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
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 0x100b8512
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x244]
push eax
call fcn.10097760
jmp 0x100b8471
mov eax, dword [esp + 0x18]
push esi
mov esi, dword [esp + 0x28]
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100ba4a0
add esp, 4
mov ecx, eax
call fcn.100bafc0
jmp 0x100b84b6
mov eax, dword [esp + 0x18]
push edi
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100ba850
jmp 0x100b86fc
mov eax, dword [0x101939c0]
xorps xmm0, xmm0
add eax, 0x13b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
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 0x100b85b0
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push esi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x254]
push eax
call fcn.10097950
push edi
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100bafc0
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 0x100b8706
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b863d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b8706
mov eax, dword [0x101939c0]
xorps xmm0, xmm0
add eax, 0x13d0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
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 0x100b8680
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push esi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x1f4]
push eax
call fcn.10097760
push edi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100b8706
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b86e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
jmp 0x100b8706
mov eax, dword [esp + 0x18]
push edi
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100ba4a0
add esp, 4
mov ecx, eax
call fcn.100bafc0
xor edx, edx
mov ecx, str.Projectile
call fcn.100ed9b0
test eax, eax
je 0x100b87ef
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b8725
jmp dword [ebx*4 + 0x100ba474]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
push esi
push ecx
push dword [edi + eax*4]
push ebx
call fcn.100ba850
add esp, 4
mov ecx, eax
call fcn.100bafc0
jmp 0x100b87f3
mov eax, dword [0x101939c0]
xorps xmm0, xmm0
mov edi, dword [esp + 0x24]
add eax, 0x13b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
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 0x100b8784
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x1fc]
push eax
call fcn.10097950
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x100b87ef
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b87e5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
mov edi, dword [esp + 0x24]
xor edx, edx
mov ecx, str.Entity
call fcn.100ed9b0
test eax, eax
je 0x100b89b5
mov esi, dword [eax]
cmp ebx, 3
ja case.default.0x100b8812
jmp dword [ebx*4 + 0x100ba484]
mov eax, dword [0x101939c0]
xorps xmm0, xmm0
mov edi, dword [esp + 0x24]
add eax, 0x13d0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
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 0x100b8850
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x204]
push eax
call fcn.10097760
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100bafc0
add esi, 0xa0
mov ecx, 0x1c
add edi, 0xc0
rep movsd dword es:[edi], dword [esi]
jmp 0x100b87b9
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
push esi
push ecx
push dword [edi + eax*4]
push ebx
call fcn.100ba4a0
add esp, 4
mov ecx, eax
call fcn.100bafc0
jmp 0x100b87f3
mov eax, dword [esp + 0x18]
push esi
mov esi, dword [esp + 0x28]
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100ba850
add esp, 4
mov ecx, eax
call fcn.100bafc0
jmp 0x100b89b9
mov eax, dword [0x101939c0]
xorps xmm0, xmm0
add eax, 0x13b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov edi, dword [edi + eax*4]
mov edx, edi
movaps xmmword [esp + 0x130], xmm0
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b8920
sub edx, ecx
lea ecx, [esp + 0x130]
push edx
push edi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x130]
push eax
lea eax, [esp + 0x20c]
push eax
call fcn.10097950
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x144]
cmp ecx, 0xf
jbe 0x100b8997
mov edx, dword [esp + 0x130]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b898d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0xf
mov byte [esp + 0x130], 0
mov esi, dword [esp + 0x24]
mov eax, dword [0x1019eea4]
mov byte [eax + 0x1e3e], 0
cmp ebx, 3
jne 0x100b8e85
mov ecx, dword [0x1019eea4]
mov edi, dword [esp + 0x18]
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 + 0x158]
push eax
call fcn.100ba990
push dword [esi + edi*4]
push ebx
call fcn.100ba4a0
mov al, byte [eax]
mov byte [esp + 0x97], al
mov eax, dword [esp + 0x154]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x158]
je 0x100b8e33
mov edi, dword [eax]
xorps xmm0, xmm0
mov esi, dword [0x101939c0]
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 0x100b8a80
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push edi
call fcn.10022380
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1b4]
push eax
lea ecx, [esi + 0x13b0]
call fcn.10097950
mov ecx, dword [esp + 0xb4]
mov ebx, dword [eax]
add ebx, 0x20
mov dword [esp + 0x14], ebx
cmp ecx, 0xf
jbe 0x100b8af7
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b8aed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
cmp byte [esp + 0x33], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xf
mov byte [esp + 0xa0], 0
jne 0x100b8b26
cmp byte [esp + 0x97], 0
je 0x100b8b2f
cmp byte [ebx], 0
je 0x100b8e10
cmp dword [0x1027e9c4], 3
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
jne 0x100b8c8e
cmp byte [0x1027e9b8], 0
je 0x100b8c8e
mov ecx, dword [0x1019142c]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b8b64
sub edx, esi
mov esi, edi
lea eax, [esi + 1]
mov dword [esp + 0x34], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x100b8b76
sub esi, dword [esp + 0x34]
push esi
push edi
call fcn.1002a320
test al, al
je 0x100b8c8e
mov dl, 1
jmp 0x100b8c90
mov eax, dword [0x101939c0]
xorps xmm0, xmm0
add eax, 0x13d0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov edi, dword [edi + eax*4]
mov edx, edi
movaps xmmword [esp + 0x110], xmm0
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b8bd2
sub edx, ecx
lea ecx, [esp + 0x110]
push edx
push edi
call fcn.10022380
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x110]
push eax
lea eax, [esp + 0x214]
push eax
call fcn.10097760
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bafc0
mov ecx, dword [esp + 0x124]
cmp ecx, 0xf
jbe 0x100b8c49
mov edx, dword [esp + 0x110]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b8c3f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
add esp, 8
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0xf
mov byte [esp + 0x110], 0
jmp 0x100b89b5
mov eax, dword [esp + 0x18]
push esi
mov esi, dword [esp + 0x28]
push ecx
push dword [esi + eax*4]
push ebx
call fcn.100ba4a0
add esp, 4
mov ecx, eax
call fcn.100bafc0
jmp 0x100b89b9
xor dl, dl
lea eax, [esp + 0x38]
mov ecx, edi
push eax
push 0
call fcn.10108ed0
test al, al
je 0x100b8cb9
mov dword [0x1027e9c4], 3
mov dword [0x1019142c], edi
mov byte [0x1027e9b8], 1
xor ecx, ecx
call fcn.100ed6e0
test al, al
je 0x100b8d6a
mov esi, dword [0x1019eea4]
mov ebx, esi
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100b8d37
push 0x20
lea esi, [ebx + 0x1e60]
push str.Weapon
push esi
call fcn.1012b680
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.100eec10
push 0xb8
lea ecx, [ebx + 0x1eb0]
call fcn.100eec10
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x2e
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x1019eea4]
mov dword [ebx + 0x1e50], 0xb8
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
test byte [esi + 0x1e40], 1
jne 0x100b8d51
call fcn.100e7f00
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b8d5f
call fcn.100ed600
mov ebx, dword [esp + 0x14]
mov byte [esi + 0x1e3d], 0
call fcn.100ed930
test al, al
je 0x100b8e10
xor edx, edx
mov ecx, str.Player
call fcn.100ed9b0
test eax, eax
je 0x100b8d90
push dword [eax]
mov ecx, ebx
call fcn.100bafc0
xor edx, edx
mov ecx, str.Weapon
call fcn.100ed9b0
test eax, eax
je 0x100b8dd2
mov esi, dword [eax]
mov ecx, ebx
push esi
call fcn.100bafc0
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.100ed9b0
test eax, eax
je 0x100b8deb
push dword [eax]
mov ecx, ebx
call fcn.100bafc0
xor edx, edx
mov ecx, str.Entity
call fcn.100ed9b0
test eax, eax
je 0x100b8e04
push dword [eax]
mov ecx, ebx
call fcn.100bafc0
mov eax, dword [0x1019eea4]
mov byte [eax + 0x1e3e], 0
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x158]
jne 0x100b8a50
mov ebx, dword [esp + 0xcc]
mov esi, dword [esp + 0x24]
mov ecx, dword [0x1019eea4]
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 + 0x154]
movss dword [eax + 0x10c], xmm0
addss xmm0, dword [eax + 0xc]
addss xmm0, dword [eax + 0x110]
movss dword [eax + 0xcc], xmm0
call fcn.100268c0
mov eax, dword [esp + 0x18]
mov cl, byte [esp + 0x33]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x20]
jb 0x100b7f10
mov ecx, dword [0x1019eea4]
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 + 0x24]
dec dword [eax + 0xc0]
call fcn.100268c0
inc ebx
mov dword [esp + 0xcc], ebx
cmp ebx, 6
jb 0x100b7221
call fcn.100e36f0
call fcn.100e90c0
movss xmm1, dword [0x10184a94]
xorps xmm0, xmm0
call fcn.100e8bc0
mov esi, dword [0x1019eea4]
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.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b8f75
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b8f84
mov byte [esi + 0x1c08], 1
push 0
push 0
lea edx, [esp + 0x40]
mov ecx, str.child
push edx
mov edx, eax
call fcn.100e34f0
test al, al
je 0x100ba3c5
push dword [0x1019142c]
push dword [0x1027e9c4]
call fcn.100ba4a0
mov ebx, eax
mov ecx, str.Enabled
mov edx, ebx
mov dword [esp + 0x18], ebx
call fcn.100f9d50
mov esi, dword [0x1019eea4]
movss xmm1, dword [0x10184a94]
mov ecx, dword [esi + 0x1b94]
movss xmm0, dword [ecx + 0x24c]
subss xmm0, dword [ecx + 0xc]
subss xmm0, dword [0x101849bc]
call fcn.100e8bc0
or dword [esi + 0x1c78], 1
mov dword [esi + 0x1c7c], 0x435c0000
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*2]
mov eax, dword [0x101939c0]
mov eax, dword [eax + 0x34e8]
cmp dword [eax + ecx*8 + 0x14], 0xf
lea edx, [eax + ecx*8]
jbe 0x100b9020
mov edx, dword [edx]
push 0
mov ecx, str.Font
call fcn.100faa50
test al, al
je 0x100b918f
mov ecx, dword [0x101939c0]
mov eax, 0x2aaaaaab
mov dword [esp + 0x1c], 0
mov edx, dword [ecx + 0x34ec]
sub edx, dword [ecx + 0x34e8]
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100b914f
xor esi, esi
mov dword [esp + 0x38], 0x437a0000
mov dword [esp + 0x3c], 0
lea edi, [ebx + 8]
mov dword [esp + 0x14], esi
nop
add esi, dword [ecx + 0x34e8]
mov eax, edi
cmp dword [edi + 0x14], 0xf
mov ecx, dword [edi + 0x10]
jbe 0x100b9093
mov eax, dword [edi]
cmp dword [esi + 0x14], 0xf
mov edx, dword [esi + 0x10]
push ecx
push eax
jbe 0x100b90a9
mov ecx, dword [esi]
call fcn.1002a320
mov esi, dword [esi]
jmp 0x100b90b0
mov ecx, esi
call fcn.1002a320
mov bl, al
mov ecx, esi
lea eax, [esp + 0x38]
mov dl, bl
push eax
push 0
call fcn.10108ed0
mov esi, dword [esp + 0x14]
test al, al
je 0x100b9107
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov ecx, dword [0x101939c0]
mov eax, dword [ecx + 0x34e8]
add eax, esi
cmp edi, eax
je 0x100b9101
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x100b90f2
mov eax, dword [eax]
push ecx
push eax
mov ecx, edi
call fcn.1001c520
mov ecx, dword [0x101939c0]
push edi
call fcn.10017af0
test bl, bl
je 0x100b9110
call fcn.100e86f0
mov ecx, dword [0x101939c0]
mov eax, 0x2aaaaaab
mov ebx, dword [esp + 0x1c]
add esi, 0x18
inc ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], ebx
mov edx, dword [ecx + 0x34ec]
sub edx, dword [ecx + 0x34e8]
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x100b9080
mov ebx, dword [esp + 0x18]
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b9173
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b9183
mov byte [esi + 0x1b46], 1
call fcn.100e7f00
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019eea4]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100b91b5
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100fa7d0
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.100a1f40
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [esi + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100b9248
movss xmm1, dword [esi + 0x1560]
addss xmm1, dword [edx + 0xd4]
movss xmm0, dword [edx + 0xd8]
movss dword [edx + 0xcc], xmm1
movss dword [edx + 0xd0], xmm0
mov eax, dword [edx + 0xfc]
mov ecx, dword [edx + 0x100]
mov dword [edx + 0xf4], eax
mov eax, dword [edx + 0x108]
mov dword [edx + 0xf8], ecx
mov dword [edx + 0x104], eax
or dword [esi + 0x1c78], 1
mov edx, str.Bottom
mov dword [esi + 0x1c7c], 0x42b40000
xor esi, esi
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b9265
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b9260
push 0xffffffffffffffff
push esi
push str.Bottom
push 0x100fb3d0
lea edx, [ebx + 0x3c]
mov ecx, 0x1017b9e0
call fcn.100fb430
mov ecx, dword [0x1019eea4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [ecx + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100b9314
movss xmm1, dword [edx + 0xc]
subss xmm1, dword [edx + 0x58]
movss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x110]
addss xmm1, dword [0x101849b4]
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, 0x10160bcc
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.100a1f40
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [esi + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100b93a7
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, 0x10160bcc
mov eax, dword [esi + 8]
mov ebx, dword [esi]
push dword [eax + ebx*4 - 4]
call fcn.100dce00
mov edi, dword [esi + 4]
mov dword [esp + 0x20], eax
cmp ebx, edi
jne 0x100b93f7
lea ecx, [ebx + 1]
test edi, edi
je 0x100b93e5
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100b93ea
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1ad0
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x20]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x1017a8e0
mov dword [esp + 0x40], 0
call fcn.100f86b0
test al, al
je 0x100b9477
mov esi, dword [0x1019eea4]
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b945f
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b946e
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9ac0
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b949a
mov dword [esi + 0x1c18], 0
jmp 0x100b95f3
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b94ca
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b94d9
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9e00
test al, al
je 0x100b95f3
mov eax, dword [0x1019eea4]
mov edx, 0x1017b9c0
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42be0000
nop word [eax + eax]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b9515
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b9510
push 0xffffffffffffffff
push esi
mov esi, dword [esp + 0x20]
mov ecx, str.Type
push 0x1017b9c0
push 0x100fb3d0
lea edx, [esi + 0x5c]
call fcn.100fb430
mov eax, dword [0x1019eea4]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x3c], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x2c], 0x3f000000
push eax
push 3
lea eax, [esi + 0x60]
push eax
call fcn.100fd710
push 0
push 0
lea edx, [esi + 0x6c]
mov ecx, str.Fill
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a1f40
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b95d7
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b95e7
mov byte [esi + 0x1b46], 1
call fcn.100e7f00
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019eea4]
mov ecx, str.Name
mov edx, dword [esp + 0x18]
push 0
add edx, 0x84
mov eax, dword [eax + 0x1b94]
push 0
push 0
dec dword [eax + 0xc0]
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a1f40
mov ecx, dword [0x1019eea4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [ecx + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100b96b2
movss xmm1, dword [edx + 0xc]
subss xmm1, dword [edx + 0x58]
movss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x110]
addss xmm1, dword [0x101849b4]
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 [0x1027e9c4]
cmp eax, 2
jae 0x100b9f89
push dword [0x1019142c]
push eax
call fcn.100ba850
mov ebx, eax
mov ecx, str.Weapon
push 0
push 0
push 0
lea edx, [ebx + 0xa0]
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.100a1f40
push 0
push 0
lea edx, [ebx + 0xf8]
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.100a1f40
movss xmm1, dword [0x10184a94]
movss xmm0, dword [0x101849b4]
call fcn.100e8bc0
push 0
lea edx, [ebx + 0x148]
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.100a1f40
lea edx, [ebx + 0x10e]
mov ecx, str.Audible_Only
call fcn.100f9d50
movss xmm1, dword [0x10184a94]
movss xmm0, dword [0x101849b4]
call fcn.100e8bc0
lea edx, [ebx + 0x10f]
mov ecx, str.Spotted_Only
call fcn.100f9d50
lea edx, [ebx + 0x164]
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.100a1f40
movss xmm1, dword [0x10184a94]
xorps xmm0, xmm0
call fcn.100e8bc0
mov eax, dword [0x1019eea4]
mov esi, dword [eax + 0x1b94]
add esi, 0xc0
mov ecx, dword [esi]
mov eax, dword [esi + 8]
xor edx, edx
push dword [eax + ecx*4 - 4]
mov ecx, str.Head_Box
call fcn.100dce00
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x20], eax
cmp ecx, edi
jne 0x100b9819
inc ecx
test edi, edi
je 0x100b9807
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100b980c
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1ad0
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x20]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x1017a8e0
mov dword [esp + 0x40], 0
call fcn.100f86b0
test al, al
je 0x100b9899
mov esi, dword [0x1019eea4]
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9881
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9890
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9ac0
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b98bc
mov dword [esi + 0x1c18], 0
jmp 0x100b9a18
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b98ec
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b98fb
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9e00
test al, al
je 0x100b9a18
mov eax, dword [0x1019eea4]
mov edx, 0x1017b9c0
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 0x100b9935
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b9930
push 0xffffffffffffffff
push esi
push 0x1017b9c0
push 0x100fb3d0
lea edx, [ebx + 0x180]
mov ecx, str.Type
call fcn.100fb430
mov eax, dword [0x1019eea4]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x3c], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x2c], 0x3f000000
push eax
push 3
lea eax, [ebx + 0x184]
push eax
call fcn.100fd710
push 0
push 0
lea edx, [ebx + 0x190]
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.100a1f40
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b99fc
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b9a0c
mov byte [esi + 0x1b46], 1
call fcn.100e7f00
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019eea4]
movss xmm1, dword [0x10184a94]
movss xmm0, dword [0x101849b4]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
call fcn.100e8bc0
lea edx, [ebx + 0x125]
mov ecx, str.Health_Bar
call fcn.100f9d50
movss xmm1, dword [0x10184a94]
xorps xmm0, xmm0
call fcn.100e8bc0
mov eax, dword [0x1019eea4]
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.100dce00
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x20], eax
cmp ecx, edi
jne 0x100b9ab6
inc ecx
test edi, edi
je 0x100b9aa4
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100b9aa9
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1ad0
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x20]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x1017a8e0
mov dword [esp + 0x40], 0
call fcn.100f86b0
test al, al
je 0x100b9b36
mov esi, dword [0x1019eea4]
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9b1e
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9b2d
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9ac0
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b9b59
mov dword [esi + 0x1c18], 0
jmp 0x100b9cbe
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9b89
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9b98
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9e00
test al, al
je 0x100b9cbe
mov eax, dword [0x1019eea4]
mov edx, str.Gradient
or dword [eax + 0x1c78], 1
xor edi, edi
mov dword [eax + 0x1c7c], 0x42be0000
nop dword [eax]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b9bd5
sub ecx, esi
inc edx
add edx, ecx
inc edi
cmp byte [edx], al
jne 0x100b9bd0
push 0xffffffffffffffff
push edi
push str.Gradient
push 0x100fb3d0
lea edx, [ebx + 0x12c]
mov ecx, str.Type
call fcn.100fb430
cmp dword [ebx + 0x12c], 1
jne 0x100b9c40
movss xmm1, dword [0x10184a94]
xorps xmm0, xmm0
call fcn.100e8bc0
push 0
push 0
push 0
lea edx, [ebx + 0x110]
mov ecx, 0x10160919
push 0
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a1f40
xor esi, esi
mov edx, 0x1017b9e4
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b9c50
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b9c47
push 0xffffffffffffffff
push esi
push 0x1017b9e4
push 0x100fb3d0
lea edx, [ebx + 0x1c4]
mov ecx, str.HP_side
call fcn.100fb430
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b9ca2
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b9cb2
mov byte [esi + 0x1b46], 1
call fcn.100e7f00
mov byte [esi + 0x1b46], 0
cmp dword [0x1027e9c4], 0
jne 0x100b9ecd
mov eax, dword [0x101939c0]
mov ecx, str.Offscreen_Enemies
push 0
push 0
push 0
lea edx, [eax + 0x3448]
add eax, 0x345d
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a1f40
movss xmm1, dword [0x10184a94]
xorps xmm0, xmm0
call fcn.100e8bc0
mov eax, dword [0x1019eea4]
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.Offscreen_Enemies
call fcn.100dce00
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x20], eax
cmp ecx, edi
jne 0x100b9d60
inc ecx
test edi, edi
je 0x100b9d4e
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100b9d53
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1ad0
mov edx, dword [esi]
mov ecx, 0x1017a8e0
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x20]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + edx*4], edi
lea edx, [esp + 0x3c]
inc dword [esi]
mov dword [esp + 0x40], 0
call fcn.100f86b0
test al, al
je 0x100b9de0
mov esi, dword [0x1019eea4]
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9dc8
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9dd7
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9ac0
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b9e03
mov dword [esi + 0x1c18], 0
jmp 0x100b9ecd
mov eax, dword [esi + 0x1b94]
mov ecx, 0x10160919
mov edx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9e33
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9e42
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9e00
test al, al
je 0x100b9ecd
push 0
push str._.2f
lea eax, [esp + 0x28]
mov dword [esp + 0x3c], 0
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x2c], 0x42c80000
push eax
mov eax, dword [0x101939c0]
mov edx, 8
add eax, 0x3184
mov ecx, str.Triangle_size
push eax
call fcn.100fd110
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b9eb1
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b9ec1
mov byte [esi + 0x1b46], 1
call fcn.100e7f00
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019eea4]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
cmp dword [0x1027e9c4], 0
jne 0x100b9f4f
movss xmm1, dword [0x10184a94]
movss xmm0, dword [0x101849b4]
call fcn.100e8bc0
push 0
lea edx, [ebx + 0x1a8]
mov ecx, str.Line_of_sight
push 0
lea eax, [edx + 0x18]
push eax
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a1f40
push 0
push 0
lea edx, [ebx + 0xb6]
mov ecx, str.Armor
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.100a1f40
jmp 0x100ba339
cmp dword [0x1027e9c4], 1
jne 0x100ba339
push 0
lea edx, [ebx + 0x1a8]
mov ecx, str.Line_of_sight
push 0
lea eax, [edx + 0x18]
push eax
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a1f40
jmp 0x100ba339
cmp eax, 3
jne 0x100ba07d
mov esi, dword [0x1019142c]
xorps xmm0, xmm0
mov edi, dword [0x101939c0]
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 0x100b9fc4
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push esi
call fcn.10022380
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1b4]
push eax
lea ecx, [edi + 0x13b0]
call fcn.10097950
mov ecx, dword [esp + 0xb4]
mov esi, dword [eax]
cmp ecx, 0xf
jbe 0x100ba034
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba02a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d1
push ecx
push edx
call fcn.1011808f
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.100a1f40
jmp 0x100ba339
cmp eax, 2
jne 0x100ba339
mov esi, dword [0x1019142c]
xorps xmm0, xmm0
mov edi, dword [0x101939c0]
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 0x100ba0b8
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push esi
call fcn.10022380
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1b4]
push eax
lea ecx, [edi + 0x13d0]
call fcn.10097760
mov ecx, dword [esp + 0xb4]
mov edi, dword [eax]
cmp ecx, 0xf
jbe 0x100ba128
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba11e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba3d6
push ecx
push edx
call fcn.1011808f
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.100f9d50
movss xmm1, dword [0x10184a94]
movss xmm0, dword [0x101849d0]
call fcn.100e8bc0
mov eax, dword [0x1019eea4]
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.100dce00
mov ebx, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x20], eax
cmp ecx, ebx
jne 0x100ba1c3
inc ecx
test ebx, ebx
je 0x100ba1b1
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add eax, ebx
jmp 0x100ba1b6
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1ad0
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x20]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x1017a8e0
mov dword [esp + 0x40], 0
call fcn.100f86b0
test al, al
je 0x100ba243
mov esi, dword [0x1019eea4]
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100ba22b
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100ba23a
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9ac0
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100ba266
mov dword [esi + 0x1c18], 0
jmp 0x100ba328
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, 0x10160919
call fcn.100dce00
cmp dword [esi + 0x1bc8], eax
jne 0x100ba296
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100ba2a5
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9e00
test al, al
je 0x100ba328
lea eax, [edi + 0xc4]
push eax
push str.Local_Player
call fcn.100bac20
lea eax, [edi + 0xe8]
push eax
push 0x10160c04
call fcn.100bac20
lea eax, [edi + 0x10c]
push eax
push 0x10160c0c
call fcn.100bac20
mov esi, dword [0x1019eea4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100ba30c
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100ba31c
mov byte [esi + 0x1b46], 1
call fcn.100e7f00
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019eea4]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
mov eax, dword [0x1019eea4]
mov edx, 8
mov esi, dword [esp + 0x18]
mov ecx, str.Text_Cull_Distance
push 0x20000
push str._.1fm
or dword [eax + 0x1c78], 1
add esi, 0x9c
mov dword [eax + 0x1c7c], 0x42be0000
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0x3ecccccd
push eax
push esi
mov dword [esp + 0x34], 0x3f4ccccd
call fcn.100fdf20
movss xmm0, dword [esi]
lea ecx, [esp + 0x20]
comiss xmm0, dword [0x10184654]
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0x4479f99a
mov dword [esp + 0x20], 0
movss xmm1, dword [0x10184a18]
cmovae ecx, esi
comiss xmm1, xmm0
cmovae eax, ecx
mov eax, dword [eax]
mov dword [esi], eax
call fcn.100e36f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10124a26
call fcn.10124a26
nop
pushfd
jb 269198314
adc byte [edx + esi*2 + 0x746e100b], bl
or edx, dword [eax]
and eax, 0x9f100b73
or edx, dword [eax]
lahf
jbe 0x100ba3fa
adc byte [edi + 0x54100b76], bl
ja 0x100ba402
adc byte [ebx + 0x23100b76], bh
js 0x100ba40a
or edx, dword [eax]
and edi, dword [eax + 0xb]
adc byte [ebx], ah
js 0x100ba40e
or edx, dword [eax]
into
adc dh, cl
js 0x100ba412
adc byte [0xb0100b78], dh
jns 0x100ba41a
or edx, dword [eax]
mov al, 0x79
or edx, dword [eax]
mov al, 0x79
adc byte [eax - 0x7beff487], dh
jp 0x100ba422
or edx, dword [eax]
test byte [edx + 0xb], bh
adc dl, al
jns 0x100ba426
or edx, dword [eax]
push ebx
jnp 269198378
adc byte [ebx + 0x7b], dl
or edx, dword [eax]
push ebx
jnp 269198382
adc byte [ebx + 0x7b], dl
or edx, dword [eax]
invalid
adc dh, bh
jnp 0x100ba432
or edx, dword [eax]
jnp 0x100ba436
adc byte [ebp + 0x7b], ah
or edx, dword [eax]
adc byte [ebp + 0xb], bh
adc byte [eax], dl
jge 0x100ba43a
or edx, dword [eax]
adc byte [ebp + 0xb], bh
adc byte [eax], dl
jge 0x100ba43e
or edx, dword [eax]
mov ah, 0x7d
adc byte [ebp + edi*2 + 0x7d49100b], dh
or edx, dword [eax]
dec ecx
jge 269198406
or edx, dword [eax]
add dword [esi + 0xb], edi
adc byte [ecx], al
jle 0x100ba44a
or edx, dword [eax]
push ecx
jle 269198414
adc byte [ecx + 0x7e], dl
or edx, dword [eax]
in eax, 0x7f
adc ch, ah
jg 0x100ba452
or edx, dword [eax]
in eax, 0x7f
adc ch, ah
jg 0x100ba456
or edx, dword [eax]
mov eax, 0x6c100b81
adc byte [eax + 0x6c100b81], bh
or edx, dword [eax]
insb byte es:[edi], dx
or byte [ebx], 0x10
or edx, dword [eax]
out dx, eax
or dword [ebx], 16
or edx, dword [eax]
out dx, eax
or dword [ebx], 16
fadd qword [ebx + ecx + 0xb841110]
adc byte [ebx - 123], ah
or edx, dword [eax]
arpl word [ebp - 0x79b3eff5], ax
or edx, dword [eax]
ja 0x100ba3f7
or edx, dword [eax]
sub al, 0x87
or edx, dword [eax]
sub al, 0x87
or edx, dword [eax]
sbb dword [eax - 0x78b1eff5], ecx
or edx, dword [eax]
mov edi, 0xbf100b88
mov byte [ebx], cl
adc byte [edi - 0x1eeff475], dl
mov byte [ebx], cl
adc ah, cl
int3