L L4D2node

GetScriptDesc<TerrorNavArea>

0x0097ec70 · 11024 bytes · __cdecl

_Z13GetScriptDescI13TerrorNavAreaEP17ScriptClassDesc_tPT_.part.479

Decompiled

ScriptClassDesc_t * (1 param)

/* ScriptClassDesc_t* GetScriptDesc<TerrorNavArea>(TerrorNavArea*) [clone .part.479] */

ScriptClassDesc_t * GetScriptDesc<TerrorNavArea>(TerrorNavArea *param_1)

{
  CUtlVector<int,CUtlMemory<int,int>> *this;
  undefined4 uVar1;
  int iVar2;
  undefined4 *puVar3;
  void *pvVar4;
  ScriptClassDesc_t *pSVar5;
  int local_20 [4];
  
  GetScriptDesc<TerrorNavArea>(TerrorNavArea*)::bInitialized = 1;
  g_TerrorNavArea_ScriptDesc._8_4_ = s_Navigation_areas_class_00d0e914;
  g_TerrorNavArea_ScriptDesc._0_4_ = s_TerrorNavArea_00d0e92b;
  g_TerrorNavArea_ScriptDesc._4_4_ = s_TerrorNavArea_00d0e92b;
  g_TerrorNavArea_ScriptDesc._12_4_ = 0;
  g_TerrorNavArea_ScriptDesc._44_4_ = &g_NavAreaScriptInstanceHelper;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Get area ID.";
  *puVar3 = "GetID";
  puVar3[1] = "ScriptGetID";
  puVar3[3] = 5;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,int(TerrorNavArea::*)(),int>::Call;
  puVar3[10] = TerrorNavArea::ScriptGetID;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Get area attribute bits";
  *puVar3 = "GetAttributes";
  puVar3[1] = "GetAttributes";
  puVar3[3] = 5;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,int(CNavArea::*)(),int>::Call;
  puVar3[10] = CNavArea::GetAttributes;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Set area attribute bits";
  *puVar3 = "SetAttributes";
  puVar3[1] = "SetAttributes";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(CNavArea::*)(int),void,int>::Call;
  puVar3[10] = CNavArea::SetAttributes;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Has area attribute bits";
  *puVar3 = "HasAttributes";
  puVar3[1] = "HasAttributes";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(CNavArea::*)(int),bool,int>::Call;
  puVar3[10] = CNavArea::HasAttributes;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Removes area attribute bits";
  *puVar3 = "RemoveAttributes";
  puVar3[1] = "RemoveAttributes";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(CNavArea::*)(int),void,int>::Call;
  puVar3[10] = CNavArea::RemoveAttributes;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Get center origin of area";
  *puVar3 = "GetCenter";
  puVar3[1] = "GetCenter";
  puVar3[3] = 3;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,Vector_const&(CNavArea::*)(),Vector_const&>::Call
  ;
  puVar3[10] = CNavArea::GetCenter;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( corner ) - Get corner origin of area";
  *puVar3 = "GetCorner";
  puVar3[1] = "ScriptGetCorner";
  puVar3[3] = 0x1e;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,Vector_const(TerrorNavArea::*)(int),Vector_const,int>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptGetCorner;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Get random origin within extent of area";
  *puVar3 = "FindRandomSpot";
  puVar3[1] = "FindRandomSpot";
  puVar3[3] = 3;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,Vector(TerrorNavArea::*)(),Vector>::Call;
  puVar3[10] = TerrorNavArea::FindRandomSpot;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( area, dir ) - Connect this area to given area in given direction";
  *puVar3 = "ConnectTo";
  puVar3[1] = "ScriptConnectToArea";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,void(TerrorNavArea::*)(HSCRIPT__*,int),void,HSCRIPT__*,int>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptConnectToArea;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( area ) - Disconnect this area from given area";
  *puVar3 = "Disconnect";
  puVar3[1] = "ScriptDisconnectArea";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(HSCRIPT__*),void,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptDisconnectArea;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( area, dir ) - Return true if given area is connected in given direction";
  *puVar3 = "IsConnected";
  puVar3[1] = "ScriptIsConnectedArea";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,bool(TerrorNavArea::*)(HSCRIPT__*,int),bool,HSCRIPT__*,int>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptIsConnectedArea;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( ladder, dir ) - Connect this area to given ladder";
  *puVar3 = "ConnectToLadder";
  puVar3[1] = "ScriptConnectToLadder";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(HSCRIPT__*),void,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptConnectToLadder;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( ladder ) - Disconnect this area from given ladder";
  *puVar3 = "DisconnectLadder";
  puVar3[1] = "ScriptDisconnectLadder";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(HSCRIPT__*),void,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptDisconnectLadder;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( ladder, dir ) - Return true if given area is connected to ladder in given direction";
  *puVar3 = "IsConnectedLadder";
  puVar3[1] = "ScriptIsConnectedLadder";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,bool(TerrorNavArea::*)(HSCRIPT__*,int),bool,HSCRIPT__*,int>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptIsConnectedLadder;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Return true if continuous damage (ie: fire) is in this area";
  *puVar3 = "IsDamaging";
  puVar3[1] = "IsDamaging";
  puVar3[3] = 6;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,bool(CNavArea::*)(),bool>::Call;
  puVar3[10] = CNavArea::IsDamaging;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( duration ) - Mark this area is damaging for the next \'duration\' seconds";
  *puVar3 = "MarkAsDamaging";
  puVar3[1] = "MarkAsDamaging";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 1;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(CNavArea::*)(float),void,float>::Call;
  puVar3[10] = CNavArea::MarkAsDamaging;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( team ) - Return true if team is blocked in this area";
  *puVar3 = "IsBlocked";
  puVar3[1] = "IsBlocked";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 6;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,bool(CNavArea::*)(int,bool),bool,int,bool>::Call;
  puVar3[10] = CNavArea::IsBlocked;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( team ) - Mark this area as blocked for team";
  *puVar3 = "MarkAsBlocked";
  puVar3[1] = "ScriptMarkAsBlocked";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(int),void,int>::Call;
  puVar3[10] = TerrorNavArea::ScriptMarkAsBlocked;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( dir ) - Get the number of adjacent areas in the given direction";
  *puVar3 = "GetAdjacentCount";
  puVar3[1] = "ScriptGetAdjacentCount";
  puVar3[3] = 5;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,int(TerrorNavArea::*)(int),int,int>::Call;
  puVar3[10] = TerrorNavArea::ScriptGetAdjacentCount;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( dir, table ) - Fills a passed in table with all adjacent areas in the given direction";
  *puVar3 = "GetAdjacentAreas";
  puVar3[1] = "ScriptGetAdjacentAreas";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,void(TerrorNavArea::*)(int,HSCRIPT__*),void,int,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptGetAdjacentAreas;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( dir, n ) - Return the i\'th adjacent area in the given direction";
  *puVar3 = "GetAdjacentArea";
  puVar3[1] = "ScriptGetAdjacentArea";
  puVar3[3] = 0x20;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,HSCRIPT__*(TerrorNavArea::*)(int,int),HSCRIPT__*,int,int>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptGetAdjacentArea;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( dir ) - Return a random adjacent area in the given direction";
  *puVar3 = "GetRandomAdjacentArea";
  puVar3[1] = "ScriptGetRandomAdjacentArea";
  puVar3[3] = 0x20;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,HSCRIPT__*(TerrorNavArea::*)(int),HSCRIPT__*,int>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptGetRandomAdjacentArea;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( dir, table ) - Fills a passed in table with areas connected TO this area by a ONE-WAY link (ie: we have no connection back to them)"
  ;
  *puVar3 = "GetIncomingConnections";
  puVar3[1] = "ScriptGetIncomingConnections";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,void(TerrorNavArea::*)(int,HSCRIPT__*),void,int,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptGetIncomingConnections;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( area, dir ) - Add areas that connect TO this area by a ONE-WAY link";
  *puVar3 = "AddIncomingConnection";
  puVar3[1] = "ScriptAddIncomingConnection";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,void(TerrorNavArea::*)(HSCRIPT__*,int),void,HSCRIPT__*,int>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptAddIncomingConnection;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Get place name";
  *puVar3 = "GetPlaceName";
  puVar3[1] = "ScriptGetPlaceName";
  puVar3[3] = 0x1f;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,char_const*(TerrorNavArea::*)(),char_const*>::
              Call;
  puVar3[10] = TerrorNavArea::ScriptGetPlaceName;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( name ) - Set place name";
  *puVar3 = "SetPlaceName";
  puVar3[1] = "ScriptSetPlaceName";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x1f;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(char_const*),void,char_const*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptSetPlaceName;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( point ) - Return direction from this area to the given point";
  *puVar3 = "ComputeDirection";
  puVar3[1] = "ScriptComputeDirection";
  puVar3[3] = 5;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 3;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,int(TerrorNavArea::*)(Vector_const&),int,Vector_const&>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptComputeDirection;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( table ) - Fills a passed in table of ladders in direction";
  *puVar3 = "GetLadders";
  puVar3[1] = "ScriptGetLadders";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,void(TerrorNavArea::*)(int,HSCRIPT__*),void,int,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptGetLadders;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( team ) - Return number of players of given team currently within this area (team of zero means any/all)"
  ;
  *puVar3 = "GetPlayerCount";
  puVar3[1] = "ScriptGetPlayerCount";
  puVar3[3] = 5;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,int(TerrorNavArea::*)(int),int,int>::Call;
  puVar3[10] = TerrorNavArea::ScriptGetPlayerCount;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( area ) - Return true if \'area\' overlaps our 2D extents";
  *puVar3 = "IsOverlapping";
  puVar3[1] = "ScriptIsOverlapping";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(HSCRIPT__*),bool,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptIsOverlapping;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( pos, tolerance ) - Return true if \'pos\' is within 2D extents of area";
  *puVar3 = "IsOverlappingOrigin";
  puVar3[1] = "ScriptIsOverlappingOrigin";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 2) {
    puVar3[5] = 2;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(8);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],8);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 3;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  local_20[0] = 1;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding2<TerrorNavArea*,bool(TerrorNavArea::*)(Vector_const&,float),bool,Vector_const&,float>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptIsOverlappingOrigin;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( team ) - Return true if any portion of this area is visible to anyone on the given team";
  *puVar3 = "IsPotentiallyVisibleToTeam";
  puVar3[1] = "IsPotentiallyVisibleToTeam";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(int),bool,int>::Call;
  puVar3[10] = TerrorNavArea::IsPotentiallyVisibleToTeam;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( team ) - Return true if given area is completely visible from somewhere in this area by someone on the team"
  ;
  *puVar3 = "IsCompletelyVisibleToTeam";
  puVar3[1] = "IsCompletelyVisibleToTeam";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(int),bool,int>::Call;
  puVar3[10] = TerrorNavArea::IsCompletelyVisibleToTeam;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( dir ) - Return true if there are no bi-directional links on the given side";
  *puVar3 = "IsEdge";
  puVar3[1] = "ScriptIsEdge";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(int),bool,int>::Call;
  puVar3[10] = TerrorNavArea::ScriptIsEdge;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( maxheight ) - Returns true if there\'s a large, immobile object obstructing this area";
  *puVar3 = "HasAvoidanceObstacle";
  puVar3[1] = "HasAvoidanceObstacle";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 1;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(CNavArea::*)(float),bool,float>::Call;
  puVar3[10] = CNavArea::HasAvoidanceObstacle;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( height ) - Marks the obstructed status of the nav area";
  *puVar3 = "MarkObstacleToAvoid";
  puVar3[1] = "MarkObstacleToAvoid";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 1;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(CNavArea::*)(float),void,float>::Call;
  puVar3[10] = CNavArea::MarkObstacleToAvoid;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( area ) - Return true if other area is on or above this area, but no others";
  *puVar3 = "Contains";
  puVar3[1] = "ScriptContains";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(HSCRIPT__*),bool,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptContains;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( point ) - Return true if given point is on or above this area, but no others";
  *puVar3 = "ContainsOrigin";
  puVar3[1] = "ScriptContainsOrigin";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 3;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(Vector_const&),bool,Vector_const&>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptContainsOrigin;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Returns the area just prior to this one in the search path";
  *puVar3 = "GetParent";
  puVar3[1] = "ScriptGetParent";
  puVar3[3] = 0x20;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,HSCRIPT__*(TerrorNavArea::*)(),HSCRIPT__*>::Call;
  puVar3[10] = TerrorNavArea::ScriptGetParent;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Returns how we get from parent to us";
  *puVar3 = "GetParentHow";
  puVar3[1] = "ScriptGetParentHow";
  puVar3[3] = 5;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,int(TerrorNavArea::*)(),int>::Call;
  puVar3[10] = TerrorNavArea::ScriptGetParentHow;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Draw area as a filled rect of the given color";
  *puVar3 = "DebugDrawFilled";
  puVar3[1] = "DrawFilled";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 6) {
    puVar3[5] = 6;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(0x18);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],0x18);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  this = (CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
  local_20[0] = 1;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
  local_20[0] = 6;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore(this,puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding6<TerrorNavArea*,void(CNavArea::*)(int,int,int,int,float,bool),void,int,int,int,int,float,bool>
              ::Call;
  puVar3[10] = 0x55;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Unblocks this area";
  *puVar3 = "UnblockArea";
  puVar3[1] = "ScriptUnblockArea";
  puVar3[3] = 0;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,void(TerrorNavArea::*)(),void>::Call;
  puVar3[10] = TerrorNavArea::ScriptUnblockArea;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Return true if this area is approximately square";
  *puVar3 = "IsRoughlySquare";
  puVar3[1] = "IsRoughlySquare";
  puVar3[3] = 6;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,bool(CNavArea::*)(),bool>::Call;
  puVar3[10] = CNavArea::IsRoughlySquare;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Return true if this area is approximately flat";
  *puVar3 = "IsFlat";
  puVar3[1] = "IsFlat";
  puVar3[3] = 6;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,bool(CNavArea::*)(),bool>::Call;
  puVar3[10] = CNavArea::IsFlat;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Return true if this area is badly formed";
  *puVar3 = "IsDegenerate";
  puVar3[1] = "IsDegenerate";
  puVar3[3] = 6;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,bool(CNavArea::*)(),bool>::Call;
  puVar3[10] = CNavArea::IsDegenerate;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( point ) - Return true if area is visible from the given eyepoint";
  *puVar3 = "IsVisible";
  puVar3[1] = "ScriptIsVisible";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 3;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(Vector_const&),bool,Vector_const&>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptIsVisible;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Return the area size along the X axis";
  *puVar3 = "GetSizeX";
  puVar3[1] = "GetSizeX";
  puVar3[3] = 1;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,float(CNavArea::*)(),float>::Call;
  puVar3[10] = CNavArea::GetSizeX;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Return the area size along the Y axis";
  *puVar3 = "GetSizeY";
  puVar3[1] = "GetSizeY";
  puVar3[3] = 1;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,float(CNavArea::*)(),float>::Call;
  puVar3[10] = CNavArea::GetSizeY;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( pos ) - Return Z of area at (x,y) of \'pos\'";
  *puVar3 = "GetZ";
  puVar3[1] = "ScriptGetZ";
  puVar3[3] = 1;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 3;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,float(TerrorNavArea::*)(Vector_const&),float,Vector_const&>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptGetZ;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( pos ) - Return shortest distance between point and this area";
  *puVar3 = "GetDistanceSquaredToPoint";
  puVar3[1] = "GetDistanceSquaredToPoint";
  puVar3[3] = 1;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 3;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,float(CNavArea::*)(Vector_const&),float,Vector_const&>
              ::Call;
  puVar3[10] = CNavArea::GetDistanceSquaredToPoint;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Get spawn attribute bits";
  *puVar3 = "GetSpawnAttributes";
  puVar3[1] = "ScriptGetSpawnAttributes";
  puVar3[3] = 5;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,int(TerrorNavArea::*)(),int>::Call;
  puVar3[10] = TerrorNavArea::ScriptGetSpawnAttributes;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( attributes ) - Has spawn attribute bits";
  *puVar3 = "HasSpawnAttributes";
  puVar3[1] = "ScriptHasSpawnAttributes";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(int),bool,int>::Call;
  puVar3[10] = TerrorNavArea::ScriptHasSpawnAttributes;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( attributes ) - Set spawn attribute bits";
  *puVar3 = "SetSpawnAttributes";
  puVar3[1] = "ScriptSetSpawnAttributes";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(int),void,int>::Call;
  puVar3[10] = TerrorNavArea::ScriptSetSpawnAttributes;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( attributes ) - Remove spawn attribute bits";
  *puVar3 = "RemoveSpawnAttributes";
  puVar3[1] = "ScriptRemoveSpawnAttributes";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(int),void,int>::Call;
  puVar3[10] = TerrorNavArea::ScriptRemoveSpawnAttributes;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Return true if area is underwater";
  *puVar3 = "IsUnderwater";
  puVar3[1] = "IsUnderwater";
  puVar3[3] = 6;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,bool(CNavArea::*)(),bool>::Call;
  puVar3[10] = CNavArea::IsUnderwater;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( area ) - Return true if this area and given area are approximately co-planar";
  *puVar3 = "IsCoplanar";
  puVar3[1] = "ScriptIsCoplanar";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(HSCRIPT__*),bool,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptIsCoplanar;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( dir ) - Removes all connections in directions to left and right of specified direction";
  *puVar3 = "RemoveOrthogonalConnections";
  puVar3[1] = "ScriptRemoveOrthogonalConnections";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 5;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(int),void,int>::Call;
  puVar3[10] = TerrorNavArea::ScriptRemoveOrthogonalConnections;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Returns the maximum height of the obstruction above the ground";
  *puVar3 = "GetAvoidanceObstacleHeight";
  puVar3[1] = "GetAvoidanceObstacleHeight";
  puVar3[3] = 1;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,float(CNavArea::*)(),float>::Call;
  puVar3[10] = CNavArea::GetAvoidanceObstacleHeight;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Returns the elevator if in an elevator\'s path";
  *puVar3 = "GetElevator";
  puVar3[1] = "ScriptGetElevator";
  puVar3[3] = 0x20;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,HSCRIPT__*(TerrorNavArea::*)(),HSCRIPT__*>::Call;
  puVar3[10] = TerrorNavArea::ScriptGetElevator;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = 
  "( table ) - Fills table with a collection of areas reachable via elevator from this area";
  *puVar3 = "GetElevatorAreas";
  puVar3[1] = "ScriptGetElevatorAreas";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(HSCRIPT__*),void,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptGetElevatorAreas;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Returns true if spawning is allowed";
  *puVar3 = "IsSpawningAllowed";
  puVar3[1] = "IsSpawningAllowed";
  puVar3[3] = 6;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,bool(TerrorNavArea::*)(),bool>::Call;
  puVar3[10] = TerrorNavArea::IsSpawningAllowed;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Mark this area as not cleared";
  *puVar3 = "MarkAreaNotCleared";
  puVar3[1] = "MarkAreaNotCleared";
  puVar3[3] = 0;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,void(TerrorNavArea::*)(),void>::Call;
  puVar3[10] = TerrorNavArea::MarkAreaNotCleared;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Returns the door entity above the area";
  *puVar3 = "GetDoor";
  puVar3[1] = "ScriptGetDoor";
  puVar3[3] = 0x20;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,HSCRIPT__*(TerrorNavArea::*)(),HSCRIPT__*>::Call;
  puVar3[10] = TerrorNavArea::ScriptGetDoor;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( player ) - Returns true if this area has been cleared for the player";
  *puVar3 = "IsCleared";
  puVar3[1] = "ScriptIsCleared";
  puVar3[3] = 6;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,bool(TerrorNavArea::*)(HSCRIPT__*),bool,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptIsCleared;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "( player ) - Mark this area as cleared for the player";
  *puVar3 = "MarkAreaCleared";
  puVar3[1] = "ScriptMarkAreaCleared";
  puVar3[3] = 0;
  puVar3[6] = 1;
  if ((int)puVar3[5] < 1) {
    puVar3[5] = 1;
    if ((void *)puVar3[4] == (void *)0x0) {
      pvVar4 = malloc(4);
      puVar3[4] = pvVar4;
    }
    else {
      pvVar4 = realloc((void *)puVar3[4],4);
      puVar3[4] = pvVar4;
    }
  }
  else {
    pvVar4 = (void *)puVar3[4];
  }
  puVar3[8] = pvVar4;
  local_20[0] = 0x20;
  CUtlVector<int,CUtlMemory<int,int>>::InsertBefore
            ((CUtlVector<int,CUtlMemory<int,int>> *)(puVar3 + 4),puVar3[7],local_20);
  uVar1 = g_TerrorNavArea_ScriptDesc._28_4_;
  puVar3[9] = CMemberScriptBinding1<TerrorNavArea*,void(TerrorNavArea::*)(HSCRIPT__*),void,HSCRIPT__*>
              ::Call;
  puVar3[10] = TerrorNavArea::ScriptMarkAreaCleared;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),uVar1);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Returns the time since the area was cleared";
  *puVar3 = "GetTimeSinceCleared";
  puVar3[1] = "GetTimeSinceCleared";
  puVar3[3] = 1;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,float(TerrorNavArea::*)(),float>::Call;
  puVar3[10] = TerrorNavArea::GetTimeSinceCleared;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  puVar3 = (undefined4 *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  puVar3[2] = "Returns true if area is a bottleneck";
  *puVar3 = "IsBottleneck";
  puVar3[1] = "IsBottleneck";
  puVar3[3] = 6;
  puVar3[9] = CMemberScriptBinding0<TerrorNavArea*,bool(TerrorNavArea::*)(),bool>::Call;
  puVar3[10] = TerrorNavArea::IsBottleneck;
  puVar3[0xb] = 1;
  iVar2 = CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>>::InsertBefore
                    ((CUtlVector<ScriptFunctionBinding_t,CUtlMemory<ScriptFunctionBinding_t,int>> *)
                     (g_TerrorNavArea_ScriptDesc + 0x10),g_TerrorNavArea_ScriptDesc._28_4_);
  pSVar5 = (ScriptClassDesc_t *)(iVar2 * 0x30 + g_TerrorNavArea_ScriptDesc._16_4_);
  *(char **)(pSVar5 + 8) = "Returns true if area is valid for wandering population";
  *(char **)pSVar5 = "IsValidForWanderingPopulation";
  *(char **)(pSVar5 + 4) = "IsValidForWanderingPopulation";
  *(undefined4 *)(pSVar5 + 0xc) = 6;
  *(code **)(pSVar5 + 0x24) =
       CMemberScriptBinding0<TerrorNavArea*,bool(TerrorNavArea::*)(),bool>::Call;
  *(code **)(pSVar5 + 0x28) = TerrorNavArea::IsValidForWanderingPopulation;
  *(undefined4 *)(pSVar5 + 0x2c) = 1;
  return pSVar5;
}

SourceMod gamedata

paste into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

Just a Signatures{} block, ready to drop into a gamedata file. Wire it up in your plugin however you like - SDKCall, DHooks, raw memory ops, or anything else.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)