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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x274
push ebx
mov al, dl
mov ebx, ecx
mov byte [esp + 0x9b], al
mov dword [esp + 4], ebx
push esi
push edi
test al, al
jne 0x100b9aa9
cmp byte [0x1015ba09], dl
je 0x100bc9d4
mov eax, dword [0x10159260]
mov edx, 0x1015ba09
push 0x3a
mov ecx, 0x10143ee4
or dword [eax + 0x1c18], 2
mov dword [eax + 0x1c38], 0
mov dword [eax + 0x1c3c], 0
mov dword [eax + 0x1c20], 1
call fcn.100499d0
movss xmm0, dword [0x10150ce0]
lea eax, [esp + 0xa8]
push eax
lea edx, [ebx + 0xa30]
mov dword [esp + 0xac], 0x42c80000
mov ecx, str.Toggle_Key
mov dword [esp + 0xb0], 0
call fcn.100c72f0
movss xmm0, dword [0x10150ce0]
lea eax, [esp + 0xa8]
push eax
lea edx, [ebx + 0xa32]
mov dword [esp + 0xac], 0x42c80000
mov ecx, str.Hold_Key
mov dword [esp + 0xb0], 0
call fcn.100c72f0
mov eax, dword [0x10159260]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100b9b3b
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.10064da0
lea edx, [esp + 0xa8]
mov dword [esp + 0x18], ebx
mov ecx, str.list
mov dword [esp + 0x24], ebx
mov dword [esp + 0xa8], 0x432a0000
mov dword [esp + 0xac], 0x43960000
call fcn.100747b0
test al, al
je 0x100bb985
xor edi, edi
mov dword [esp + 0x1c8], 0x10143c70
mov dword [esp + 0x1cc], 0x10143c68
mov dword [esp + 0x1d0], 0x10143e44
mov dword [esp + 0x1d4], str.Projectiles
mov dword [esp + 0x1d8], str.Loot_Crates
mov dword [esp + 0x1dc], str.Other_Entities
mov dword [esp + 0x1c], edi
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x1b4], edi
cmp dword [0x1015ea18], edi
jne 0x100b9bfd
mov ecx, dword [0x10157d60]
mov edx, ecx
lea esi, [edx + 1]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100b9be0
push 3
sub edx, esi
push 0x101455c4
call fcn.10097af0
test al, al
je 0x100b9bfd
mov dl, 1
jmp 0x100b9bff
xor dl, dl
mov ecx, dword [esp + edi*4 + 0x1c8]
lea eax, [esp + 0x1b0]
push eax
push 0
call fcn.10073ef0
test al, al
je 0x100b9c29
mov dword [0x1015ea18], edi
mov dword [0x10157d60], 0x101455c4
xor ecx, ecx
call fcn.100511f0
test al, al
je 0x100b9ffc
cmp edi, 3
ja case.default.0x100b9c41
jmp dword [edi*4 + 0x100bc9e8]
push 0x101455c4
push edi
lea ecx, [esp + 0x2c]
call fcn.100bce30
mov ebx, dword [0x10159260]
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100b9fc3
push 0x20
lea esi, [ebx + 0x1e60]
push str.Player
push esi
call fcn.101060f0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.10052640
push 0x14c
lea ecx, [ebx + 0x1eb0]
call fcn.10052640
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x53
mov esi, dword [esp + 0x10]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1e50], 0x14c
jmp 0x100b9fbf
mov ax, word [0x101455c4]
lea ecx, [ebx + 0xa74]
xorps xmm0, xmm0
mov dword [esp + 0x110], 3
movaps xmmword [esp + 0x100], xmm0
mov word [esp + 0x100], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x102], al
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x264]
mov dword [esp + 0x118], 0xf
push eax
mov byte [esp + 0x10b], 0
call fcn.100bda30
mov ebx, dword [0x10159260]
mov eax, dword [eax]
add eax, 0x20
cmp dword [ebx + 0x1e5c], 0xffffffff
mov dword [esp + 0x10], eax
jne 0x100b9d9d
push 0x20
lea esi, [ebx + 0x1e60]
push str.Weapon
push esi
call fcn.101060f0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.10052640
push 0xb8
lea ecx, [ebx + 0x1eb0]
call fcn.10052640
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x2e
mov esi, dword [esp + 0x10]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov dword [ebx + 0x1e50], 0xb8
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
mov ecx, dword [esp + 0x114]
cmp ecx, 0x10
jb 0x100b9de5
mov edx, dword [esp + 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b9ddb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0xf
mov byte [esp + 0x100], 0
jmp 0x100b9fcf
mov ax, word [0x101455c4]
lea ecx, [ebx + 0xa94]
xorps xmm0, xmm0
mov dword [esp + 0xf0], 3
movaps xmmword [esp + 0xe0], xmm0
mov word [esp + 0xe0], ax
mov al, byte [0x101455c6]
mov byte [esp + 0xe2], al
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x25c]
mov dword [esp + 0xf8], 0xf
push eax
mov byte [esp + 0xeb], 0
call fcn.100bd840
mov ebx, dword [0x10159260]
mov eax, dword [eax]
add eax, 0x20
cmp dword [ebx + 0x1e5c], 0xffffffff
mov dword [esp + 0x10], eax
jne 0x100b9eda
push 0x20
lea esi, [ebx + 0x1e60]
push str.Projectile
push esi
call fcn.101060f0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.10052640
push 0x110
lea ecx, [ebx + 0x1eb0]
call fcn.10052640
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x44
mov esi, dword [esp + 0x10]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov dword [ebx + 0x1e50], 0x110
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
mov ecx, dword [esp + 0xf4]
cmp ecx, 0x10
jb 0x100b9f22
mov edx, dword [esp + 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100b9f18
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0xf
mov byte [esp + 0xe0], 0
jmp 0x100b9fcf
push 0x101455c4
push edi
lea ecx, [esp + 0x20]
call fcn.100bcaa0
mov ebx, dword [0x10159260]
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100b9fc3
push 0x20
lea esi, [ebx + 0x1e60]
push str.Entity
push esi
call fcn.101060f0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.10052640
push 0xa0
lea ecx, [ebx + 0x1eb0]
call fcn.10052640
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x28
mov esi, dword [esp + 0x10]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x1e50], 0xa0
mov edi, dword [esp + 0x1c]
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
mov esi, dword [0x10159260]
test byte [esi + 0x1e40], 1
jne 0x100b9fe3
call fcn.1004bc10
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100b9ff1
call fcn.10051110
mov ebx, dword [esp + 0xc]
mov byte [esi + 0x1e3d], 0
call fcn.10051440
test al, al
je 0x100ba658
xor edx, edx
mov ecx, str.Player
call fcn.100514c0
test eax, eax
je 0x100ba189
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100ba028
jmp dword [edi*4 + 0x100bc9f8]
push esi
push ecx
push 0x101455c4
push edi
lea ecx, [esp + 0x34]
call fcn.100bce30
add esp, 4
mov ecx, eax
call fcn.100bd3c0
jmp 0x100ba189
mov ax, word [0x101455c4]
lea ecx, [ebx + 0xa74]
xorps xmm0, xmm0
mov dword [esp + 0x50], 3
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x42], al
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x24c]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100bda30
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100ba189
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba0d3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100ba189
mov ax, word [0x101455c4]
lea ecx, [ebx + 0xa94]
xorps xmm0, xmm0
mov dword [esp + 0x50], 3
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x42], al
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x244]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100bd840
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100ba189
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba162
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100ba189
push esi
push ecx
push 0x101455c4
push edi
lea ecx, [esp + 0x28]
call fcn.100bcaa0
add esp, 4
mov ecx, eax
call fcn.100bd4e0
xor edx, edx
mov ecx, str.Weapon
call fcn.100514c0
test eax, eax
je 0x100ba330
mov ebx, dword [eax]
cmp edi, 3
ja case.default.0x100ba1a8
jmp dword [edi*4 + 0x100bca08]
push ebx
push ecx
push 0x101455c4
push edi
lea ecx, [esp + 0x34]
call fcn.100bce30
jmp 0x100ba326
movzx eax, word [0x101455c4]
xorps xmm0, xmm0
mov ecx, dword [esp + 0xc]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0xa74]
lea eax, [esp + 0x40]
mov dword [esp + 0x50], 3
push eax
lea eax, [esp + 0x23c]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100bda30
push ebx
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100bd4e0
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 0x100ba330
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba276
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100ba330
mov ax, word [0x101455c4]
xorps xmm0, xmm0
mov ecx, dword [esp + 0xc]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x42], al
lea ecx, [ecx + 0xa94]
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.100bd840
push ebx
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100ba330
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba309
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100ba330
push ebx
push ecx
push 0x101455c4
push edi
lea ecx, [esp + 0x28]
call fcn.100bcaa0
add esp, 4
mov ecx, eax
call fcn.100bd4e0
xor edx, edx
mov ecx, str.Projectile
call fcn.100514c0
test eax, eax
je 0x100ba4c1
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100ba34f
jmp dword [edi*4 + 0x100bca18]
push esi
push ecx
push 0x101455c4
push edi
lea ecx, [esp + 0x34]
call fcn.100bce30
jmp 0x100ba4b7
mov ax, word [0x101455c4]
xorps xmm0, xmm0
mov ebx, dword [esp + 0xc]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x42], al
lea ecx, [ebx + 0xa74]
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.100bda30
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100ba4c5
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba3f4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100ba4c5
mov ax, word [0x101455c4]
xorps xmm0, xmm0
mov ebx, dword [esp + 0xc]
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x42], al
lea ecx, [ebx + 0xa94]
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.100bd840
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100bd4e0
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 0x100ba4c5
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba49a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100ba4c5
push esi
push ecx
push 0x101455c4
push edi
lea ecx, [esp + 0x28]
call fcn.100bcaa0
add esp, 4
mov ecx, eax
call fcn.100bd4e0
mov ebx, dword [esp + 0xc]
xor edx, edx
mov ecx, str.Entity
call fcn.100514c0
test eax, eax
je 0x100ba648
mov esi, dword [eax]
mov eax, dword [esp + 0x1c]
cmp eax, 3
ja case.default.0x100ba4e8
jmp dword [eax*4 + 0x100bca28]
push esi
push ecx
push 0x101455c4
push eax
lea ecx, [esp + 0x34]
call fcn.100bce30
jmp 0x100ba63e
mov ax, word [0x101455c4]
lea ecx, [ebx + 0xa74]
xorps xmm0, xmm0
mov dword [esp + 0x50], 3
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x42], al
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x254]
mov dword [esp + 0x58], 0xf
push eax
mov byte [esp + 0x4b], 0
call fcn.100bda30
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x10
jb 0x100ba648
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba589
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100ba648
mov ax, word [0x101455c4]
lea ecx, [ebx + 0xa94]
xorps xmm0, xmm0
mov dword [esp + 0x80], 3
movaps xmmword [esp + 0x70], xmm0
mov word [esp + 0x70], ax
mov al, byte [0x101455c6]
mov byte [esp + 0x72], al
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x26c]
mov dword [esp + 0x88], 0xf
push eax
mov byte [esp + 0x7b], 0
call fcn.100bd840
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x84]
cmp ecx, 0x10
jb 0x100ba648
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100ba621
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100ba648
push esi
push ecx
push 0x101455c4
push eax
lea ecx, [esp + 0x28]
call fcn.100bcaa0
add esp, 4
mov ecx, eax
call fcn.100bd4e0
mov eax, dword [0x10159260]
mov edi, dword [esp + 0x1c]
mov byte [eax + 0x1e3e], 0
mov ecx, edi
call fcn.1004c4b0
mov ecx, dword [0x10159260]
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.0x100ba6ae
jmp dword [edi*4 + 0x100bca38]
lea ecx, [esp + 0xa8]
mov dword [esp + 0xa8], str.Visible
push ecx
lea eax, [esp + 0xb4]
mov dword [esp + 0xb0], str.Occluded
push eax
push ecx
lea ecx, [esp + 0x34]
call fcn.100bd590
mov esi, dword [esp + 0x28]
jmp 0x100ba8ad
mov dword [esp + 0x70], 0x10145568
mov dword [esp + 0x74], str.SMGs
mov dword [esp + 0x78], 0x10145578
mov dword [esp + 0x7c], str.Sniper_Rifles
mov dword [esp + 0x80], str.Shotguns
mov dword [esp + 0x84], str.Machineguns
mov dword [esp + 0x88], str.Grenades
mov dword [esp + 0x8c], str.Melee
mov dword [esp + 0x90], str.Other
lea ecx, [esp + 0x70]
push ecx
lea eax, [esp + 0x98]
push eax
push ecx
lea ecx, [esp + 0x34]
call fcn.100bd590
mov esi, dword [esp + 0x28]
jmp 0x100ba8ad
mov dword [esp + 0x70], str.Flashbang
mov dword [esp + 0x74], str.HE_Grenade
mov dword [esp + 0x78], str.Breach_Charge
mov dword [esp + 0x7c], str.Bump_Mine
mov dword [esp + 0x80], str.Decoy_Grenade
mov dword [esp + 0x84], str.Molotov
mov dword [esp + 0x88], str.TA_Grenade
mov dword [esp + 0x8c], str.Smoke_Grenade
mov dword [esp + 0x90], str.Snowball
jmp 0x100ba745
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], str.Pistol_Case
push ecx
lea eax, [esp + 0x8c]
mov dword [esp + 0x78], str.Light_Case
push eax
push ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x84], str.Heavy_Case
mov dword [esp + 0x88], str.Explosive_Case
mov dword [esp + 0x8c], str.Tools_Case
mov dword [esp + 0x90], str.Cash_Dufflebag
call fcn.100bd590
mov esi, dword [esp + 0x28]
jmp 0x100ba8ad
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], str.Defuse_Kit
push ecx
lea eax, [esp + 0x9c]
mov dword [esp + 0x78], str.Chicken
push eax
push ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x84], str.Planted_C4
mov dword [esp + 0x88], str.Hostage
mov dword [esp + 0x8c], str.Sentry
mov dword [esp + 0x90], str.Cash
mov dword [esp + 0x94], str.Ammo_Box
mov dword [esp + 0x98], str.Radar_Jammer
mov dword [esp + 0x9c], str.Snowball_Pile
mov dword [esp + 0xa0], str.Collectable_Coin
call fcn.100bd590
mov esi, dword [esp + 0x28]
jmp 0x100ba8ad
xor esi, esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
push 0x101455c4
push edi
lea ecx, [esp + 0x20]
call fcn.100bcaa0
mov edx, dword [esp + 0x2c]
sub edx, esi
sar edx, 2
mov cl, byte [eax]
xor eax, eax
mov byte [esp + 0x37], cl
mov dword [esp + 0xa4], eax
mov dword [esp + 0x14], edx
test edx, edx
je 0x100bb90d
lea ebx, [eax*4]
test cl, cl
je 0x100ba901
push dword [ebx + esi]
lea ecx, [esp + 0x1c]
push edi
call fcn.100bcaa0
cmp byte [eax], 0
je 0x100bb425
cmp dword [0x1015ea18], edi
jne 0x100ba959
cmp byte [0x1015ea1c], 0
jne 0x100ba959
mov edx, dword [0x10157d60]
lea ecx, [edx + 1]
nop dword [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x100ba920
sub edx, ecx
mov ecx, dword [ebx + esi]
mov esi, ecx
lea eax, [esi + 1]
mov dword [esp + 0x10], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x100ba935
sub esi, dword [esp + 0x10]
push esi
push ecx
mov ecx, dword [0x10157d60]
call fcn.10097af0
mov esi, dword [esp + 0x28]
test al, al
je 0x100ba959
mov dl, 1
jmp 0x100ba95b
xor dl, dl
mov ecx, dword [ebx + esi]
lea eax, [esp + 0x1b8]
push eax
push 0
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0
call fcn.10073ef0
test al, al
je 0x100ba99c
mov eax, dword [ebx + esi]
mov dword [0x1015ea18], edi
mov dword [0x10157d60], eax
mov byte [0x1015ea1c], 0
xor ecx, ecx
call fcn.100511f0
test al, al
je 0x100bad96
cmp edi, 3
ja case.default.0x100ba9b4
jmp dword [edi*4 + 0x100bca50]
push dword [ebx + esi]
lea ecx, [esp + 0x28]
push edi
call fcn.100bce30
mov edx, dword [0x10159260]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100bad5d
push 0x20
lea esi, [edx + 0x1e60]
push str.Player
push esi
call fcn.101060f0
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x20]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.10052640
push 0x14c
lea ecx, [esi + 0x1eb0]
call fcn.10052640
mov edx, esi
mov ecx, 0x53
mov esi, dword [esp + 0x10]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0x14c
jmp 0x100bad59
mov edx, dword [ebx + esi]
xorps xmm0, xmm0
mov ecx, edx
movaps xmmword [esp + 0x180], xmm0
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100baa70
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x188]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x180]
push eax
lea eax, [esp + 0x274]
push eax
lea ecx, [ecx + 0xa74]
call fcn.100bda30
mov edx, dword [0x10159260]
mov dword [esp + 0x20], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x10], eax
jne 0x100bab24
push 0x20
lea esi, [edx + 0x1e60]
push str.Weapon
push esi
call fcn.101060f0
mov edi, dword [esp + 0x2c]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.10052640
push 0xb8
lea ecx, [edi + 0x1eb0]
call fcn.10052640
mov esi, dword [esp + 0x10]
mov edx, edi
mov ecx, 0x2e
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov dword [edx + 0x1e50], 0xb8
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov ecx, dword [esp + 0x194]
cmp ecx, 0x10
jb 0x100bab6c
mov edx, dword [esp + 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bab62
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0xf
mov byte [esp + 0x180], 0
jmp 0x100bad69
mov edx, dword [ebx + esi]
xorps xmm0, xmm0
mov ecx, edx
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100babb8
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x128]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x27c]
push eax
lea ecx, [ecx + 0xa94]
call fcn.100bd840
mov edx, dword [0x10159260]
mov dword [esp + 0x20], edx
mov eax, dword [eax]
add eax, 0x20
cmp dword [edx + 0x1e5c], 0xffffffff
mov dword [esp + 0x10], eax
jne 0x100bac6c
push 0x20
lea esi, [edx + 0x1e60]
push str.Projectile
push esi
call fcn.101060f0
mov edi, dword [esp + 0x2c]
add esp, 0xc
mov byte [esi + 0x20], 0
push 0
lea ecx, [edi + 0x1eb0]
call fcn.10052640
push 0x110
lea ecx, [edi + 0x1eb0]
call fcn.10052640
mov esi, dword [esp + 0x10]
mov edx, edi
mov ecx, 0x44
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov dword [edx + 0x1e50], 0x110
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov ecx, dword [esp + 0x134]
cmp ecx, 0x10
jb 0x100bacb4
mov edx, dword [esp + 0x120]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bacaa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0xf
mov byte [esp + 0x120], 0
jmp 0x100bad69
push dword [ebx + esi]
lea ecx, [esp + 0x1c]
push edi
call fcn.100bcaa0
mov edx, dword [0x10159260]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edx
cmp dword [edx + 0x1e5c], 0xffffffff
jne 0x100bad5d
push 0x20
lea esi, [edx + 0x1e60]
push str.Entity
push esi
call fcn.101060f0
mov byte [esi + 0x20], 0
add esp, 0xc
mov esi, dword [esp + 0x20]
push 0
lea ecx, [esi + 0x1eb0]
call fcn.10052640
push 0xa0
lea ecx, [esi + 0x1eb0]
call fcn.10052640
mov edx, esi
mov ecx, 0x28
mov esi, dword [esp + 0x10]
mov edi, dword [edx + 0x1eb8]
mov dword [edx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x1e50], 0xa0
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 0x1b38]
mov dword [edx + 0x1e5c], eax
mov esi, dword [0x10159260]
test byte [esi + 0x1e40], 1
jne 0x100bad7d
call fcn.1004bc10
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100bad8b
call fcn.10051110
mov byte [esi + 0x1e3d], 0
mov esi, dword [esp + 0x28]
call fcn.10051440
test al, al
je 0x100bb425
xor edx, edx
mov ecx, str.Player
call fcn.100514c0
test eax, eax
je 0x100baf65
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100badc2
jmp dword [edi*4 + 0x100bca60]
mov eax, dword [esp + 0x28]
push esi
push ecx
lea ecx, [esp + 0x2c]
push dword [ebx + eax]
push edi
call fcn.100bce30
add esp, 4
mov ecx, eax
call fcn.100bd3c0
jmp 0x100baf65
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
mov ecx, edx
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [ecx + 1]
mov dword [esp + 0x10], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bae20
sub ecx, dword [esp + 0x10]
push ecx
push edx
lea ecx, [esp + 0x78]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x1e4]
push eax
lea ecx, [ecx + 0xa74]
call fcn.100bda30
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x84]
cmp ecx, 0x10
jb 0x100baf65
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bae90
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100baf65
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
mov ecx, edx
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [ecx + 1]
mov dword [esp + 0x10], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100baed0
sub ecx, dword [esp + 0x10]
push ecx
push edx
lea ecx, [esp + 0x78]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x1ec]
push eax
lea ecx, [ecx + 0xa94]
call fcn.100bd840
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x84]
cmp ecx, 0x10
jb 0x100baf65
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100baf3c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100baf65
mov eax, dword [esp + 0x28]
push esi
push ecx
lea ecx, [esp + 0x20]
push dword [ebx + eax]
push edi
call fcn.100bcaa0
add esp, 4
mov ecx, eax
call fcn.100bd4e0
xor edx, edx
mov ecx, str.Weapon
call fcn.100514c0
test eax, eax
je 0x100bb145
mov esi, dword [eax]
mov dword [esp + 0x20], esi
cmp edi, 3
ja case.default.0x100baf88
jmp dword [edi*4 + 0x100bca70]
mov eax, dword [esp + 0x28]
push esi
push ecx
lea ecx, [esp + 0x2c]
push dword [ebx + eax]
push edi
call fcn.100bce30
jmp 0x100bb13b
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
mov ecx, edx
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bafd1
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x78]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x1f4]
push eax
lea ecx, [ecx + 0xa74]
call fcn.100bda30
push dword [esp + 0x20]
mov esi, dword [eax]
lea ecx, [esi + 0x20]
call fcn.100bd4e0
mov ecx, dword [esp + 0x20]
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 + 0x84]
cmp ecx, 0x10
jb 0x100bb145
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb06e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100bb145
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
mov ecx, edx
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea eax, [ecx + 1]
mov dword [esp + 0x10], eax
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bb0b0
sub ecx, dword [esp + 0x10]
push ecx
push edx
lea ecx, [esp + 0x78]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x1fc]
push eax
lea ecx, [ecx + 0xa94]
call fcn.100bd840
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x84]
cmp ecx, 0x10
jb 0x100bb145
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb11c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100bb145
mov eax, dword [esp + 0x28]
push esi
push ecx
lea ecx, [esp + 0x20]
push dword [ebx + eax]
push edi
call fcn.100bcaa0
add esp, 4
mov ecx, eax
call fcn.100bd4e0
xor edx, edx
mov ecx, str.Projectile
call fcn.100514c0
test eax, eax
je 0x100bb2fd
mov esi, dword [eax]
cmp edi, 3
ja case.default.0x100bb164
jmp dword [edi*4 + 0x100bca80]
mov eax, dword [esp + 0x28]
push esi
push ecx
lea ecx, [esp + 0x2c]
push dword [ebx + eax]
push edi
call fcn.100bce30
jmp 0x100bb2f3
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
mov ecx, edx
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bb1b0
sub ecx, edi
push ecx
push edx
lea ecx, [esp + 0x78]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x204]
push eax
lea ecx, [ecx + 0xa74]
call fcn.100bda30
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x84]
cmp ecx, 0x10
jb 0x100bb2fd
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb21e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100bb2fd
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
mov ecx, edx
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bb257
sub ecx, edi
push ecx
push edx
lea ecx, [esp + 0x78]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x20c]
push eax
lea ecx, [ecx + 0xa94]
call fcn.100bd840
push esi
mov edi, dword [eax]
lea ecx, [edi + 0x20]
call fcn.100bd4e0
add esi, 0xa0
add edi, 0xc0
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x84]
cmp ecx, 0x10
jb 0x100bb2fd
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb2d4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
jmp 0x100bb2fd
mov eax, dword [esp + 0x28]
push esi
push ecx
lea ecx, [esp + 0x20]
push dword [ebx + eax]
push edi
call fcn.100bcaa0
add esp, 4
mov ecx, eax
call fcn.100bd4e0
xor edx, edx
mov ecx, str.Entity
call fcn.100514c0
test eax, eax
je 0x100bb411
mov esi, dword [eax]
mov eax, dword [esp + 0x1c]
cmp eax, 3
ja case.default.0x100bb320
jmp dword [eax*4 + 0x100bca90]
push esi
mov esi, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x2c]
push dword [ebx + esi]
push eax
call fcn.100bce30
add esp, 4
mov ecx, eax
call fcn.100bd4e0
jmp 0x100bb415
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
mov ecx, edx
movaps xmmword [esp + 0x160], xmm0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bb376
sub ecx, edi
push ecx
push edx
lea ecx, [esp + 0x168]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x160]
push eax
lea eax, [esp + 0x214]
push eax
lea ecx, [ecx + 0xa74]
call fcn.100bda30
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x174]
cmp ecx, 0x10
jb 0x100bb3f3
mov edx, dword [esp + 0x160]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb3e9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0xf
mov byte [esp + 0x160], 0
mov esi, dword [esp + 0x28]
mov eax, dword [0x10159260]
mov edi, dword [esp + 0x1c]
mov byte [eax + 0x1e3e], 0
cmp edi, 2
jne 0x100bb8f0
mov ecx, dword [0x10159260]
push dword [esp + 0xa4]
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 + 0x1a8]
push eax
call fcn.100bcf80
push dword [esi + ebx]
lea ecx, [esp + 0x1c]
push edi
call fcn.100bcaa0
mov al, byte [eax]
mov byte [esp + 0xa2], al
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x1a8]
je 0x100bb89e
mov ebx, dword [esp + 0xc]
add ebx, 0xa74
mov dword [esp + 0x6c], ebx
mov edi, dword [eax]
xorps xmm0, xmm0
mov ecx, edi
movaps xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bb4f0
sub ecx, edx
push ecx
push edi
lea ecx, [esp + 0xb8]
call fcn.1009d160
lea eax, [esp + 0xb0]
mov ecx, ebx
push eax
lea eax, [esp + 0x1c4]
push eax
call fcn.100bda30
mov ecx, dword [esp + 0xc4]
mov ebx, dword [eax]
add ebx, 0x20
mov dword [esp + 0x20], ebx
cmp ecx, 0x10
jb 0x100bb563
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb559
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
cmp byte [esp + 0x37], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0xf
mov byte [esp + 0xb0], 0
jne 0x100bb592
cmp byte [esp + 0xa2], 0
je 0x100bb59b
cmp byte [ebx], 0
je 0x100bb87a
cmp dword [0x1015ea18], 2
jne 0x100bb6e8
cmp byte [0x1015ea1c], 0
je 0x100bb6e8
mov ecx, dword [0x10157d60]
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x100bb5c0
sub edx, esi
mov esi, edi
lea eax, [esi + 1]
mov dword [esp + 0xdc], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x100bb5d5
sub esi, dword [esp + 0xdc]
push esi
push edi
call fcn.10097af0
test al, al
je 0x100bb6e8
mov dl, 1
jmp 0x100bb6ea
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
mov ecx, edx
movaps xmmword [esp + 0x140], xmm0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bb626
sub ecx, edi
push ecx
push edx
lea ecx, [esp + 0x148]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x21c]
push eax
lea ecx, [ecx + 0xa94]
call fcn.100bd840
push esi
mov ecx, dword [eax]
add ecx, 0x20
call fcn.100bd4e0
mov ecx, dword [esp + 0x154]
cmp ecx, 0x10
jb 0x100bb6a3
mov edx, dword [esp + 0x140]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bb699
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0xf
mov byte [esp + 0x140], 0
jmp 0x100bb411
push esi
mov esi, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x20]
push dword [ebx + esi]
push eax
call fcn.100bcaa0
add esp, 4
mov ecx, eax
call fcn.100bd4e0
jmp 0x100bb415
xor dl, dl
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0
push eax
push 0
mov ecx, edi
mov dword [esp + 0x44], 0
call fcn.10073ef0
test al, al
je 0x100bb723
mov dword [0x1015ea18], 2
mov dword [0x10157d60], edi
mov byte [0x1015ea1c], 1
xor ecx, ecx
call fcn.100511f0
test al, al
je 0x100bb7d4
mov esi, dword [0x10159260]
mov ebx, esi
cmp dword [ebx + 0x1e5c], 0xffffffff
jne 0x100bb7a1
push 0x20
lea esi, [ebx + 0x1e60]
push str.Weapon
push esi
call fcn.101060f0
add esp, 0xc
mov byte [esi + 0x20], 0
lea ecx, [ebx + 0x1eb0]
push 0
call fcn.10052640
push 0xb8
lea ecx, [ebx + 0x1eb0]
call fcn.10052640
mov edi, dword [ebx + 0x1eb8]
mov ecx, 0x2e
mov esi, dword [esp + 0x20]
mov dword [ebx + 0x1e4c], edi
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x10159260]
mov dword [ebx + 0x1e50], 0xb8
mov eax, dword [ebx + 0x1b38]
mov dword [ebx + 0x1e5c], eax
test byte [esi + 0x1e40], 1
jne 0x100bb7bb
call fcn.1004bc10
cmp dword [esi + 0x1e5c], 0xffffffff
jne 0x100bb7c9
call fcn.10051110
mov ebx, dword [esp + 0x20]
mov byte [esi + 0x1e3d], 0
call fcn.10051440
test al, al
je 0x100bb87a
xor edx, edx
mov ecx, str.Player
call fcn.100514c0
test eax, eax
je 0x100bb7fa
push dword [eax]
mov ecx, ebx
call fcn.100bd4e0
xor edx, edx
mov ecx, str.Weapon
call fcn.100514c0
test eax, eax
je 0x100bb83c
mov esi, dword [eax]
mov ecx, ebx
push esi
call fcn.100bd4e0
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.100514c0
test eax, eax
je 0x100bb855
push dword [eax]
mov ecx, ebx
call fcn.100bd4e0
xor edx, edx
mov ecx, str.Entity
call fcn.100514c0
test eax, eax
je 0x100bb86e
push dword [eax]
mov ecx, ebx
call fcn.100bd4e0
mov eax, dword [0x10159260]
mov byte [eax + 0x1e3e], 0
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x6c]
add eax, 4
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x1a8]
jne 0x100bb4c4
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov ecx, dword [0x10159260]
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 + 0x1a4]
movss dword [eax + 0x10c], xmm0
addss xmm0, dword [eax + 0xc]
addss xmm0, dword [eax + 0x110]
movss dword [eax + 0xcc], xmm0
call fcn.1009d440
mov eax, dword [esp + 0xa4]
mov cl, byte [esp + 0x37]
inc eax
mov dword [esp + 0xa4], eax
cmp eax, dword [esp + 0x14]
jb 0x100ba8e0
mov ecx, dword [0x10159260]
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 + 0x28]
dec dword [eax + 0xc0]
call fcn.1009d440
inc edi
mov dword [esp + 0x1c], edi
cmp edi, 6
jae 0x100bb97b
mov ebx, dword [esp + 0xc]
jmp 0x100b9bc8
call fcn.10047400
call fcn.1004ccb0
movss xmm1, dword [0x10150da0]
xorps xmm0, xmm0
call fcn.1004c840
mov esi, dword [0x10159260]
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.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bb9e8
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bb9f7
mov byte [esi + 0x1c08], 1
push 0
push 0
lea edx, [esp + 0x40]
mov ecx, str.child
push edx
mov edx, eax
call fcn.10047200
test al, al
je 0x100bc9c0
push dword [0x10157d60]
lea ecx, [esp + 0x1c]
push dword [0x1015ea18]
call fcn.100bcaa0
mov ebx, eax
mov ecx, str.Enabled
mov edx, ebx
mov dword [esp + 0x18], ebx
call fcn.100642c0
mov esi, dword [0x10159260]
movss xmm1, dword [0x10150da0]
mov ecx, dword [esi + 0x1b94]
movss xmm0, dword [ecx + 0x24c]
subss xmm0, dword [ecx + 0xc]
subss xmm0, dword [0x10150d18]
call fcn.1004c840
or dword [esi + 0x1c78], 1
mov dword [esi + 0x1c7c], 0x435c0000
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0xc]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0xb08]
cmp dword [eax + ecx*8 + 0x14], 0x10
lea edx, [eax + ecx*8]
jb 0x100bba96
mov edx, dword [edx]
push 0
mov ecx, str.Font
call fcn.10065390
test al, al
je 0x100bbc1e
mov ecx, dword [esi + 0xb0c]
mov eax, 0x2aaaaaab
mov ebx, dword [esi + 0xb08]
sub ecx, ebx
imul ecx
mov dword [esp + 0xa4], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100bbbda
mov edi, dword [esp + 0x18]
add edi, 8
mov dword [esp + 0x38], 0x437a0000
xor esi, esi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x1c], esi
add esi, ebx
mov eax, edi
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
jb 0x100bbb06
mov eax, dword [edi]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x14], ecx
push ebx
push eax
cmp ecx, 0x10
jb 0x100bbb22
mov ecx, dword [esi]
call fcn.10097af0
mov bl, al
jmp 0x100bbb32
mov ecx, esi
call fcn.10097af0
cmp dword [esp + 0x14], 0x10
mov bl, al
jb 0x100bbb34
mov esi, dword [esi]
lea eax, [esp + 0x38]
mov dl, bl
push eax
push 0
mov ecx, esi
call fcn.10073ef0
mov esi, dword [esp + 0x1c]
test al, al
je 0x100bbb88
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xa4]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xb08]
add eax, esi
cmp edi, eax
je 0x100bbb7e
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x100bbb75
mov eax, dword [eax]
push ecx
push eax
mov ecx, edi
call fcn.10094520
mov ecx, dword [esp + 0xc]
push edi
call fcn.100873c0
test bl, bl
je 0x100bbb91
call fcn.1004c380
mov ecx, dword [esp + 0xc]
add esi, 0x18
mov ebx, dword [esp + 0xa4]
inc ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0xa4], ebx
mov eax, dword [ecx + 0xb08]
mov ecx, dword [ecx + 0xb0c]
mov dword [esp + 0x14], eax
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
mov ebx, dword [esp + 0x14]
jb 0x100bbaf7
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bbbfe
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bbc0e
mov byte [esi + 0x1b46], 1
call fcn.1004bc10
mov ebx, dword [esp + 0x18]
mov byte [esi + 0x1b46], 0
mov eax, dword [0x10159260]
mov ecx, dword [eax + 0x1b94]
cmp byte [ecx + 0x8f], 0
jne 0x100bbc44
mov ecx, dword [ecx + 0x1a0]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.10064da0
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.100c6880
movss xmm1, dword [0x10150da0]
xorps xmm0, xmm0
call fcn.1004c840
mov eax, dword [0x10159260]
mov edx, str.Bottom
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42b40000
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bbca0
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bbc94
push 0xffffffffffffffff
push esi
push str.Bottom
push 0x10065d10
lea edx, [ebx + 0x3c]
mov ecx, 0x10146d54
call fcn.10065d70
movss xmm1, dword [0x10150da0]
movss xmm0, dword [0x10150d10]
call fcn.1004c840
lea edx, [ebx + 0x40]
mov ecx, 0x1013df58
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.100c6880
movss xmm1, dword [0x10150da0]
xorps xmm0, xmm0
call fcn.1004c840
mov eax, dword [0x10159260]
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, 0x1013df58
call fcn.10040740
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x14], eax
cmp ecx, edi
jne 0x100bbd6b
inc ecx
test edi, edi
je 0x100bbd59
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100bbd5e
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.10052950
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x1013d7e4
mov dword [esp + 0x40], 0
call fcn.10062c40
test al, al
je 0x100bbdeb
mov esi, dword [0x10159260]
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, 0x10136c92
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bbdd3
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bbde2
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004d6b0
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bbe0e
mov dword [esi + 0x1c18], 0
jmp 0x100bbf5d
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, 0x10136c92
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bbe3e
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bbe4d
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004d9f0
test al, al
je 0x100bbf5d
mov eax, dword [0x10159260]
mov edx, 0x10146d58
or dword [eax + 0x1c78], 1
xor esi, esi
mov dword [eax + 0x1c7c], 0x42be0000
nop
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bbe85
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bbe80
push 0xffffffffffffffff
push esi
push 0x10146d58
push 0x10065d10
lea edx, [ebx + 0x5c]
mov ecx, str.Type
call fcn.10065d70
mov eax, dword [0x10159260]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x74], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x20], 0x3f000000
push eax
push 3
lea eax, [ebx + 0x60]
push eax
call fcn.10067fd0
push 0
lea edx, [ebx + 0x6c]
mov ecx, str.Fill
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bbf41
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bbf51
mov byte [esi + 0x1b46], 1
call fcn.1004bc10
mov byte [esi + 0x1b46], 0
mov eax, dword [0x10159260]
lea edx, [ebx + 0x84]
push 0
push 0
mov ecx, str.Name
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
movss xmm1, dword [0x10150da0]
movss xmm0, dword [0x10150d10]
call fcn.1004c840
mov eax, dword [0x1015ea18]
cmp eax, 2
jae 0x100bc589
push dword [0x10157d60]
lea ecx, [esp + 0x28]
push eax
call fcn.100bce30
mov edi, eax
mov ecx, str.Weapon
push 0
push 0
mov dword [esp + 0x2c], edi
lea edx, [edi + 0xa0]
lea esi, [edx + 0x15]
push esi
lea esi, [edx + 0x10]
push esi
lea esi, [edx + 0x14]
push esi
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
push 0
lea edx, [edi + 0xb6]
mov ecx, str.Flash_Duration
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
movss xmm1, dword [0x10150da0]
movss xmm0, dword [0x10150d10]
call fcn.1004c840
lea edx, [edi + 0xec]
mov ecx, str.Skeleton
push 0
lea eax, [edx + 0x18]
push eax
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
lea edx, [edi + 0xcc]
mov ecx, str.Audible_Only
call fcn.100642c0
movss xmm1, dword [0x10150da0]
movss xmm0, dword [0x10150d10]
call fcn.1004c840
lea edx, [edi + 0xcd]
mov ecx, str.Spotted_Only
call fcn.100642c0
lea edx, [edi + 0x108]
mov ecx, str.Head_Box
lea eax, [edx + 0x18]
push eax
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
movss xmm1, dword [0x10150da0]
xorps xmm0, xmm0
call fcn.1004c840
mov eax, dword [0x10159260]
mov esi, dword [eax + 0x1b94]
mov eax, dword [esi + 0xc8]
add esi, 0xc0
mov ecx, dword [esi]
push dword [eax + ecx*4 - 4]
xor edx, edx
mov ecx, str.Head_Box
call fcn.10040740
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x14], eax
cmp ecx, edi
jne 0x100bc111
inc ecx
test edi, edi
je 0x100bc0ff
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100bc104
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.10052950
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x1013d7e4
mov dword [esp + 0x40], 0
call fcn.10062c40
test al, al
je 0x100bc191
mov esi, dword [0x10159260]
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, 0x10136c92
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bc179
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc188
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004d6b0
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bc1b4
mov dword [esi + 0x1c18], 0
jmp 0x100bc315
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, 0x10136c92
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bc1e4
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc1f3
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004d9f0
test al, al
je 0x100bc315
mov eax, dword [0x10159260]
mov edx, 0x10146d58
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 0x100bc230
sub ecx, edi
inc edx
add edx, ecx
inc esi
cmp byte [edx], al
jne 0x100bc224
push 0xffffffffffffffff
push esi
mov esi, dword [esp + 0x2c]
mov ecx, str.Type
push 0x10146d58
push 0x10065d10
lea edx, [esi + 0x124]
call fcn.10065d70
mov eax, dword [0x10159260]
mov edx, 8
push 0
push str._.2f
mov ecx, str.Scale
mov dword [esp + 0x74], 0
or dword [eax + 0x1c78], 1
mov dword [eax + 0x1c7c], 0x43898000
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x20], 0x3f000000
push eax
push 3
lea eax, [esi + 0x128]
push eax
call fcn.10067fd0
push 0
lea edx, [esi + 0x134]
mov ecx, str.Fill
push 0
lea eax, [edx + 0x15]
push eax
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bc2f9
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bc309
mov byte [esi + 0x1b46], 1
call fcn.1004bc10
mov byte [esi + 0x1b46], 0
mov eax, dword [0x10159260]
movss xmm1, dword [0x10150da0]
movss xmm0, dword [0x10150d10]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
call fcn.1004c840
mov edx, dword [esp + 0x24]
mov ecx, str.Health_Bar
lea edx, [edx + 0xe5]
call fcn.100642c0
movss xmm1, dword [0x10150da0]
xorps xmm0, xmm0
call fcn.1004c840
mov eax, dword [0x10159260]
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.10040740
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x14], eax
cmp ecx, edi
jne 0x100bc3b7
inc ecx
test edi, edi
je 0x100bc3a5
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x100bc3aa
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.10052950
mov edx, dword [esi]
mov ecx, 0x1013d7e4
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x14]
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.10062c40
test al, al
je 0x100bc437
mov esi, dword [0x10159260]
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, 0x10136c92
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bc41f
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc42e
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004d6b0
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bc45a
mov dword [esi + 0x1c18], 0
jmp 0x100bc928
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, 0x10136c92
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bc48a
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc499
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004d9f0
test al, al
je 0x100bc928
mov eax, dword [0x10159260]
mov edx, str.Gradient
or dword [eax + 0x1c78], 1
xor edi, edi
mov dword [eax + 0x1c7c], 0x42be0000
nop word [eax + eax]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bc4d5
sub ecx, esi
inc edx
add edx, ecx
inc edi
cmp byte [edx], al
jne 0x100bc4d0
mov esi, dword [esp + 0x24]
mov ecx, str.Type
push 0xffffffffffffffff
push edi
push str.Gradient
push 0x10065d10
lea edx, [esi + 0xe8]
call fcn.10065d70
cmp dword [esi + 0xe8], 1
jne 0x100bc544
movss xmm1, dword [0x10150da0]
xorps xmm0, xmm0
call fcn.1004c840
push 0
mov edx, esi
mov ecx, 0x10136c92
add edx, 0xd0
push 0
push 0
lea eax, [edx + 0x10]
push eax
lea eax, [edx + 0x14]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bc568
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bc578
mov byte [esi + 0x1b46], 1
call fcn.1004bc10
mov byte [esi + 0x1b46], 0
jmp 0x100bc928
jne 0x100bc67b
mov edx, dword [0x10157d60]
xorps xmm0, xmm0
mov ecx, edx
movaps xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bc5c0
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0xb8]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x1c4]
push eax
lea ecx, [ecx + 0xa74]
call fcn.100bda30
mov ecx, dword [esp + 0xc4]
mov esi, dword [eax]
cmp ecx, 0x10
jb 0x100bc634
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bc62a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9db
push ecx
push edx
call fcn.100fdb97
add esp, 8
push 0
lea edx, [esi + 0xc0]
mov dword [esp + 0xc4], 0
push 0
lea eax, [edx + 0x15]
mov dword [esp + 0xcc], 0xf
push eax
lea eax, [edx + 0x10]
mov byte [esp + 0xbc], 0
push eax
lea eax, [edx + 0x14]
mov ecx, str.Ammo
push eax
lea eax, [edx + 0xc]
push eax
call fcn.100c6880
jmp 0x100bc939
cmp eax, 3
jne 0x100bc939
mov edx, dword [0x10157d60]
xorps xmm0, xmm0
mov ecx, edx
movaps xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bc6b0
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0xb8]
call fcn.1009d160
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x1c4]
push eax
lea ecx, [ecx + 0xa94]
call fcn.100bd840
mov ecx, dword [esp + 0xc4]
mov edi, dword [eax]
cmp ecx, 0x10
jb 0x100bc724
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100bc71a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bc9e0
push ecx
push edx
call fcn.100fdb97
add esp, 8
lea edx, [edi + 0xc0]
mov dword [esp + 0xc0], 0
mov ecx, str.Trails
mov dword [esp + 0xc4], 0xf
mov byte [esp + 0xb0], 0
call fcn.100642c0
movss xmm1, dword [0x10150da0]
movss xmm0, dword [0x10150d20]
call fcn.1004c840
mov eax, dword [0x10159260]
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.10040740
mov ebx, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x14], eax
cmp ecx, ebx
jne 0x100bc7bf
inc ecx
test ebx, ebx
je 0x100bc7ad
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add eax, ebx
jmp 0x100bc7b2
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.10052950
mov ecx, dword [esi]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x14]
push 0
mov dword [esp + 0x3c], 0
mov dword [eax + ecx*4], edx
lea edx, [esp + 0x3c]
inc dword [esi]
mov ecx, 0x1013d7e4
mov dword [esp + 0x40], 0
call fcn.10062c40
test al, al
je 0x100bc83f
mov esi, dword [0x10159260]
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, 0x10136c92
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bc827
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc836
mov byte [esi + 0x1c08], 1
xor edx, edx
mov ecx, eax
call fcn.1004d6b0
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1cd4]
cmp eax, dword [esi + 0x1ce0]
jg 0x100bc862
mov dword [esi + 0x1c18], 0
jmp 0x100bc924
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, 0x10136c92
call fcn.10040740
cmp dword [esi + 0x1bc8], eax
jne 0x100bc892
mov dword [esi + 0x1bcc], eax
cmp dword [esi + 0x1c04], eax
jne 0x100bc8a1
mov byte [esi + 0x1c08], 1
mov edx, 0x141
mov ecx, eax
call fcn.1004d9f0
test al, al
je 0x100bc924
lea eax, [edi + 0xc4]
push eax
push str.Local_Player
call fcn.100bd210
lea eax, [edi + 0xe8]
push eax
push 0x10143c68
call fcn.100bd210
lea eax, [edi + 0x10c]
push eax
push 0x10143c70
call fcn.100bd210
mov esi, dword [0x10159260]
mov eax, dword [esi + 0x1b94]
cmp dword [esi + 0x1cf8], eax
jne 0x100bc908
mov dword [esi + 0x1df8], eax
mov dword [esi + 0x1dfc], 2
test dword [eax + 8], 0x1000000
je 0x100bc918
mov byte [esi + 0x1b46], 1
call fcn.1004bc10
mov byte [esi + 0x1b46], 0
mov ebx, dword [esp + 0x18]
mov eax, dword [0x10159260]
mov eax, dword [eax + 0x1b94]
dec dword [eax + 0xc0]
mov eax, dword [0x10159260]
lea esi, [ebx + 0x9c]
push 0x20000
push str._.1fm
mov edx, 8
mov dword [esp + 0x74], 0x3ecccccd
or dword [eax + 0x1c78], 1
mov ecx, str.Text_Cull_Distance
mov dword [eax + 0x1c7c], 0x42be0000
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x20], 0x3f4ccccd
push eax
push esi
call fcn.10068c10
movss xmm0, dword [esi]
lea ecx, [esp + 0x14]
movss xmm1, dword [0x10150d4c]
lea eax, [esp + 0x6c]
xorps xmm2, xmm2
mov dword [esp + 0x6c], 0x4479f99a
comiss xmm0, xmm2
mov dword [esp + 0x14], 0
cmovae ecx, esi
comiss xmm1, xmm0
cmovae eax, ecx
mov eax, dword [eax]
mov dword [esi], eax
call fcn.10047400
cmp byte [esp + 0xa3], 0
jne 0x100bc9d4
call fcn.1004bc10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1010e5c5
call fcn.1010e5c5
nop dword [eax]
dec eax
pushfd
or edx, dword [eax]
dec eax
pushfd
or edx, dword [eax]
retf