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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x254
mov edx, dword [0x10192950]
lea eax, [esp + 0x8c]
push ebx
push esi
push edi
push eax
lea edx, [edx + 0x134c]
mov dword [esp + 0x9c], 0x42c80000
mov ecx, 0x1015fa18
mov dword [esp + 0xa0], 0
call fcn.100a2fb0
mov eax, dword [0x1019deb4]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100b6f19
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100fa5c0
lea edx, [esp + 0x98]
mov dword [esp + 0x98], 0x432a0000
mov ecx, str.list
mov dword [esp + 0x9c], 0x43960000
call fcn.101092b0
test al, al
je 0x100b8cee
xor edi, edi
mov dword [esp + 0x1a8], 0x1015fc2c
mov dword [esp + 0x1ac], 0x1015fc24
mov dword [esp + 0x1b0], str.Projectiles
mov dword [esp + 0x1b4], 0x1015ffec
mov dword [esp + 0x1b8], str.Loot_Crates
mov dword [esp + 0x1bc], str.Other_Entities
mov dword [esp + 0x20], edi
mov dword [esp + 0x190], edi
mov dword [esp + 0x194], edi
nop
cmp dword [0x1027d9d4], edi
jne 0x100b6fd0
mov ecx, dword [0x101903bc]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b6fb3
push 3
sub edx, esi
push 0x1015ffd4
call fcn.1002a340
test al, al
je 0x100b6fd0
mov dl, 1
jmp 0x100b6fd2
xor dl, dl
mov ecx, dword [esp + edi*4 + 0x1a8]
lea eax, [esp + 0x190]
push eax
push 0
call fcn.10108bc0
test al, al
je 0x100b6ffc
mov dword [0x1027d9d4], edi
mov dword [0x101903bc], 0x1015ffd4
xor ecx, ecx
call fcn.100ed4e0
test al, al
je 0x100b73cf
cmp edi, 3
ja case.default.0x100b7014
jmp dword [edi*4 + 0x100ba1d8]
push 0x1015ffd4
push edi
call fcn.100ba640
mov ebx, dword [0x1019deb4]
mov dword [esp + 0x14], eax
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100b739a
push 0x20
lea esi, [ebx + 0x1e60]
push str.Player
push esi
call fcn.1012b3d0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.100eea10
push 0x1cc
lea ecx, [ebx + 0x1eb0]
call fcn.100eea10
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x73
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1e50], 0x1cc
jmp 0x100b7396
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0xe0], xmm0
mov word [esp + 0xe0], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0xe2], al
lea ecx, [ecx + 0x13b0]
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.100976d0
mov ebx, dword [0x1019deb4]
mov eax, dword [eax]
add eax, 0x20
cmp dword [ebx + 0x1e5c], 0xffffffff
mov dword [esp + 0x14], eax
jne 0x100b7172
push 0x20
lea esi, [ebx + 0x1e60]
push str.Weapon
push esi
call fcn.1012b3d0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.100eea10
push 0xb8
lea ecx, [ebx + 0x1eb0]
call fcn.100eea10
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 edi, dword [esp + 0x20]
mov dword [ebx + 0x1e50], 0xb8
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
mov ecx, dword [esp + 0xf4]
cmp ecx, 0x10
jb 0x100b71ba
mov edx, dword [esp + 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b71b0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
jmp 0x100b73a6
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0xc0], xmm0
mov word [esp + 0xc0], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0xc2], al
lea ecx, [ecx + 0x13d0]
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.100974e0
mov ebx, dword [0x1019deb4]
mov eax, dword [eax]
add eax, 0x20
cmp dword [ebx + 0x1e5c], 0xffffffff
mov dword [esp + 0x14], eax
jne 0x100b72b5
push 0x20
lea esi, [ebx + 0x1e60]
push str.Projectile
push esi
call fcn.1012b3d0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.100eea10
push 0x110
lea ecx, [ebx + 0x1eb0]
call fcn.100eea10
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x44
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
mov dword [ebx + 0x1e50], 0x110
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
mov ecx, dword [esp + 0xd4]
cmp ecx, 0x10
jb 0x100b72fd
mov edx, dword [esp + 0xc0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b72f3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0xf
mov byte [esp + 0xc0], 0
jmp 0x100b73a6
push 0x1015ffd4
push edi
call fcn.100ba290
mov ebx, dword [0x1019deb4]
mov dword [esp + 0x14], eax
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100b739a
push 0x20
lea esi, [ebx + 0x1e60]
push str.Entity
push esi
call fcn.1012b3d0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.100eea10
push 0xa0
lea ecx, [ebx + 0x1eb0]
call fcn.100eea10
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x28
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1e50], 0xa0
mov edi, dword [esp + 0x20]
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
mov esi, dword [0x1019deb4]
test byte [esi + 0x1e40], 1
jne 0x100b73ba
call fcn.100e7d40
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b73c8
call fcn.100ed400
mov byte [esi + 0x1e3d], 0
call fcn.100ed730
test al, al
je 0x100b7a1e
xor edx, edx
mov ecx, str.Player
call fcn.100ed7b0
test eax, eax
je 0x100b7560
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100b73fb
jmp dword [edi*4 + 0x100ba1e8]
push esi
push ecx
push 0x1015ffd4
push edi
call fcn.100ba640
add esp, 4
mov ecx, eax
call fcn.100babc0
jmp 0x100b7560
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13b0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x1d4]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100976d0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100b7560
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b74a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b7560
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13d0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x1dc]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100974e0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100b7560
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b753d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b7560
push esi
push ecx
push 0x1015ffd4
push edi
call fcn.100ba290
add esp, 4
mov ecx, eax
call fcn.100badb0
xor edx, edx
mov ecx, str.Projectile
call fcn.100ed7b0
test eax, eax
je 0x100b76ed
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100b757f
jmp dword [edi*4 + 0x100ba1f8]
push esi
push ecx
push 0x1015ffd4
push edi
call fcn.100ba640
jmp 0x100b76e3
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x1015ffd6]
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.100976d0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100b76ed
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7622
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b76ed
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13d0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x254]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100974e0
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100badb0
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100b76ed
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b76ca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b76ed
push esi
push ecx
push 0x1015ffd4
push edi
call fcn.100ba290
add esp, 4
mov ecx, eax
call fcn.100badb0
xor edx, edx
mov ecx, str.Weapon
call fcn.100ed7b0
mov edi, dword [esp + 0x20]
test eax, eax
je 0x100b7894
mov ebx, dword [eax]
cmp edi, 3
ja case.default.0x100b7710
jmp dword [edi*4 + 0x100ba208]
push ebx
push ecx
push 0x1015ffd4
push edi
call fcn.100ba640
jmp 0x100b788a
movzx eax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13b0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x24c]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100976d0
push ebx
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100badb0
movups xmm0, xmmword [ebx + 0xa0]
movups xmmword [esi + 0xc0], xmm0
mov eax, dword [ebx + 0xb0]
mov dword [esi + 0xd0], eax
movzx eax, word [ebx + 0xb4]
mov word [esi + 0xd4], ax
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100b7894
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b77dc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b7894
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13d0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x224]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100974e0
push ebx
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100b7894
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7871
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b7894
push ebx
push ecx
push 0x1015ffd4
push edi
call fcn.100ba290
add esp, 4
mov ecx, eax
call fcn.100badb0
xor edx, edx
mov ecx, str.Entity
call fcn.100ed7b0
test eax, eax
je 0x100b7a0e
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100b78b3
jmp dword [edi*4 + 0x100ba218]
push esi
push ecx
push 0x1015ffd4
push edi
call fcn.100ba640
jmp 0x100b7a04
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0x13b0]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x21c]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100976d0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100b7a0e
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7956
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b7a0e
mov ax, word [0x1015ffd4]
xorps xmm0, xmm0
mov ecx, dword [0x10192950]
movaps xmmword [esp + 0x60], xmm0
mov word [esp + 0x60], ax
mov al, byte [0x1015ffd6]
mov byte [esp + 0x62], al
lea ecx, [ecx + 0x13d0]
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.100974e0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x74]
cmp ecx, 0x10
jb 0x100b7a0e
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b79eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b7a0e
push esi
push ecx
push 0x1015ffd4
push edi
call fcn.100ba290
add esp, 4
mov ecx, eax
call fcn.100badb0
mov eax, dword [0x1019deb4]
mov edi, dword [esp + 0x20]
mov byte [eax + 0x1e3e], 0
mov ecx, edi
call fcn.100e8670
mov ecx, dword [0x1019deb4]
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 edi, 5
ja case.default.0x100b7a74
jmp dword [edi*4 + 0x100ba228]
lea ecx, [esp + 0x98]
mov dword [esp + 0x98], 0x1015ffd8
push ecx
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], 0x1015ffe0
push eax
push ecx
lea ecx, [esp + 0x30]
call fcn.100c4f40
mov esi, dword [esp + 0x24]
jmp 0x100b7c46
mov dword [esp + 0x60], 0x10168fe4
mov dword [esp + 0x64], str.SMGs
mov dword [esp + 0x68], 0x10168ff4
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.100c4f40
mov esi, dword [esp + 0x24]
jmp 0x100b7c46
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 0x100b7aff
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.100c4f40
mov esi, dword [esp + 0x24]
jmp 0x100b7c46
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.100c4f40
mov esi, dword [esp + 0x24]
jmp 0x100b7c46
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
push 0x1015ffd4
push edi
call fcn.100ba290
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 + 0x94], eax
mov dword [esp + 0x1c], edx
test edx, edx
je 0x100b8c7b
lea ebx, [eax*4]
test cl, cl
je 0x100b7c92
push dword [esi + ebx]
push edi
call fcn.100ba290
cmp byte [eax], 0
je 0x100b8799
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
cmp dword [0x1027d9d4], edi
jne 0x100b7cfb
cmp byte [0x1027d9c8], 0
jne 0x100b7cfb
mov edx, dword [0x101903bc]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b7cc2
sub edx, ecx
mov ecx, dword [ebx + esi]
mov esi, ecx
lea eax, [esi + 1]
mov dword [esp + 0x14], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x100b7cd7
sub esi, dword [esp + 0x14]
push esi
push ecx
mov ecx, dword [0x101903bc]
call fcn.1002a340
mov esi, dword [esp + 0x24]
test al, al
je 0x100b7cfb
mov dl, 1
jmp 0x100b7cfd
xor dl, dl
mov ecx, dword [ebx + esi]
lea eax, [esp + 0x198]
push eax
push 0
call fcn.10108bc0
test al, al
je 0x100b7d28
mov eax, dword [ebx + esi]
mov dword [0x1027d9d4], edi
mov dword [0x101903bc], eax
mov byte [0x1027d9c8], 0
xor ecx, ecx
call fcn.100ed4e0
test al, al
je 0x100b8129
cmp edi, 3
ja case.default.0x100b7d40
jmp dword [edi*4 + 0x100ba240]
push dword [ebx + esi]
push edi
call fcn.100ba640
mov edx, dword [0x1019deb4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b80f0
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.1012b3d0
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x18]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100eea10
push 0x1cc
lea ecx, [esi + 0x1eb0]
call fcn.100eea10
mov edx, esi
mov ecx, 0x73
mov esi, dword [esp + 0x14]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x1cc
jmp 0x100b80ec
mov esi, dword [ebx + esi]
xorps xmm0, xmm0
mov eax, dword [0x10192950]
mov edx, esi
add eax, 0x13b0
movaps xmmword [esp + 0x150], xmm0
mov dword [esp + 0x14], 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 0x100b7e05
sub edx, ecx
lea ecx, [esp + 0x150]
push edx
push esi
call fcn.10022b10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x150]
push eax
lea eax, [esp + 0x23c]
push eax
call fcn.100976d0
mov edx, dword [0x1019deb4]
mov dword [esp + 0x18], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x14], eax
jne 0x100b7eb3
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.1012b3d0
mov edi, dword [esp + 0x24]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100eea10
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.100eea10
mov esi, dword [esp + 0x14]
mov edx, edi
mov ecx, 0x2e
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
mov dword [edx + 0x1e50], 0xb8
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov ecx, dword [esp + 0x164]
cmp ecx, 0x10
jb 0x100b7efb
mov edx, dword [esp + 0x150]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b7ef1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xf
mov byte [esp + 0x150], 0
jmp 0x100b80fc
mov esi, dword [ebx + esi]
xorps xmm0, xmm0
mov eax, dword [0x10192950]
mov edx, esi
add eax, 0x13d0
movaps xmmword [esp + 0x170], xmm0
mov dword [esp + 0x14], eax
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 0
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b7f55
sub edx, ecx
lea ecx, [esp + 0x170]
push edx
push esi
call fcn.10022b10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x170]
push eax
lea eax, [esp + 0x214]
push eax
call fcn.100974e0
mov edx, dword [0x1019deb4]
mov dword [esp + 0x18], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x14], eax
jne 0x100b8003
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.1012b3d0
mov edi, dword [esp + 0x24]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.100eea10
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.100eea10
mov esi, dword [esp + 0x14]
mov edx, edi
mov ecx, 0x44
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
mov dword [edx + 0x1e50], 0x110
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov ecx, dword [esp + 0x184]
cmp ecx, 0x10
jb 0x100b804b
mov edx, dword [esp + 0x170]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b8041
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 0xf
mov byte [esp + 0x170], 0
jmp 0x100b80fc
push dword [ebx + esi]
push edi
call fcn.100ba290
mov edx, dword [0x1019deb4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100b80f0
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.1012b3d0
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x18]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.100eea10
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.100eea10
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0x14]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0xa0
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov esi, dword [0x1019deb4]
test byte [esi + 0x1e40], 1
jne 0x100b8110
call fcn.100e7d40
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b811e
call fcn.100ed400
mov byte [esi + 0x1e3d], 0
mov esi, dword [esp + 0x24]
call fcn.100ed730
test al, al
je 0x100b8799
xor edx, edx
mov ecx, str.Player
call fcn.100ed7b0
test eax, eax
je 0x100b82e8
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100b8155
jmp dword [edi*4 + 0x100ba250]
mov eax, dword [esp + 0x24]
push esi
push ecx
push dword [ebx + eax]
push edi
call fcn.100ba640
add esp, 4
mov ecx, eax
call fcn.100babc0
jmp 0x100b82e8
mov eax, dword [0x10192950]
xorps xmm0, xmm0
add eax, 0x13b0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + eax]
mov edx, ecx
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea eax, [edx + 1]
mov dword [esp + 0x14], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x100b81b0
sub edx, dword [esp + 0x14]
push edx
push ecx
lea ecx, [esp + 0x68]
call fcn.10022b10
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x22c]
push eax
call fcn.100976d0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x74]
cmp ecx, 0x10
jb 0x100b82e8
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b8217
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b82e8
mov eax, dword [0x10192950]
xorps xmm0, xmm0
add eax, 0x13d0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + eax]
mov edx, ecx
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea eax, [edx + 1]
mov dword [esp + 0x14], eax
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b8260
sub edx, dword [esp + 0x14]
push edx
push ecx
lea ecx, [esp + 0x68]
call fcn.10022b10
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x234]
push eax
call fcn.100974e0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x74]
cmp ecx, 0x10
jb 0x100b82e8
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b82c3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b82e8
mov eax, dword [esp + 0x24]
push esi
push ecx
push dword [ebx + eax]
push edi
call fcn.100ba290
add esp, 4
mov ecx, eax
call fcn.100badb0
xor edx, edx
mov ecx, str.Weapon
call fcn.100ed7b0
test eax, eax
je 0x100b84b9
mov esi, dword [eax]
mov dword [esp + 0x18], esi
cmp edi, 3
ja case.default.0x100b830b
jmp dword [edi*4 + 0x100ba260]
mov eax, dword [esp + 0x24]
push esi
push ecx
push dword [ebx + eax]
push edi
call fcn.100ba640
jmp 0x100b84af
mov eax, dword [0x10192950]
xorps xmm0, xmm0
add eax, 0x13b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov esi, dword [ebx + eax]
mov edx, esi
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 0x100b8358
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push esi
call fcn.10022b10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x244]
push eax
call fcn.100976d0
push dword [esp + 0x18]
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100badb0
mov ecx, dword [esp + 0x18]
movups xmm0, xmmword [ecx + 0xa0]
movups xmmword [esi + 0xc0], xmm0
mov eax, dword [ecx + 0xb0]
mov dword [esi + 0xd0], eax
mov ax, word [ecx + 0xb4]
mov word [esi + 0xd4], ax
mov ecx, dword [esp + 0x74]
cmp ecx, 0x10
jb 0x100b84b9
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b83ec
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b84b9
mov eax, dword [0x10192950]
xorps xmm0, xmm0
add eax, 0x13d0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + eax]
mov edx, ecx
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea eax, [edx + 1]
mov dword [esp + 0x14], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x100b8431
sub edx, dword [esp + 0x14]
push edx
push ecx
lea ecx, [esp + 0x68]
call fcn.10022b10
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x1e4]
push eax
call fcn.100974e0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x74]
cmp ecx, 0x10
jb 0x100b84b9
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b8494
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b84b9
mov eax, dword [esp + 0x24]
push esi
push ecx
push dword [ebx + eax]
push edi
call fcn.100ba290
add esp, 4
mov ecx, eax
call fcn.100badb0
xor edx, edx
mov ecx, str.Projectile
call fcn.100ed7b0
test eax, eax
je 0x100b8669
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100b84d8
jmp dword [edi*4 + 0x100ba270]
mov eax, dword [esp + 0x24]
push esi
push ecx
push dword [ebx + eax]
push edi
call fcn.100ba640
jmp 0x100b865f
mov eax, dword [0x10192950]
xorps xmm0, xmm0
add eax, 0x13b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + eax]
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 0x100b8525
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.10022b10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x1ec]
push eax
call fcn.100976d0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x74]
cmp ecx, 0x10
jb 0x100b8669
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b858a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b8669
mov eax, dword [0x10192950]
xorps xmm0, xmm0
add eax, 0x13d0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + eax]
mov edx, edi
movaps xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea ecx, [edx + 1]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b85d0
sub edx, ecx
lea ecx, [esp + 0x60]
push edx
push edi
call fcn.10022b10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x1f4]
push eax
call fcn.100974e0
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100badb0
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x74]
cmp ecx, 0x10
jb 0x100b8669
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b8644
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
jmp 0x100b8669
mov eax, dword [esp + 0x24]
push esi
push ecx
push dword [ebx + eax]
push edi
call fcn.100ba290
add esp, 4
mov ecx, eax
call fcn.100badb0
xor edx, edx
mov ecx, str.Entity
call fcn.100ed7b0
test eax, eax
je 0x100b8785
mov edi, dword [esp + 0x20]
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100b868c
jmp dword [edi*4 + 0x100ba280]
push esi
mov esi, dword [esp + 0x28]
push ecx
push dword [ebx + esi]
push edi
call fcn.100ba640
add esp, 4
mov ecx, eax
call fcn.100badb0
jmp 0x100b8789
mov eax, dword [0x10192950]
xorps xmm0, xmm0
add eax, 0x13b0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + eax]
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 0x100b86f0
sub edx, ecx
lea ecx, [esp + 0x120]
push edx
push edi
call fcn.10022b10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x1fc]
push eax
call fcn.100976d0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x134]
cmp ecx, 0x10
jb 0x100b8767
mov edx, dword [esp + 0x120]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b875d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0xf
mov byte [esp + 0x120], 0
mov esi, dword [esp + 0x24]
mov eax, dword [0x1019deb4]
mov edi, dword [esp + 0x20]
mov byte [eax + 0x1e3e], 0
cmp edi, 3
jne 0x100b8c5e
mov ecx, dword [0x1019deb4]
push dword [esp + 0x94]
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.100ba780
push dword [ebx + esi]
push edi
call fcn.100ba290
mov al, byte [eax]
mov byte [esp + 0x93], al
mov eax, dword [esp + 0x144]
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x148]
je 0x100b8c0c
nop word [eax + eax]
mov edi, dword [eax]
xorps xmm0, xmm0
mov esi, dword [0x10192950]
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 0x100b8860
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push edi
call fcn.10022b10
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esi + 0x13b0]
call fcn.100976d0
mov ecx, dword [esp + 0xb4]
mov ebx, dword [eax]
add ebx, 0x20
mov dword [esp + 0x18], ebx
cmp ecx, 0x10
jb 0x100b88d7
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b88cd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
cmp byte [esp + 0x33], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xf
mov byte [esp + 0xa0], 0
jne 0x100b8906
cmp byte [esp + 0x93], 0
je 0x100b890f
cmp byte [ebx], 0
je 0x100b8bec
cmp dword [0x1027d9d4], 3
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
jne 0x100b8a6a
cmp byte [0x1027d9c8], 0
je 0x100b8a6a
mov ecx, dword [0x101903bc]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b8944
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 0x100b8956
sub esi, dword [esp + 0x34]
push esi
push edi
call fcn.1002a340
test al, al
je 0x100b8a6a
mov dl, 1
jmp 0x100b8a6c
mov eax, dword [0x10192950]
xorps xmm0, xmm0
add eax, 0x13d0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov edi, dword [ebx + eax]
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 0x100b89b2
sub edx, ecx
lea ecx, [esp + 0x100]
push edx
push edi
call fcn.10022b10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x204]
push eax
call fcn.100974e0
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100badb0
mov ecx, dword [esp + 0x114]
cmp ecx, 0x10
jb 0x100b8a29
mov edx, dword [esp + 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b8a1f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
add esp, 8
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xf
mov byte [esp + 0x100], 0
jmp 0x100b8785
push esi
mov esi, dword [esp + 0x28]
push ecx
push dword [ebx + esi]
push edi
call fcn.100ba290
add esp, 4
mov ecx, eax
call fcn.100badb0
jmp 0x100b8789
xor dl, dl
lea eax, [esp + 0x38]
mov ecx, edi
push eax
push 0
call fcn.10108bc0
test al, al
je 0x100b8a95
mov dword [0x1027d9d4], 3
mov dword [0x101903bc], edi
mov byte [0x1027d9c8], 1
xor ecx, ecx
call fcn.100ed4e0
test al, al
je 0x100b8b46
mov esi, dword [0x1019deb4]
mov ebx, esi
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100b8b13
push 0x20
lea esi, [ebx + 0x1e60]
push str.Weapon
push esi
call fcn.1012b3d0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.100eea10
push 0xb8
lea ecx, [ebx + 0x1eb0]
call fcn.100eea10
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x2e
mov esi, dword [esp + 0x18]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x1019deb4]
mov dword [ebx + 0x1e50], 0xb8
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
test byte [esi + 0x1e40], 1
jne 0x100b8b2d
call fcn.100e7d40
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b8b3b
call fcn.100ed400
mov ebx, dword [esp + 0x18]
mov byte [esi + 0x1e3d], 0
call fcn.100ed730
test al, al
je 0x100b8bec
xor edx, edx
mov ecx, str.Player
call fcn.100ed7b0
test eax, eax
je 0x100b8b6c
push dword [eax]
mov ecx, ebx
call fcn.100badb0
xor edx, edx
mov ecx, str.Weapon
call fcn.100ed7b0
test eax, eax
je 0x100b8bae
mov esi, dword [eax]
mov ecx, ebx
push esi
call fcn.100badb0
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.100ed7b0
test eax, eax
je 0x100b8bc7
push dword [eax]
mov ecx, ebx
call fcn.100badb0
xor edx, edx
mov ecx, str.Entity
call fcn.100ed7b0
test eax, eax
je 0x100b8be0
push dword [eax]
mov ecx, ebx
call fcn.100badb0
mov eax, dword [0x1019deb4]
mov byte [eax + 0x1e3e], 0
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x148]
jne 0x100b8830
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov ecx, dword [0x1019deb4]
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.10026bd0
mov eax, dword [esp + 0x94]
mov cl, byte [esp + 0x33]
inc eax
mov dword [esp + 0x94], eax
cmp eax, dword [esp + 0x1c]
jb 0x100b7c75
mov ecx, dword [0x1019deb4]
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.10026bd0
inc edi
mov dword [esp + 0x20], edi
cmp edi, 6
jb 0x100b6fa0
call fcn.100e3540
call fcn.100e8f00
movss xmm1, dword [0x10183a74]
xorps xmm0, xmm0
call fcn.100e8a00
mov esi, dword [0x1019deb4]
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.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b8d51
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b8d60
mov byte [esi + 0x1c08], 1
push 0
push 0
lea edx, [esp + 0x40]
mov ecx, str.child
push edx
mov edx, eax
call fcn.100e3340
test al, al
je 0x100ba1c1
push dword [0x101903bc]
push dword [0x1027d9d4]
call fcn.100ba290
mov ebx, eax
mov ecx, str.Enabled
mov edx, ebx
mov dword [esp + 0x20], ebx
call fcn.100f9b60
mov esi, dword [0x1019deb4]
movss xmm1, dword [0x10183a74]
mov ecx, dword [esi + 0x1b94]
movss xmm0, dword [ecx + 0x24c]
subss xmm0, dword [ecx + 0xc]
subss xmm0, dword [0x1018399c]
call fcn.100e8a00
or dword [esi + 0x1c78], 1
mov dword [esi + 0x1c7c], 0x435c0000
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*2]
mov eax, dword [0x10192950]
mov eax, dword [eax + 0x34e8]
cmp dword [eax + ecx*8 + 0x14], 0x10
lea edx, [eax + ecx*8]
jb 0x100b8dfc
mov edx, dword [edx]
push 0
mov ecx, str.Font
call fcn.100fa840
test al, al
je 0x100b8f87
mov ecx, dword [0x10192950]
mov eax, 0x2aaaaaab
mov dword [esp + 0x94], 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 0x100b8f47
xor esi, esi
mov dword [esp + 0x38], 0x437a0000
lea edi, [ebx + 8]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x18], esi
nop dword [eax]
add esi, dword [ecx + 0x34e8]
mov eax, edi
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
jb 0x100b8e73
mov eax, dword [edi]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x1c], ecx
push ebx
push eax
cmp ecx, 0x10
jb 0x100b8e8f
mov ecx, dword [esi]
call fcn.1002a340
mov bl, al
jmp 0x100b8e9f
mov ecx, esi
call fcn.1002a340
cmp dword [esp + 0x1c], 0x10
mov bl, al
jb 0x100b8ea1
mov esi, dword [esi]
lea eax, [esp + 0x38]
mov dl, bl
push eax
push 0
mov ecx, esi
call fcn.10108bc0
mov esi, dword [esp + 0x18]
test al, al
je 0x100b8ef9
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x94]
mov dword [ecx + 4], eax
mov ecx, dword [0x10192950]
mov eax, dword [ecx + 0x34e8]
add eax, esi
cmp edi, eax
je 0x100b8ef3
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x100b8ee4
mov eax, dword [eax]
push ecx
push eax
mov ecx, edi
call fcn.1001c6a0
mov ecx, dword [0x10192950]
push edi
call fcn.10017da0
test bl, bl
je 0x100b8f02
call fcn.100e8530
mov ecx, dword [0x10192950]
mov eax, 0x2aaaaaab
mov ebx, dword [esp + 0x94]
add esi, 0x18
inc ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x94], 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 0x100b8e60
mov ebx, dword [esp + 0x20]
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b8f6b
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b8f7b
mov byte [esi + 0x1b46], 1
call fcn.100e7d40
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019deb4]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100b8fad
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100fa5c0
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.100a1cf0
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [esi + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100b9040
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 0x100b9060
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b9058
push 0xffffffffffffffff
push esi
push str.Bottom
push 0x100fb1c0
lea edx, [ebx + 0x3c]
mov ecx, 0x1017aa00
call fcn.100fb220
mov ecx, dword [0x1019deb4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [ecx + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100b910f
movss xmm1, dword [edx + 0xc]
subss xmm1, dword [edx + 0x58]
movss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x110]
addss xmm1, dword [0x10183994]
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, 0x1015fbec
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.100a1cf0
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [esi + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100b91a2
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, 0x1015fbec
mov eax, dword [esi + 8]
mov ebx, dword [esi]
push dword [eax + ebx*4 - 4]
call fcn.100dcb00
mov edi, dword [esi + 4]
mov dword [esp + 0x1c], eax
cmp ebx, edi
jne 0x100b91f2
lea ecx, [ebx + 1]
test edi, edi
je 0x100b91e0
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100b91e5
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1880
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x1c]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x101798f0
mov dword [esp + 0x40], 0
call fcn.100f84c0
test al, al
je 0x100b9272
mov esi, dword [0x1019deb4]
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b925a
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9269
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9900
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b9295
mov dword [esi + 0x1c18], 0
jmp 0x100b93ee
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b92c5
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b92d4
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9c40
test al, al
je 0x100b93ee
mov eax, dword [0x1019deb4]
mov edx, 0x1017a9e0
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 0x100b9310
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b9305
push 0xffffffffffffffff
push esi
mov esi, dword [esp + 0x28]
mov ecx, str.Type
push 0x1017a9e0
push 0x100fb1c0
lea edx, [esi + 0x5c]
call fcn.100fb220
mov eax, dword [0x1019deb4]
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 + 0x24]
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x28], 0x3f000000
push eax
push 3
lea eax, [esi + 0x60]
push eax
call fcn.100fd490
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.100a1cf0
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b93d2
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b93e2
mov byte [esi + 0x1b46], 1
call fcn.100e7d40
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019deb4]
mov ecx, str.Name
mov edx, dword [esp + 0x20]
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.100a1cf0
mov ecx, dword [0x1019deb4]
mov eax, dword [ecx + 0x1b94]
mov byte [eax + 0x8c], 1
mov edx, dword [ecx + 0x1b94]
cmp byte [edx + 0x8f], 0
jne 0x100b94ad
movss xmm1, dword [edx + 0xc]
subss xmm1, dword [edx + 0x58]
movss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x110]
addss xmm1, dword [0x10183994]
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 [0x1027d9d4]
cmp eax, 2
jae 0x100b9d80
push dword [0x101903bc]
push eax
call fcn.100ba640
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.100a1cf0
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.100a1cf0
movss xmm1, dword [0x10183a74]
movss xmm0, dword [0x10183994]
call fcn.100e8a00
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.100a1cf0
lea edx, [ebx + 0x10e]
mov ecx, str.Audible_Only
call fcn.100f9b60
movss xmm1, dword [0x10183a74]
movss xmm0, dword [0x10183994]
call fcn.100e8a00
lea edx, [ebx + 0x10f]
mov ecx, str.Spotted_Only
call fcn.100f9b60
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.100a1cf0
movss xmm1, dword [0x10183a74]
xorps xmm0, xmm0
call fcn.100e8a00
mov eax, dword [0x1019deb4]
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.100dcb00
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x1c], eax
cmp ecx, edi
jne 0x100b9614
inc ecx
test edi, edi
je 0x100b9602
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100b9607
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1880
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x1c]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x101798f0
mov dword [esp + 0x40], 0
call fcn.100f84c0
test al, al
je 0x100b9694
mov esi, dword [0x1019deb4]
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b967c
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b968b
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9900
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b96b7
mov dword [esi + 0x1c18], 0
jmp 0x100b9813
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b96e7
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b96f6
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9c40
test al, al
je 0x100b9813
mov eax, dword [0x1019deb4]
mov edx, 0x1017a9e0
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42be0000
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b9730
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b9727
push 0xffffffffffffffff
push esi
push 0x1017a9e0
push 0x100fb1c0
lea edx, [ebx + 0x180]
mov ecx, str.Type
call fcn.100fb220
mov eax, dword [0x1019deb4]
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 + 0x24]
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x28], 0x3f000000
push eax
push 3
lea eax, [ebx + 0x184]
push eax
call fcn.100fd490
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.100a1cf0
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b97f7
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b9807
mov byte [esi + 0x1b46], 1
call fcn.100e7d40
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019deb4]
movss xmm1, dword [0x10183a74]
movss xmm0, dword [0x10183994]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
call fcn.100e8a00
lea edx, [ebx + 0x125]
mov ecx, str.Health_Bar
call fcn.100f9b60
movss xmm1, dword [0x10183a74]
xorps xmm0, xmm0
call fcn.100e8a00
mov eax, dword [0x1019deb4]
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.100dcb00
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x1c], eax
cmp ecx, edi
jne 0x100b98b1
inc ecx
test edi, edi
je 0x100b989f
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100b98a4
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1880
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x1c]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x101798f0
mov dword [esp + 0x40], 0
call fcn.100f84c0
test al, al
je 0x100b9931
mov esi, dword [0x1019deb4]
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9919
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9928
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9900
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b9954
mov dword [esi + 0x1c18], 0
jmp 0x100b9ab5
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9984
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9993
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9c40
test al, al
je 0x100b9ab5
mov eax, dword [0x1019deb4]
mov edx, str.Gradient
or dword [eax + 0x1c78], 1
xor edi, edi
mov dword [eax + 0x1c7c], 0x42be0000
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b99d0
sub ecx, esi
inc edx
add edx, ecx
inc edi
cmp byte [edx], al
jne 0x100b99c4
push 0xffffffffffffffff
push edi
push str.Gradient
push 0x100fb1c0
lea edx, [ebx + 0x12c]
mov ecx, str.Type
call fcn.100fb220
cmp dword [ebx + 0x12c], 1
jne 0x100b9a3b
movss xmm1, dword [0x10183a74]
xorps xmm0, xmm0
call fcn.100e8a00
push 0
push 0
push 0
lea edx, [ebx + 0x110]
mov ecx, 0x1015f939
push 0
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100a1cf0
xor esi, esi
mov edx, 0x1017aa04
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100b9a47
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100b9a42
push 0xffffffffffffffff
push esi
push 0x1017aa04
push 0x100fb1c0
lea edx, [ebx + 0x1c4]
mov ecx, str.HP_side
call fcn.100fb220
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b9a99
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b9aa9
mov byte [esi + 0x1b46], 1
call fcn.100e7d40
mov byte [esi + 0x1b46], 0
cmp dword [0x1027d9d4], 0
jne 0x100b9cc4
mov eax, dword [0x10192950]
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.100a1cf0
movss xmm1, dword [0x10183a74]
xorps xmm0, xmm0
call fcn.100e8a00
mov eax, dword [0x1019deb4]
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.100dcb00
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x1c], eax
cmp ecx, edi
jne 0x100b9b57
inc ecx
test edi, edi
je 0x100b9b45
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100b9b4a
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1880
mov edx, dword [esi]
mov ecx, 0x101798f0
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x1c]
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.100f84c0
test al, al
je 0x100b9bd7
mov esi, dword [0x1019deb4]
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9bbf
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9bce
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9900
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100b9bfa
mov dword [esi + 0x1c18], 0
jmp 0x100b9cc4
mov eax, dword [esi + 0x1b94]
mov ecx, 0x1015f939
mov edx, dword [eax + 0xc0]
mov eax, dword [eax + 0xc8]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100b9c2a
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100b9c39
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9c40
test al, al
je 0x100b9cc4
push 0
push str._.2f
lea eax, [esp + 0x24]
mov dword [esp + 0x3c], 0
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x28], 0x42c80000
push eax
mov eax, dword [0x10192950]
mov edx, 8
add eax, 0x3184
mov ecx, str.Triangle_size
push eax
call fcn.100fcee0
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100b9ca8
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100b9cb8
mov byte [esi + 0x1b46], 1
call fcn.100e7d40
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019deb4]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
cmp dword [0x1027d9d4], 0
jne 0x100b9d46
movss xmm1, dword [0x10183a74]
movss xmm0, dword [0x10183994]
call fcn.100e8a00
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.100a1cf0
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.100a1cf0
jmp 0x100ba135
cmp dword [0x1027d9d4], 1
jne 0x100ba135
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.100a1cf0
jmp 0x100ba135
cmp eax, 3
jne 0x100b9e79
mov esi, dword [0x101903bc]
xorps xmm0, xmm0
mov edi, dword [0x10192950]
mov edx, esi
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea ecx, [edx + 1]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b9dc0
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push esi
call fcn.10022b10
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [edi + 0x13b0]
call fcn.100976d0
mov ecx, dword [esp + 0xb4]
mov esi, dword [eax]
cmp ecx, 0x10
jb 0x100b9e30
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b9e26
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1cd
push ecx
push edx
call fcn.10117c1f
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.100a1cf0
jmp 0x100ba135
cmp eax, 2
jne 0x100ba135
mov esi, dword [0x101903bc]
xorps xmm0, xmm0
mov edi, dword [0x10192950]
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 0x100b9eb4
sub edx, ecx
lea ecx, [esp + 0xa0]
push edx
push esi
call fcn.10022b10
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [edi + 0x13d0]
call fcn.100974e0
mov ecx, dword [esp + 0xb4]
mov edi, dword [eax]
cmp ecx, 0x10
jb 0x100b9f24
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b9f1a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100ba1d2
push ecx
push edx
call fcn.10117c1f
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.100f9b60
movss xmm1, dword [0x10183a74]
movss xmm0, dword [0x101839b0]
call fcn.100e8a00
mov eax, dword [0x1019deb4]
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.100dcb00
mov ebx, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x1c], eax
cmp ecx, ebx
jne 0x100b9fbf
inc ecx
test ebx, ebx
je 0x100b9fad
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add eax, ebx
jmp 0x100b9fb2
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100a1880
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x1c]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x101798f0
mov dword [esp + 0x40], 0
call fcn.100f84c0
test al, al
je 0x100ba03f
mov esi, dword [0x1019deb4]
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100ba027
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100ba036
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.100e9900
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100ba062
mov dword [esi + 0x1c18], 0
jmp 0x100ba124
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, 0x1015f939
call fcn.100dcb00
cmp dword [esi + 0x1bc8], eax
jne 0x100ba092
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100ba0a1
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.100e9c40
test al, al
je 0x100ba124
lea eax, [edi + 0xc4]
push eax
push str.Local_Player
call fcn.100baa10
lea eax, [edi + 0xe8]
push eax
push 0x1015fc24
call fcn.100baa10
lea eax, [edi + 0x10c]
push eax
push 0x1015fc2c
call fcn.100baa10
mov esi, dword [0x1019deb4]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100ba108
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100ba118
mov byte [esi + 0x1b46], 1
call fcn.100e7d40
mov byte [esi + 0x1b46], 0
mov eax, dword [0x1019deb4]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
mov eax, dword [0x1019deb4]
mov edx, 8
mov esi, dword [esp + 0x20]
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 + 0x24]
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0x3ecccccd
push eax
push esi
mov dword [esp + 0x30], 0x3f4ccccd
call fcn.100fdc90
movss xmm0, dword [esi]
lea ecx, [esp + 0x1c]
comiss xmm0, dword [0x1018363c]
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0x4479f99a
mov dword [esp + 0x1c], 0
movss xmm1, dword [0x101839f8]
cmovae ecx, esi
comiss xmm1, xmm0
cmovae eax, ecx
mov eax, dword [eax]
mov dword [esi], eax
call fcn.100e3540
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10124776
call fcn.10124776
nop
sbb esi, dword [eax + 0xb]
adc byte [ebx], bl
jo 0x100ba1ea
adc ch, bl
jno 0x100ba1ee
adc byte [edx + 0x2100b70], bl
je 0x100ba1f6
or edx, dword [eax]
add dh, byte [ebx + ecx + 0x10]
adc byte [edx], al
je 0x100ba1fa
or edx, dword [eax]
adc byte [edi + 0x1e100b74], dh
mov bh, 0x74
or edx, dword [eax]
push ds
je 0x100ba202
or edx, dword [eax]
xchg byte [ebp + 0xb], dh
adc byte [esi + 823135093], al
adc byte [esi - 0x79eff48b], al
jne 0x100ba20a
or edx, dword [eax]
xchg byte [ebp + 0xb], dh
adc byte [ecx], dh
jbe 0x100ba20e
or edx, dword [eax]
cwde
jne 269197842
adc byte [eax + 0x17100b75], bl
adc byte [edi], dl
ja 0x100ba216
or edx, dword [eax]
pop ss
adc byte [edi], dl
ja 0x100ba21a
or edx, dword [eax]
jmp 0x100ba289
adc bl, ch
ja 0x100ba21e
or edx, dword [eax]
sub dword [edi + 0xb], esi
adc byte [ecx], ch
ja 0x100ba222
or edx, dword [eax]
mov edx, 0xba100b78
adc byte [edx - 0x45eff488], bh
or edx, dword [eax]
mov edx, 0x65100b78
jns 269197870
js 0x100ba22a
or edx, dword [eax]
jns 0x100ba22e
adc byte [ebp + 0x79], ah
or edx, dword [eax]
int3
adc ah, cl
js 0x100ba232
adc byte [ebx + 0x7a], bh
or edx, dword [eax]
jnp 0x100ba2a8
or edx, dword [eax]
pop ds
jnp 269197886
or edx, dword [eax]
mov ah, 0x7a
or edx, dword [eax]
insb byte es:[edi], dx
jnp 269197894
adc byte [edx + edi*2 + 0x7b6c100b], dh
or edx, dword [eax]
mov esp, 0x47100b7b
adc byte [ebx + edi*2 + 0x7d47100b], bh
or edx, dword [eax]
inc edi
jge 269197906
or edx, dword [eax]
inc edi
jge 0x100ba24e
adc byte [edi + 0x7d], al
or edx, dword [eax]
push ds
adc byte [esi], bl
jg 0x100ba256
adc dh, cl
jge 0x100ba25a
or edx, dword [eax]
pop esp
or dword [ebx], 193027088
adc byte [ecx + eax*4 + 0xb], bl
adc byte [ecx + eax*4 + 0xb], bl
or edx, dword [eax]
pop esp
or dword [ebx], 193078800
adc byte [edx - 0x7f], bh
or edx, dword [eax]
or byte es:[ebx], 0x10
adc byte [esi], ah
or byte [ebx], 0x10
or edx, dword [eax]
jp 0x100ba1df
or edx, dword [eax]
adc al, byte [ebx - 0x7cedeff5]
or edx, dword [eax]
sti
or dword [ebx], 16
or dword es:[ebx], 0x10
fild word [ebx + ecx + 193257232]
adc byte [ecx - 217052283], bl
test byte [ebx], cl
adc byte [ebx - 0x6ceff47a], dl
xchg byte [ebx], cl
adc byte [edi - 0x77], dh
or edx, dword [eax]
mov cl, 0x86
or edx, dword [eax]
mov dword [ebx], ecx
adc byte [ecx - 0x74eff47a], dh
mov eax, dword [esp + 4]
adc byte [ebx + 0xf342474], cl
push edi
ror byte [ebx + 0x1929503d], 0x10