
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

connectbundle * Curl_conncache_find_bundle(connectdata *conn,conncache *connc)

{
  Curl_easy **ppCVar1;
  curl_llist_element *pcVar2;
  connectbundle *pcVar3;
  CURL *pCVar4;
  int iVar5;
  connectbundle *pcVar6;
  int iVar7;
  uint uVar8;
  size_t sVar9;
  conncache *pcVar10;
  Curl_easy *pCVar11;
  Curl_easy *data;
  Curl_easy *pCVar12;
  Curl_easy *pCVar13;
  Curl_easy *pCVar14;
  Curl_easy *pCVar15;
  Curl_easy *pCVar16;
  Curl_easy *in_a3;
  Curl_easy *cb_ptr;
  void *pvVar17;
  connectdata *pcVar18;
  Curl_easy *unaff_s1;
  Curl_easy *pCVar19;
  Curl_easy *unaff_s4;
  connectdata *pcVar20;
  Curl_easy *unaff_s5;
  undefined1 *unaff_s6;
  undefined *puVar21;
  code *pcVar22;
  code *pcVar23;
  undefined4 uStack_2b0;
  undefined4 uStack_2ac;
  undefined1 auStack_2a8 [12];
  connectdata *pcStack_29c;
  undefined4 uStack_298;
  Curl_easy *pCStack_294;
  Curl_easy *pCStack_290;
  int iStack_28c;
  connectbundle *pcStack_288;
  Curl_easy *pCStack_284;
  undefined1 *puStack_280;
  undefined4 uStack_254;
  undefined4 uStack_250;
  Curl_easy *pCStack_24c;
  connectbundle *pcStack_244;
  Curl_easy *pCStack_240;
  Curl_easy *pCStack_23c;
  Curl_easy *pCStack_238;
  Curl_easy *pCStack_234;
  Curl_easy *pCStack_230;
  code *pcStack_22c;
  code *pcStack_218;
  connectbundle cStack_210;
  code *pcStack_1e8;
  undefined1 auStack_1e0 [12];
  void *pvStack_1d4;
  Curl_easy *pCStack_1d0;
  Curl_easy *pCStack_1cc;
  Curl_easy *pCStack_1c8;
  Curl_easy *pCStack_1c4;
  Curl_easy *pCStack_1c0;
  Curl_easy *pCStack_1bc;
  connectbundle *pcStack_18c;
  connectbundle *pcStack_184;
  Curl_easy *pCStack_180;
  curl_llist_element *pcStack_17c;
  Curl_easy *pCStack_178;
  Curl_easy *pCStack_174;
  Curl_easy *pCStack_cc;
  Curl_multi *pCStack_c8;
  Curl_easy *pCStack_c4;
  connectdata *pcStack_c0;
  char key [128];
  
  pcVar2 = *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4;
  pCVar12 = (Curl_easy *)connc;
  if (conn->data->share != (Curl_share *)0x0) {
    pCVar12 = (Curl_easy *)&DAT_00000005;
    Curl_share_lock(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);
  }
  pCVar15 = (Curl_easy *)0x80;
  if (connc == (conncache *)0x0) {
    pcVar3 = (connectbundle *)0x0;
  }
  else {
    unaff_s1 = (Curl_easy *)key;
    hashkey(conn,(char *)unaff_s1,0x80);
    pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);
    pCVar12 = unaff_s1;
    pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc);
  }
  if (pcVar2 == *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4) {
    return pcVar3;
  }
  puVar21 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  pcStack_c0 = conn;
  pCStack_c4 = unaff_s1;
  pCStack_c8 = (Curl_multi *)connc;
  pCStack_cc = (Curl_easy *)**(undefined4 **)(puVar21 + 0x43d78);
  pCVar19 = pCVar12->next;
  pcVar3 = Curl_conncache_find_bundle((connectdata *)pCVar12,(pCVar19->state).conn_cache);
  if (pcVar3 == (connectbundle *)0x0) {
    pcVar3 = (connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18);
    if (pcVar3 != (connectbundle *)0x0) {
      pcVar3->num_connections = 0;
      pcVar3->multiuse = 0;
      (**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);
      unaff_s4 = (Curl_easy *)&stack0xfffffeb4;
      hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);
      pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);
      iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);
      in_a3 = (Curl_easy *)&pCVar12->prev;
      if (iVar5 != 0) goto LAB_0006e2c4;
      bundle_destroy(pcVar3);
    }
    pcVar3 = (connectbundle *)0x1b;
  }
  else {
LAB_0006e2c4:
    in_a3 = (Curl_easy *)&pCVar12->prev;
    pCVar15 = pCVar12;
    (**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail);
    (pCVar12->set).proxyport = (long)pcVar3;
    pcVar3->num_connections = pcVar3->num_connections + 1;
    pCVar4 = (CURL *)pcVar2[2].prev;
    pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1);
    (pCVar12->msg).extmsg.easy_handle = pCVar4;
    pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1);
    pcVar3 = (connectbundle *)0x0;
  }
  pCVar13 = (Curl_easy *)&DAT_00000005;
  if (pCVar19->share != (Curl_share *)0x0) {
    Curl_share_unlock(pCVar19,CURL_LOCK_DATA_CONNECT);
  }
  if (pCStack_cc == (Curl_easy *)**(int **)(puVar21 + 0x43d78)) {
    return pcVar3;
  }
  pcVar22 = *(code **)(puVar21 + 0x439ec);
  pCVar11 = pCStack_cc;
  (*pcVar22)();
  pcStack_18c = (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);
  cb_ptr = (Curl_easy *)(pCVar13->set).proxyport;
  data = pCVar11;
  pCVar14 = pCVar13;
  pCVar16 = pCVar15;
  pcStack_184 = pcVar3;
  pCStack_180 = pCVar12;
  pcStack_17c = pcVar2;
  pCStack_178 = pCVar19;
  pCStack_174 = unaff_s4;
  if (cb_ptr == (Curl_easy *)0x0) goto LAB_0006e510;
  pCVar19 = (Curl_easy *)(pCVar11->state).conn_cache;
  if ((pCVar15 != (Curl_easy *)0x0) &&
     (pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0)) {
    Curl_share_lock(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);
  }
  data = cb_ptr;
  bundle_remove_conn((connectbundle *)cb_ptr,(connectdata *)pCVar13);
  if ((cb_ptr->prev == (Curl_easy *)0x0) &&
     (unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0)) {
    pCVar14 = unaff_s5;
    (**(code **)(pcVar22 + 0x433b4))(pCVar19);
    data = unaff_s5;
    iVar5 = (**(code **)(pcVar22 + 0x433b8))();
    if (iVar5 != 0) {
      pCVar12 = *(Curl_easy **)(iVar5 + 0xc);
      while (cb_ptr != pCVar12) {
        data = unaff_s5;
        iVar5 = (**(code **)(pcVar22 + 0x433b8))();
        if (iVar5 == 0) goto LAB_0006e5d4;
        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);
      }
      pCVar16 = *(Curl_easy **)(iVar5 + 0x10);
      pCVar14 = (Curl_easy *)(iVar5 + 0x14);
      data = pCVar19;
      (**(code **)(pcVar22 + 0x42d7c))();
      goto LAB_0006e4d4;
    }
LAB_0006e5d4:
    (pCVar13->set).proxyport = 0;
LAB_0006e4dc:
    (pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1);
  }
  else {
LAB_0006e4d4:
    (pCVar13->set).proxyport = 0;
    if (pCVar19 != (Curl_easy *)0x0) goto LAB_0006e4dc;
  }
  pCVar13->next = (Curl_easy *)0x0;
  pCVar12 = pCVar13;
  unaff_s4 = pCVar15;
  if ((pCVar15 != (Curl_easy *)0x0) &&
     (pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0)) {
    data = pCVar11;
    Curl_share_unlock(pCVar11,CURL_LOCK_DATA_CONNECT);
  }
LAB_0006e510:
  if (pcStack_18c == (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)) {
    return (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);
  }
  pcVar22 = *(code **)(pcVar22 + 0x43814);
  (*pcVar22)();
  pCStack_1bc = unaff_s5;
  pCStack_1c0 = unaff_s4;
  pCStack_1c4 = pCVar19;
  pCStack_1c8 = pCVar11;
  pCStack_1cc = pCVar12;
  pCStack_1d0 = cb_ptr;
  pcStack_1e8 = pcVar22 + 0x4ab28;
  pvStack_1d4 = (void *)**(int **)(pcVar22 + 0x439ec);
  if (pCVar14 == (Curl_easy *)0x0) {
    pcVar3 = (connectbundle *)0x0;
  }
  else {
    if (data->share != (Curl_share *)0x0) {
      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);
    }
    pCVar19 = (Curl_easy *)auStack_1e0;
    (**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19);
    unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19);
    cb_ptr = pCVar14;
    pCVar11 = in_a3;
    pCVar12 = pCVar16;
    if (unaff_s4 != (Curl_easy *)0x0) {
      unaff_s6 = auStack_1e0;
      pCVar19 = (Curl_easy *)0x1;
      do {
        pvVar17 = (unaff_s4->connect_queue).ptr;
        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);
        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);
        while (cb_ptr != (Curl_easy *)0x0) {
          ppCVar1 = &cb_ptr->next;
          cb_ptr = (Curl_easy *)cb_ptr->conn;
          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);
          if (iVar5 == 1) {
            if (data->share == (Curl_share *)0x0) {
              pcVar3 = (connectbundle *)0x1;
            }
            else {
              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);
              pcVar3 = (connectbundle *)0x1;
            }
            goto LAB_0006e740;
          }
        }
        cb_ptr = (Curl_easy *)0x0;
      } while (unaff_s4 != (Curl_easy *)0x0);
    }
    if (data->share == (Curl_share *)0x0) {
      pcVar3 = (connectbundle *)0x0;
    }
    else {
      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);
      pcVar3 = (connectbundle *)0x0;
    }
  }
LAB_0006e740:
  if (pvStack_1d4 == (void *)**(int **)(pcStack_1e8 + -0x713c)) {
    return pcVar3;
  }
  pcVar22 = *(code **)(pcStack_1e8 + -0x74c8);
  pcVar23 = Curl_conncache_find_first_connection;
  (*pcVar22)();
  pcStack_218 = pcVar22 + 0x4a974;
  cStack_210.conn_list.tail = (curl_llist_element *)**(undefined4 **)(pcVar22 + 0x43838);
  pcVar3 = &cStack_210;
  cStack_210.conn_list.dtor = (curl_llist_dtor)cb_ptr;
  cStack_210.conn_list.size = (size_t)pcVar23;
  (**(code **)(pcVar22 + 0x4304c))();
  pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);
  if (pcVar6 != (connectbundle *)0x0) {
    pcVar2 = ((pcVar6->conn_list).tail)->next;
    while (pcVar2 == (curl_llist_element *)0x0) {
      pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);
      if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;
      pcVar2 = ((pcVar6->conn_list).tail)->next;
    }
    pcVar6 = (connectbundle *)pcVar2->ptr;
  }
LAB_0006e834:
  if ((Curl_easy *)cStack_210.conn_list.tail == (Curl_easy *)**(int **)(pcStack_218 + -0x713c)) {
    return pcVar6;
  }
  pcVar22 = *(code **)(pcStack_218 + -0x74c8);
  pcVar23 = Curl_conncache_extract_bundle;
  pCVar15 = (Curl_easy *)cStack_210.conn_list.tail;
  (*pcVar22)();
  pCStack_24c = (Curl_easy *)**(undefined4 **)(pcVar22 + 0x43774);
  pcStack_244 = &cStack_210;
  pCStack_240 = pCVar12;
  pCStack_23c = pCVar11;
  pCStack_238 = pCVar19;
  pCStack_234 = unaff_s4;
  pCStack_230 = data;
  pcStack_22c = pcVar23;
  (**(code **)(pcVar22 + 0x42914))(&uStack_254);
  pcVar2 = (pcVar3->conn_list).head;
  iVar5 = -1;
  if (pcVar2 == (curl_llist_element *)0x0) {
    pCVar19 = (Curl_easy *)0x0;
  }
  else {
    pCVar19 = (Curl_easy *)0x0;
    do {
      pCVar12 = (Curl_easy *)pcVar2->ptr;
      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +
           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&
         (iVar7 = (**(code **)(pcVar22 + 0x429c0))
                            (uStack_254,uStack_250,
                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),
                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),
         iVar5 < iVar7)) {
        pCVar19 = pCVar12;
        iVar5 = iVar7;
      }
      pcVar2 = pcVar2->next;
    } while (pcVar2 != (curl_llist_element *)0x0);
    if (pCVar19 != (Curl_easy *)0x0) {
      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);
      pcVar10 = (pCVar15->state).conn_cache;
      pcVar10->num_conn = pcVar10->num_conn - 1;
      pCVar19->next = pCVar15;
    }
  }
  if (pCStack_24c != (Curl_easy *)**(int **)(pcVar22 + 0x43774)) {
    pcVar22 = *(code **)(pcVar22 + 0x433e8);
    pCVar13 = pCStack_24c;
    (*pcVar22)();
    pcStack_29c = (connectdata *)**(undefined4 **)(pcVar22 + 0x43634);
    pcVar10 = (pCVar13->state).conn_cache;
    uStack_298 = 0;
    pCStack_294 = pCVar12;
    pCStack_290 = pCVar19;
    iStack_28c = iVar5;
    pcStack_288 = pcVar3;
    pCStack_284 = pCVar15;
    puStack_280 = unaff_s6;
    (**(code **)(pcVar22 + 0x427d4))(&uStack_2b0);
    if (pCVar13->share != (Curl_share *)0x0) {
      (**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);
    }
    (**(code **)(pcVar22 + 0x42e48))(pcVar10,auStack_2a8);
    iVar5 = (**(code **)(pcVar22 + 0x42e4c))(auStack_2a8);
    pcVar3 = (connectbundle *)0x0;
    if (iVar5 == 0) {
      pcVar20 = (connectdata *)0x0;
    }
    else {
      pcVar20 = (connectdata *)0x0;
      iVar7 = -1;
      do {
        pcVar6 = *(connectbundle **)(iVar5 + 0xc);
        pcVar2 = (pcVar6->conn_list).head;
        if (pcVar2 == (curl_llist_element *)0x0) {
          pcVar23 = *(code **)(pcVar22 + 0x42e4c);
        }
        else {
          do {
            pcVar18 = (connectdata *)pcVar2->ptr;
            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&
               (iVar5 = (**(code **)(pcVar22 + 0x42880))
                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,
                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {
              iVar7 = iVar5;
              pcVar20 = pcVar18;
              pcVar3 = pcVar6;
            }
            pcVar2 = pcVar2->next;
          } while (pcVar2 != (curl_llist_element *)0x0);
          pcVar23 = *(code **)(pcVar22 + 0x42e4c);
        }
        iVar5 = (*pcVar23)(auStack_2a8);
      } while (iVar5 != 0);
      if (pcVar20 != (connectdata *)0x0) {
        bundle_remove_conn(pcVar3,pcVar20);
        pcVar10->num_conn = pcVar10->num_conn - 1;
        pcVar20->data = pCVar13;
      }
    }
    if (pCVar13->share != (Curl_share *)0x0) {
      (**(code **)(pcVar22 + 0x4282c))(pCVar13,5);
    }
    if (pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)) {
      pcVar22 = *(code **)(pcVar22 + 0x432a8);
      pcVar20 = pcStack_29c;
      (*pcVar22)();
      pCVar12 = pcVar20->data;
      uVar8 = pCVar12->multi->maxconnects;
      if ((int)uVar8 < 0) {
        uVar8 = pCVar12->multi->num_easy << 2;
      }
      if (uVar8 == 0) {
        pcVar18 = (connectdata *)0x0;
      }
      else {
        sVar9 = Curl_conncache_size(pCVar12);
        if (uVar8 < sVar9) {
          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);
          pcVar18 = Curl_conncache_extract_oldest(pCVar12);
          if (pcVar18 != (connectdata *)0x0) {
            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);
          }
        }
        else {
          pcVar18 = (connectdata *)0x0;
        }
      }
      return (connectbundle *)(uint)(pcVar18 != pcVar20);
    }
    return (connectbundle *)pcVar20;
  }
  return (connectbundle *)pCVar19;
}



code * FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)

{
  code *pcVar1;
  undefined4 *puVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  code *pcVar9;
  code *pcVar10;
  code *pcVar11;
  code *pcVar12;
  code *pcVar13;
  undefined1 *puVar14;
  code *pcVar15;
  code *pcVar16;
  code *pcVar17;
  code *pcVar18;
  int iVar19;
  int *piVar20;
  code *unaff_s1;
  int iVar21;
  code *unaff_s4;
  code *unaff_s5;
  undefined1 *unaff_s6;
  undefined *puVar22;
  code *pcVar23;
  int iVar24;
  undefined4 uVar25;
  undefined4 uStack_2b0;
  undefined4 uStack_2ac;
  undefined1 auStack_2a8 [12];
  int *piStack_29c;
  undefined4 uStack_298;
  code *pcStack_294;
  code *pcStack_290;
  int iStack_28c;
  undefined1 *puStack_288;
  int iStack_284;
  undefined1 *puStack_280;
  undefined4 uStack_254;
  undefined4 uStack_250;
  int iStack_24c;
  undefined1 *puStack_244;
  code *pcStack_240;
  code *pcStack_23c;
  code *pcStack_238;
  code *pcStack_234;
  code *pcStack_230;
  undefined4 uStack_22c;
  code *pcStack_218;
  undefined1 auStack_210 [12];
  int iStack_204;
  code *pcStack_200;
  code *pcStack_1fc;
  code *pcStack_1e8;
  undefined1 auStack_1e0 [12];
  int iStack_1d4;
  code *pcStack_1d0;
  code *pcStack_1cc;
  code *pcStack_1c8;
  code *pcStack_1c4;
  code *pcStack_1c0;
  code *pcStack_1bc;
  undefined1 auStack_198 [12];
  code *pcStack_18c;
  code *pcStack_184;
  code *pcStack_180;
  int iStack_17c;
  code *pcStack_178;
  code *pcStack_174;
  undefined1 auStack_14c [128];
  code *local_cc;
  code *local_c8;
  code *local_c4;
  int *local_c0;
  undefined1 local_94 [128];
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;
  pcVar11 = param_2;
  if (*(int *)(*param_1 + 0x8c) != 0) {
    pcVar11 = (code *)&DAT_00000005;
    FUN_0004e860(*param_1,5,2);
  }
  pcVar15 = (code *)0x80;
  if (param_2 == (code *)0x0) {
    pcVar1 = (code *)0x0;
  }
  else {
    unaff_s1 = (code *)local_94;
    FUN_0006dccc(param_1,unaff_s1);
    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);
    pcVar11 = unaff_s1;
    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);
  }
  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {
    return pcVar1;
  }
  iVar19 = local_14;
  puVar22 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  local_c0 = param_1;
  local_c4 = unaff_s1;
  local_c8 = param_2;
  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);
  pcVar1 = *(code **)pcVar11;
  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));
  if (puVar2 == (undefined4 *)0x0) {
    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);
    if (puVar2 != (undefined4 *)0x0) {
      puVar2[1] = 0;
      *puVar2 = 0;
      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);
      unaff_s4 = (code *)auStack_14c;
      FUN_0006dccc(pcVar11,unaff_s4,0x80);
      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);
      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);
      param_4 = pcVar11 + 4;
      if (iVar3 != 0) goto LAB_0006e2c4;
      FUN_0006dc28(puVar2);
    }
    pcVar17 = (code *)0x1b;
  }
  else {
LAB_0006e2c4:
    param_4 = pcVar11 + 4;
    pcVar15 = pcVar11;
    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);
    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;
    puVar2[1] = puVar2[1] + 1;
    iVar3 = *(int *)(iVar19 + 0x1c);
    *(int *)(iVar19 + 0x1c) = iVar3 + 1;
    *(int *)(pcVar11 + 0x48) = iVar3;
    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;
    pcVar17 = (code *)0x0;
  }
  pcVar12 = (code *)&DAT_00000005;
  if (*(int *)(pcVar1 + 0x8c) != 0) {
    FUN_0004e8cc(pcVar1);
  }
  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {
    return pcVar17;
  }
  pcVar23 = *(code **)(puVar22 + 0x439ec);
  pcVar9 = local_cc;
  (*pcVar23)();
  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);
  pcVar18 = *(code **)(pcVar12 + 0x59c);
  pcVar10 = pcVar9;
  pcVar13 = pcVar12;
  pcVar16 = pcVar15;
  pcStack_184 = pcVar17;
  pcStack_180 = pcVar11;
  iStack_17c = iVar19;
  pcStack_178 = pcVar1;
  pcStack_174 = unaff_s4;
  if (pcVar18 == (code *)0x0) goto LAB_0006e510;
  pcVar1 = *(code **)(pcVar9 + 0xc78);
  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {
    FUN_0004e860();
  }
  pcVar10 = pcVar18;
  FUN_0006dd58();
  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {
    pcVar13 = unaff_s5;
    (**(code **)(pcVar23 + 0x433b4))(pcVar1);
    pcVar10 = unaff_s5;
    iVar19 = (**(code **)(pcVar23 + 0x433b8))();
    if (iVar19 != 0) {
      pcVar11 = *(code **)(iVar19 + 0xc);
      while (pcVar18 != pcVar11) {
        pcVar10 = unaff_s5;
        iVar19 = (**(code **)(pcVar23 + 0x433b8))();
        if (iVar19 == 0) goto LAB_0006e5d4;
        pcVar11 = *(code **)(iVar19 + 0xc);
      }
      pcVar16 = *(code **)(iVar19 + 0x10);
      pcVar13 = (code *)(iVar19 + 0x14);
      pcVar10 = pcVar1;
      (**(code **)(pcVar23 + 0x42d7c))();
      goto LAB_0006e4d4;
    }
LAB_0006e5d4:
    *(int *)(pcVar12 + 0x59c) = 0;
LAB_0006e4dc:
    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;
  }
  else {
LAB_0006e4d4:
    *(int *)(pcVar12 + 0x59c) = 0;
    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;
  }
  *(int *)pcVar12 = 0;
  pcVar11 = pcVar12;
  unaff_s4 = pcVar15;
  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {
    pcVar10 = pcVar9;
    FUN_0004e8cc();
  }
LAB_0006e510:
  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {
    return (code *)**(int **)(pcVar23 + 0x43ba0);
  }
  pcVar15 = *(code **)(pcVar23 + 0x43814);
  (*pcVar15)();
  pcStack_1bc = unaff_s5;
  pcStack_1c0 = unaff_s4;
  pcStack_1c4 = pcVar1;
  pcStack_1c8 = pcVar9;
  pcStack_1cc = pcVar11;
  pcStack_1d0 = pcVar18;
  pcStack_1e8 = pcVar15 + 0x4ab28;
  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);
  if (pcVar13 == (code *)0x0) {
    pcVar15 = (code *)0x0;
  }
  else {
    if (*(int *)(pcVar10 + 0x8c) != 0) {
      FUN_0004e860();
    }
    pcVar1 = (code *)auStack_1e0;
    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);
    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);
    pcVar18 = pcVar13;
    pcVar9 = param_4;
    pcVar11 = pcVar16;
    if (unaff_s4 != (code *)0x0) {
      unaff_s6 = auStack_1e0;
      pcVar1 = (code *)0x1;
      do {
        iVar19 = *(int *)(unaff_s4 + 0xc);
        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);
        pcVar18 = *(code **)(iVar19 + 8);
        while (pcVar18 != (code *)0x0) {
          iVar19 = *(int *)pcVar18;
          pcVar18 = *(code **)(pcVar18 + 8);
          iVar19 = (*param_4)(iVar19,pcVar16);
          if (iVar19 == 1) {
            if (*(int *)(pcVar10 + 0x8c) == 0) {
              pcVar15 = (code *)0x1;
            }
            else {
              FUN_0004e8cc(pcVar10,5);
              pcVar15 = (code *)0x1;
            }
            goto LAB_0006e740;
          }
        }
        pcVar18 = (code *)0x0;
      } while (unaff_s4 != (code *)0x0);
    }
    if (*(int *)(pcVar10 + 0x8c) == 0) {
      pcVar15 = (code *)0x0;
    }
    else {
      FUN_0004e8cc(pcVar10,5);
      pcVar15 = (code *)0x0;
    }
  }
LAB_0006e740:
  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {
    return pcVar15;
  }
  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);
  pcVar17 = FUN_0006e79c;
  (*pcVar15)();
  pcStack_218 = pcVar15 + 0x4a974;
  iStack_204 = **(int **)(pcVar15 + 0x43838);
  puVar14 = auStack_210;
  pcStack_200 = pcVar18;
  pcStack_1fc = pcVar17;
  (**(code **)(pcVar15 + 0x4304c))();
  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);
  if (pcVar15 != (code *)0x0) {
    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);
    while (piVar4 == (int *)0x0) {
      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);
      if (pcVar15 == (code *)0x0) goto LAB_0006e834;
      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);
    }
    pcVar15 = (code *)*piVar4;
  }
LAB_0006e834:
  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {
    return pcVar15;
  }
  pcVar15 = *(code **)(pcStack_218 + -0x74c8);
  uVar25 = 0x6e860;
  iVar19 = iStack_204;
  (*pcVar15)();
  iStack_24c = **(int **)(pcVar15 + 0x43774);
  puStack_244 = auStack_210;
  pcStack_240 = pcVar11;
  pcStack_23c = pcVar9;
  pcStack_238 = pcVar1;
  pcStack_234 = unaff_s4;
  pcStack_230 = pcVar10;
  uStack_22c = uVar25;
  (**(code **)(pcVar15 + 0x42914))(&uStack_254);
  puVar2 = *(undefined4 **)(puVar14 + 8);
  iVar3 = -1;
  if (puVar2 == (undefined4 *)0x0) {
    pcVar1 = (code *)0x0;
  }
  else {
    pcVar1 = (code *)0x0;
    do {
      pcVar11 = (code *)*puVar2;
      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&
         (iVar5 = (**(code **)(pcVar15 + 0x429c0))
                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),
                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {
        pcVar1 = pcVar11;
        iVar3 = iVar5;
      }
      puVar2 = (undefined4 *)puVar2[2];
    } while (puVar2 != (undefined4 *)0x0);
    if (pcVar1 != (code *)0x0) {
      FUN_0006dd58(puVar14,pcVar1);
      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;
      *(int *)pcVar1 = iVar19;
    }
  }
  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {
    pcVar15 = *(code **)(pcVar15 + 0x433e8);
    iVar5 = iStack_24c;
    (*pcVar15)();
    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);
    iVar24 = *(int *)(iVar5 + 0xc78);
    uStack_298 = 0;
    pcStack_294 = pcVar11;
    pcStack_290 = pcVar1;
    iStack_28c = iVar3;
    puStack_288 = puVar14;
    iStack_284 = iVar19;
    puStack_280 = unaff_s6;
    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);
    if (*(int *)(iVar5 + 0x8c) != 0) {
      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);
    }
    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);
    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);
    iVar19 = 0;
    if (iVar3 == 0) {
      pcVar11 = (code *)0x0;
    }
    else {
      pcVar11 = (code *)0x0;
      iVar21 = -1;
      do {
        iVar3 = *(int *)(iVar3 + 0xc);
        puVar2 = *(undefined4 **)(iVar3 + 8);
        if (puVar2 == (undefined4 *)0x0) {
          pcVar1 = *(code **)(pcVar15 + 0x42e4c);
        }
        else {
          do {
            pcVar1 = (code *)*puVar2;
            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&
               (iVar6 = (**(code **)(pcVar15 + 0x42880))
                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),
                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {
              iVar21 = iVar6;
              pcVar11 = pcVar1;
              iVar19 = iVar3;
            }
            puVar2 = (undefined4 *)puVar2[2];
          } while (puVar2 != (undefined4 *)0x0);
          pcVar1 = *(code **)(pcVar15 + 0x42e4c);
        }
        iVar3 = (*pcVar1)(auStack_2a8);
      } while (iVar3 != 0);
      if (pcVar11 != (code *)0x0) {
        FUN_0006dd58(iVar19,pcVar11);
        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;
        *(int *)pcVar11 = iVar5;
      }
    }
    if (*(int *)(iVar5 + 0x8c) != 0) {
      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);
    }
    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {
      pcVar11 = *(code **)(pcVar15 + 0x432a8);
      piVar4 = piStack_29c;
      (*pcVar11)();
      iVar19 = *piVar4;
      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);
      if ((int)uVar7 < 0) {
        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;
      }
      if (uVar7 == 0) {
        piVar20 = (int *)0x0;
      }
      else {
        uVar8 = FUN_0006e044(iVar19);
        if (uVar7 < uVar8) {
          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);
          piVar20 = (int *)FUN_0006e9a0(iVar19);
          if (piVar20 != (int *)0x0) {
            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);
          }
        }
        else {
          piVar20 = (int *)0x0;
        }
      }
      return (code *)(uint)(piVar20 != piVar4);
    }
    return pcVar11;
  }
  return pcVar1;
}


lui gp,0x5
addiu gp,gp,-0x505c
addu gp,gp,t9
addiu sp,sp,-0xb0
sw ra,0xac(sp)
sw s2,0xa8(sp)
sw s1,0xa4(sp)
sw s0,0xa0(sp)
sw gp,0x10(sp)
or s2,a0,zero
or s0,a1,zero
lw v0,-0x713c(gp)
lw v0,0x0(v0)
sw v0,0x9c(sp)
lw a0,0x0(a0)
lw v0,0x8c(a0)
beq v0,zero,0x0006e1c8
_li a2,0x2
li a1,0x5
lw t9,-0x7f4c(gp)
bal 0x0004e860
_nop
lw gp,0x10(sp)
beq s0,zero,0x0006e248
_li a2,0x80
addiu s1,sp,0x1c
or a1,s1,zero
or a0,s2,zero
lw t9,-0x7998(gp)
addiu t9,t9,-0x2334
bal 0x0006dccc
_nop
lw gp,0x10(sp)
or a0,s1,zero
lw t9,-0x7274(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a2,v0,zero
or a1,s1,zero
or a0,s0,zero
lw t9,-0x7f68(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x9c(sp)
lw v1,-0x713c(gp)
lw v1,0x0(v1)
bne a0,v1,0x0006e250
_lw ra,0xac(sp)
lw s2,0xa8(sp)
lw s1,0xa4(sp)
lw s0,0xa0(sp)
jr ra
_addiu sp,sp,0xb0
b 0x0006e220
_or v0,s0,zero
lw t9,-0x74c8(gp)
jalr t9
_nop
lui gp,0x5
addiu gp,gp,-0x514c
addu gp,gp,t9
addiu sp,sp,-0xb8
sw ra,0xb4(sp)
sw s4,0xb0(sp)
sw s3,0xac(sp)
sw s2,0xa8(sp)
sw s1,0xa4(sp)
sw s0,0xa0(sp)
sw gp,0x10(sp)
or s2,a0,zero
or s1,a1,zero
lw v0,-0x713c(gp)
lw v0,0x0(v0)
sw v0,0x9c(sp)
lw s3,0x0(a1)
lw a1,0xc78(s3)
or a0,s1,zero
lw t9,-0x7c38(gp)
bal 0x0006e16c
_nop
lw gp,0x10(sp)
beq v0,zero,0x0006e364
_or s0,v0,zero
addiu a3,s1,0x4
or a2,s1,zero
lw a1,0xc(s0)
addiu a0,s0,0x8
lw t9,-0x7b24(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw s0,0x59c(s1)
lw v0,0x4(s0)
addiu v0,v0,0x1
sw v0,0x4(s0)
lw v0,0x1c(s2)
addiu v1,v0,0x1
sw v1,0x1c(s2)
sw v0,0x48(s1)
lw v0,0x18(s2)
addiu v0,v0,0x1
sw v0,0x18(s2)
or s0,zero,zero
lw v0,0x8c(s3)
beq v0,zero,0x0006e330
_li a1,0x5
or a0,s3,zero
lw t9,-0x7f44(gp)
bal 0x0004e8cc
_nop
lw gp,0x10(sp)
or v0,s0,zero
lw a0,0x9c(sp)
lw v1,-0x713c(gp)
lw v1,0x0(v1)
bne a0,v1,0x0006e428
_lw ra,0xb4(sp)
lw s4,0xb0(sp)
lw s3,0xac(sp)
lw s2,0xa8(sp)
lw s1,0xa4(sp)
lw s0,0xa0(sp)
jr ra
_addiu sp,sp,0xb8
lw v0,-0x7f78(gp)
lw t9,0x0(v0)
li a0,0x18
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x0006e420
_or s0,v0,zero
sw zero,0x4(v0)
sw zero,0x0(v0)
lw a1,-0x7998(gp)
addiu a1,a1,-0x23e0
addiu a0,v0,0x8
lw t9,-0x7c60(gp)
jalr t9
_nop
lw gp,0x10(sp)
li a2,0x80
addiu s4,sp,0x1c
or a1,s4,zero
or a0,s1,zero
lw t9,-0x7998(gp)
addiu t9,t9,-0x2334
bal 0x0006dccc
_nop
lw gp,0x10(sp)
or a0,s4,zero
lw t9,-0x7274(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a3,s0,zero
or a2,v0,zero
or a1,s4,zero
lw a0,0xc78(s3)
lw t9,-0x7f34(gp)
jalr t9
_nop
lw gp,0x10(sp)
bne v0,zero,0x0006e2c4
_addiu a3,s1,0x4
or a0,s0,zero
lw t9,-0x7998(gp)
addiu t9,t9,-0x23d8
bal 0x0006dc28
_nop
lw gp,0x10(sp)
b 0x0006e310
_li s0,0x1b
lw t9,-0x74c8(gp)
jalr t9
_nop
(translation_unit "code * FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)\n\n{\n  code *pcVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  undefined1 *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  code *pcVar18;\n  int iVar19;\n  int *piVar20;\n  code *unaff_s1;\n  int iVar21;\n  code *unaff_s4;\n  code *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  undefined4 uVar25;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  int *piStack_29c;\n  undefined4 uStack_298;\n  code *pcStack_294;\n  code *pcStack_290;\n  int iStack_28c;\n  undefined1 *puStack_288;\n  int iStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  int iStack_24c;\n  undefined1 *puStack_244;\n  code *pcStack_240;\n  code *pcStack_23c;\n  code *pcStack_238;\n  code *pcStack_234;\n  code *pcStack_230;\n  undefined4 uStack_22c;\n  code *pcStack_218;\n  undefined1 auStack_210 [12];\n  int iStack_204;\n  code *pcStack_200;\n  code *pcStack_1fc;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  int iStack_1d4;\n  code *pcStack_1d0;\n  code *pcStack_1cc;\n  code *pcStack_1c8;\n  code *pcStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  undefined1 auStack_198 [12];\n  code *pcStack_18c;\n  code *pcStack_184;\n  code *pcStack_180;\n  int iStack_17c;\n  code *pcStack_178;\n  code *pcStack_174;\n  undefined1 auStack_14c [128];\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  int *local_c0;\n  undefined1 local_94 [128];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;\n  pcVar11 = param_2;\n  if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }\n  pcVar15 = (code *)0x80;\n  if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }\n  iVar19 = local_14;\n  puVar22 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  local_c0 = param_1;\n  local_c4 = unaff_s1;\n  local_c8 = param_2;\n  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);\n  pcVar1 = *(code **)pcVar11;\n  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));\n  if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }\n  pcVar12 = (code *)&DAT_00000005;\n  if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }\n  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }\n  pcVar23 = *(code **)(puVar22 + 0x439ec);\n  pcVar9 = local_cc;\n  (*pcVar23)();\n  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);\n  pcVar18 = *(code **)(pcVar12 + 0x59c);\n  pcVar10 = pcVar9;\n  pcVar13 = pcVar12;\n  pcVar16 = pcVar15;\n  pcStack_184 = pcVar17;\n  pcStack_180 = pcVar11;\n  iStack_17c = iVar19;\n  pcStack_178 = pcVar1;\n  pcStack_174 = unaff_s4;\n  if (pcVar18 == (code *)0x0) goto LAB_0006e510;\n  pcVar1 = *(code **)(pcVar9 + 0xc78);\n  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }\n  pcVar10 = pcVar18;\n  FUN_0006dd58();\n  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }\n  *(int *)pcVar12 = 0;\n  pcVar11 = pcVar12;\n  unaff_s4 = pcVar15;\n  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }\nLAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }\n  pcVar15 = *(code **)(pcVar23 + 0x43814);\n  (*pcVar15)();\n  pcStack_1bc = unaff_s5;\n  pcStack_1c0 = unaff_s4;\n  pcStack_1c4 = pcVar1;\n  pcStack_1c8 = pcVar9;\n  pcStack_1cc = pcVar11;\n  pcStack_1d0 = pcVar18;\n  pcStack_1e8 = pcVar15 + 0x4ab28;\n  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);\n  if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar17 = FUN_0006e79c;\n  (*pcVar15)();\n  pcStack_218 = pcVar15 + 0x4a974;\n  iStack_204 = **(int **)(pcVar15 + 0x43838);\n  puVar14 = auStack_210;\n  pcStack_200 = pcVar18;\n  pcStack_1fc = pcVar17;\n  (**(code **)(pcVar15 + 0x4304c))();\n  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n  if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }\nLAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_218 + -0x74c8);\n  uVar25 = 0x6e860;\n  iVar19 = iStack_204;\n  (*pcVar15)();\n  iStack_24c = **(int **)(pcVar15 + 0x43774);\n  puStack_244 = auStack_210;\n  pcStack_240 = pcVar11;\n  pcStack_23c = pcVar9;\n  pcStack_238 = pcVar1;\n  pcStack_234 = unaff_s4;\n  pcStack_230 = pcVar10;\n  uStack_22c = uVar25;\n  (**(code **)(pcVar15 + 0x42914))(&uStack_254);\n  puVar2 = *(undefined4 **)(puVar14 + 8);\n  iVar3 = -1;\n  if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }\n  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }\n  return pcVar1;\n}\n\n" (function_definition "code * FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)\n\n{\n  code *pcVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  undefined1 *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  code *pcVar18;\n  int iVar19;\n  int *piVar20;\n  code *unaff_s1;\n  int iVar21;\n  code *unaff_s4;\n  code *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  undefined4 uVar25;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  int *piStack_29c;\n  undefined4 uStack_298;\n  code *pcStack_294;\n  code *pcStack_290;\n  int iStack_28c;\n  undefined1 *puStack_288;\n  int iStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  int iStack_24c;\n  undefined1 *puStack_244;\n  code *pcStack_240;\n  code *pcStack_23c;\n  code *pcStack_238;\n  code *pcStack_234;\n  code *pcStack_230;\n  undefined4 uStack_22c;\n  code *pcStack_218;\n  undefined1 auStack_210 [12];\n  int iStack_204;\n  code *pcStack_200;\n  code *pcStack_1fc;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  int iStack_1d4;\n  code *pcStack_1d0;\n  code *pcStack_1cc;\n  code *pcStack_1c8;\n  code *pcStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  undefined1 auStack_198 [12];\n  code *pcStack_18c;\n  code *pcStack_184;\n  code *pcStack_180;\n  int iStack_17c;\n  code *pcStack_178;\n  code *pcStack_174;\n  undefined1 auStack_14c [128];\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  int *local_c0;\n  undefined1 local_94 [128];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;\n  pcVar11 = param_2;\n  if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }\n  pcVar15 = (code *)0x80;\n  if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }\n  iVar19 = local_14;\n  puVar22 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  local_c0 = param_1;\n  local_c4 = unaff_s1;\n  local_c8 = param_2;\n  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);\n  pcVar1 = *(code **)pcVar11;\n  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));\n  if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }\n  pcVar12 = (code *)&DAT_00000005;\n  if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }\n  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }\n  pcVar23 = *(code **)(puVar22 + 0x439ec);\n  pcVar9 = local_cc;\n  (*pcVar23)();\n  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);\n  pcVar18 = *(code **)(pcVar12 + 0x59c);\n  pcVar10 = pcVar9;\n  pcVar13 = pcVar12;\n  pcVar16 = pcVar15;\n  pcStack_184 = pcVar17;\n  pcStack_180 = pcVar11;\n  iStack_17c = iVar19;\n  pcStack_178 = pcVar1;\n  pcStack_174 = unaff_s4;\n  if (pcVar18 == (code *)0x0) goto LAB_0006e510;\n  pcVar1 = *(code **)(pcVar9 + 0xc78);\n  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }\n  pcVar10 = pcVar18;\n  FUN_0006dd58();\n  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }\n  *(int *)pcVar12 = 0;\n  pcVar11 = pcVar12;\n  unaff_s4 = pcVar15;\n  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }\nLAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }\n  pcVar15 = *(code **)(pcVar23 + 0x43814);\n  (*pcVar15)();\n  pcStack_1bc = unaff_s5;\n  pcStack_1c0 = unaff_s4;\n  pcStack_1c4 = pcVar1;\n  pcStack_1c8 = pcVar9;\n  pcStack_1cc = pcVar11;\n  pcStack_1d0 = pcVar18;\n  pcStack_1e8 = pcVar15 + 0x4ab28;\n  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);\n  if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar17 = FUN_0006e79c;\n  (*pcVar15)();\n  pcStack_218 = pcVar15 + 0x4a974;\n  iStack_204 = **(int **)(pcVar15 + 0x43838);\n  puVar14 = auStack_210;\n  pcStack_200 = pcVar18;\n  pcStack_1fc = pcVar17;\n  (**(code **)(pcVar15 + 0x4304c))();\n  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n  if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }\nLAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_218 + -0x74c8);\n  uVar25 = 0x6e860;\n  iVar19 = iStack_204;\n  (*pcVar15)();\n  iStack_24c = **(int **)(pcVar15 + 0x43774);\n  puStack_244 = auStack_210;\n  pcStack_240 = pcVar11;\n  pcStack_23c = pcVar9;\n  pcStack_238 = pcVar1;\n  pcStack_234 = unaff_s4;\n  pcStack_230 = pcVar10;\n  uStack_22c = uVar25;\n  (**(code **)(pcVar15 + 0x42914))(&uStack_254);\n  puVar2 = *(undefined4 **)(puVar14 + 8);\n  iVar3 = -1;\n  if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }\n  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }\n  return pcVar1;\n}" type_identifier (pointer_declarator "* FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)" * (function_declarator "FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)" identifier (parameter_list "(int *param_1,code *param_2,undefined4 param_3,code *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  code *pcVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  undefined1 *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  code *pcVar18;\n  int iVar19;\n  int *piVar20;\n  code *unaff_s1;\n  int iVar21;\n  code *unaff_s4;\n  code *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  undefined4 uVar25;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  int *piStack_29c;\n  undefined4 uStack_298;\n  code *pcStack_294;\n  code *pcStack_290;\n  int iStack_28c;\n  undefined1 *puStack_288;\n  int iStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  int iStack_24c;\n  undefined1 *puStack_244;\n  code *pcStack_240;\n  code *pcStack_23c;\n  code *pcStack_238;\n  code *pcStack_234;\n  code *pcStack_230;\n  undefined4 uStack_22c;\n  code *pcStack_218;\n  undefined1 auStack_210 [12];\n  int iStack_204;\n  code *pcStack_200;\n  code *pcStack_1fc;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  int iStack_1d4;\n  code *pcStack_1d0;\n  code *pcStack_1cc;\n  code *pcStack_1c8;\n  code *pcStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  undefined1 auStack_198 [12];\n  code *pcStack_18c;\n  code *pcStack_184;\n  code *pcStack_180;\n  int iStack_17c;\n  code *pcStack_178;\n  code *pcStack_174;\n  undefined1 auStack_14c [128];\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  int *local_c0;\n  undefined1 local_94 [128];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;\n  pcVar11 = param_2;\n  if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }\n  pcVar15 = (code *)0x80;\n  if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }\n  iVar19 = local_14;\n  puVar22 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  local_c0 = param_1;\n  local_c4 = unaff_s1;\n  local_c8 = param_2;\n  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);\n  pcVar1 = *(code **)pcVar11;\n  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));\n  if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }\n  pcVar12 = (code *)&DAT_00000005;\n  if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }\n  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }\n  pcVar23 = *(code **)(puVar22 + 0x439ec);\n  pcVar9 = local_cc;\n  (*pcVar23)();\n  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);\n  pcVar18 = *(code **)(pcVar12 + 0x59c);\n  pcVar10 = pcVar9;\n  pcVar13 = pcVar12;\n  pcVar16 = pcVar15;\n  pcStack_184 = pcVar17;\n  pcStack_180 = pcVar11;\n  iStack_17c = iVar19;\n  pcStack_178 = pcVar1;\n  pcStack_174 = unaff_s4;\n  if (pcVar18 == (code *)0x0) goto LAB_0006e510;\n  pcVar1 = *(code **)(pcVar9 + 0xc78);\n  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }\n  pcVar10 = pcVar18;\n  FUN_0006dd58();\n  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }\n  *(int *)pcVar12 = 0;\n  pcVar11 = pcVar12;\n  unaff_s4 = pcVar15;\n  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }\nLAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }\n  pcVar15 = *(code **)(pcVar23 + 0x43814);\n  (*pcVar15)();\n  pcStack_1bc = unaff_s5;\n  pcStack_1c0 = unaff_s4;\n  pcStack_1c4 = pcVar1;\n  pcStack_1c8 = pcVar9;\n  pcStack_1cc = pcVar11;\n  pcStack_1d0 = pcVar18;\n  pcStack_1e8 = pcVar15 + 0x4ab28;\n  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);\n  if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar17 = FUN_0006e79c;\n  (*pcVar15)();\n  pcStack_218 = pcVar15 + 0x4a974;\n  iStack_204 = **(int **)(pcVar15 + 0x43838);\n  puVar14 = auStack_210;\n  pcStack_200 = pcVar18;\n  pcStack_1fc = pcVar17;\n  (**(code **)(pcVar15 + 0x4304c))();\n  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n  if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }\nLAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_218 + -0x74c8);\n  uVar25 = 0x6e860;\n  iVar19 = iStack_204;\n  (*pcVar15)();\n  iStack_24c = **(int **)(pcVar15 + 0x43774);\n  puStack_244 = auStack_210;\n  pcStack_240 = pcVar11;\n  pcStack_23c = pcVar9;\n  pcStack_238 = pcVar1;\n  pcStack_234 = unaff_s4;\n  pcStack_230 = pcVar10;\n  uStack_22c = uVar25;\n  (**(code **)(pcVar15 + 0x42914))(&uStack_254);\n  puVar2 = *(undefined4 **)(puVar14 + 8);\n  iVar3 = -1;\n  if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }\n  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }\n  return pcVar1;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "code *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "code *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "code *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "undefined4 uStack_2b0;" type_identifier identifier ;) (declaration "undefined4 uStack_2ac;" type_identifier identifier ;) (declaration "undefined1 auStack_2a8 [12];" type_identifier (array_declarator "auStack_2a8 [12]" identifier [ number_literal ]) ;) (declaration "int *piStack_29c;" primitive_type (pointer_declarator "*piStack_29c" * identifier) ;) (declaration "undefined4 uStack_298;" type_identifier identifier ;) (declaration "code *pcStack_294;" type_identifier (pointer_declarator "*pcStack_294" * identifier) ;) (declaration "code *pcStack_290;" type_identifier (pointer_declarator "*pcStack_290" * identifier) ;) (declaration "int iStack_28c;" primitive_type identifier ;) (declaration "undefined1 *puStack_288;" type_identifier (pointer_declarator "*puStack_288" * identifier) ;) (declaration "int iStack_284;" primitive_type identifier ;) (declaration "undefined1 *puStack_280;" type_identifier (pointer_declarator "*puStack_280" * identifier) ;) (declaration "undefined4 uStack_254;" type_identifier identifier ;) (declaration "undefined4 uStack_250;" type_identifier identifier ;) (declaration "int iStack_24c;" primitive_type identifier ;) (declaration "undefined1 *puStack_244;" type_identifier (pointer_declarator "*puStack_244" * identifier) ;) (declaration "code *pcStack_240;" type_identifier (pointer_declarator "*pcStack_240" * identifier) ;) (declaration "code *pcStack_23c;" type_identifier (pointer_declarator "*pcStack_23c" * identifier) ;) (declaration "code *pcStack_238;" type_identifier (pointer_declarator "*pcStack_238" * identifier) ;) (declaration "code *pcStack_234;" type_identifier (pointer_declarator "*pcStack_234" * identifier) ;) (declaration "code *pcStack_230;" type_identifier (pointer_declarator "*pcStack_230" * identifier) ;) (declaration "undefined4 uStack_22c;" type_identifier identifier ;) (declaration "code *pcStack_218;" type_identifier (pointer_declarator "*pcStack_218" * identifier) ;) (declaration "undefined1 auStack_210 [12];" type_identifier (array_declarator "auStack_210 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_204;" primitive_type identifier ;) (declaration "code *pcStack_200;" type_identifier (pointer_declarator "*pcStack_200" * identifier) ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "code *pcStack_1e8;" type_identifier (pointer_declarator "*pcStack_1e8" * identifier) ;) (declaration "undefined1 auStack_1e0 [12];" type_identifier (array_declarator "auStack_1e0 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_1d4;" primitive_type identifier ;) (declaration "code *pcStack_1d0;" type_identifier (pointer_declarator "*pcStack_1d0" * identifier) ;) (declaration "code *pcStack_1cc;" type_identifier (pointer_declarator "*pcStack_1cc" * identifier) ;) (declaration "code *pcStack_1c8;" type_identifier (pointer_declarator "*pcStack_1c8" * identifier) ;) (declaration "code *pcStack_1c4;" type_identifier (pointer_declarator "*pcStack_1c4" * identifier) ;) (declaration "code *pcStack_1c0;" type_identifier (pointer_declarator "*pcStack_1c0" * identifier) ;) (declaration "code *pcStack_1bc;" type_identifier (pointer_declarator "*pcStack_1bc" * identifier) ;) (declaration "undefined1 auStack_198 [12];" type_identifier (array_declarator "auStack_198 [12]" identifier [ number_literal ]) ;) (declaration "code *pcStack_18c;" type_identifier (pointer_declarator "*pcStack_18c" * identifier) ;) (declaration "code *pcStack_184;" type_identifier (pointer_declarator "*pcStack_184" * identifier) ;) (declaration "code *pcStack_180;" type_identifier (pointer_declarator "*pcStack_180" * identifier) ;) (declaration "int iStack_17c;" primitive_type identifier ;) (declaration "code *pcStack_178;" type_identifier (pointer_declarator "*pcStack_178" * identifier) ;) (declaration "code *pcStack_174;" type_identifier (pointer_declarator "*pcStack_174" * identifier) ;) (declaration "undefined1 auStack_14c [128];" type_identifier (array_declarator "auStack_14c [128]" identifier [ number_literal ]) ;) (declaration "code *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "code *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "code *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "int *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "undefined1 local_94 [128];" type_identifier (array_declarator "local_94 [128]" identifier [ number_literal ]) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(int *)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar11 = param_2;" (assignment_expression "pcVar11 = param_2" identifier = identifier) ;) (if_statement "if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }" if (parenthesized_expression "(*(int *)(*param_1 + 0x8c) != 0)" ( (binary_expression "*(int *)(*param_1 + 0x8c) != 0" (pointer_expression "*(int *)(*param_1 + 0x8c)" * (cast_expression "(int *)(*param_1 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x8c)" ( (binary_expression "*param_1 + 0x8c" (pointer_expression "*param_1" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }" { (expression_statement "pcVar11 = (code *)&DAT_00000005;" (assignment_expression "pcVar11 = (code *)&DAT_00000005" identifier = (cast_expression "(code *)&DAT_00000005" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (expression_statement "FUN_0004e860(*param_1,5,2);" (call_expression "FUN_0004e860(*param_1,5,2)" identifier (argument_list "(*param_1,5,2)" ( (pointer_expression "*param_1" * identifier) , number_literal , number_literal ))) ;) })) (expression_statement "pcVar15 = (code *)0x80;" (assignment_expression "pcVar15 = (code *)0x80" identifier = (cast_expression "(code *)0x80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" if (parenthesized_expression "(param_2 == (code *)0x0)" ( (binary_expression "param_2 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar1 = (code *)0x0;\n  }" { (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" else (compound_statement "{\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" { (expression_statement "unaff_s1 = (code *)local_94;" (assignment_expression "unaff_s1 = (code *)local_94" identifier = (cast_expression "(code *)local_94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0006dccc(param_1,unaff_s1);" (call_expression "FUN_0006dccc(param_1,unaff_s1)" identifier (argument_list "(param_1,unaff_s1)" ( identifier , identifier ))) ;) (expression_statement "pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);" (assignment_expression "pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" identifier = (cast_expression "(code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_strlen_000b1e9c)" ( (pointer_expression "*(code *)PTR_strlen_000b1e9c" * (cast_expression "(code *)PTR_strlen_000b1e9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))))) ;) (expression_statement "pcVar11 = unaff_s1;" (assignment_expression "pcVar11 = unaff_s1" identifier = identifier) ;) (expression_statement "pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);" (assignment_expression "pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2)" identifier = (cast_expression "(code *)(*(code *)PTR_FUN_000b11a8)(param_2)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_000b11a8)(param_2)" (parenthesized_expression "(*(code *)PTR_FUN_000b11a8)" ( (pointer_expression "*(code *)PTR_FUN_000b11a8" * (cast_expression "(code *)PTR_FUN_000b11a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) }))) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(int *)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar1;\n  }" { (return_statement "return pcVar1;" return identifier ;) })) (expression_statement "iVar19 = local_14;" (assignment_expression "iVar19 = local_14" identifier = identifier) ;) (expression_statement "puVar22 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar22 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_c0 = param_1;" (assignment_expression "local_c0 = param_1" identifier = identifier) ;) (expression_statement "local_c4 = unaff_s1;" (assignment_expression "local_c4 = unaff_s1" identifier = identifier) ;) (expression_statement "local_c8 = param_2;" (assignment_expression "local_c8 = param_2" identifier = identifier) ;) (expression_statement "local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);" (assignment_expression "local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78)" identifier = (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x43d78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar22 + 0x43d78)" * (pointer_expression "*(undefined4 **)(puVar22 + 0x43d78)" * (cast_expression "(undefined4 **)(puVar22 + 0x43d78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43d78)" ( (binary_expression "puVar22 + 0x43d78" identifier + number_literal) ))))))) ;) (expression_statement "pcVar1 = *(code **)pcVar11;" (assignment_expression "pcVar1 = *(code **)pcVar11" identifier = (pointer_expression "*(code **)pcVar11" * (cast_expression "(code **)pcVar11" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));" (assignment_expression "puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" identifier = (cast_expression "(undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" identifier (argument_list "(pcVar11,*(int *)(pcVar1 + 0xc78))" ( identifier , (pointer_expression "*(int *)(pcVar1 + 0xc78)" * (cast_expression "(int *)(pcVar1 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc78)" ( (binary_expression "pcVar1 + 0xc78" identifier + number_literal) )))) ))))) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }" { (expression_statement "puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" identifier = (cast_expression "(undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" (parenthesized_expression "(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))" ( (pointer_expression "*(code *)**(undefined4 **)(puVar22 + 0x42f3c)" * (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x42f3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar22 + 0x42f3c)" * (pointer_expression "*(undefined4 **)(puVar22 + 0x42f3c)" * (cast_expression "(undefined4 **)(puVar22 + 0x42f3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x42f3c)" ( (binary_expression "puVar22 + 0x42f3c" identifier + number_literal) ))))))) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }" { (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "(**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);" (call_expression "(**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0)" (parenthesized_expression "(**(code **)(puVar22 + 0x43254))" ( (pointer_expression "**(code **)(puVar22 + 0x43254)" * (pointer_expression "*(code **)(puVar22 + 0x43254)" * (cast_expression "(code **)(puVar22 + 0x43254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43254)" ( (binary_expression "puVar22 + 0x43254" identifier + number_literal) ))))) )) (argument_list "(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0)" ( (binary_expression "puVar2 + 2" identifier + number_literal) , (binary_expression "*(int *)(puVar22 + 0x4351c) + -0x23e0" (pointer_expression "*(int *)(puVar22 + 0x4351c)" * (cast_expression "(int *)(puVar22 + 0x4351c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x4351c)" ( (binary_expression "puVar22 + 0x4351c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s4 = (code *)auStack_14c;" (assignment_expression "unaff_s4 = (code *)auStack_14c" identifier = (cast_expression "(code *)auStack_14c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0006dccc(pcVar11,unaff_s4,0x80);" (call_expression "FUN_0006dccc(pcVar11,unaff_s4,0x80)" identifier (argument_list "(pcVar11,unaff_s4,0x80)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);" (assignment_expression "pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4)" identifier = (cast_expression "(code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + 0x43c40))(unaff_s4)" (parenthesized_expression "(**(code **)(puVar22 + 0x43c40))" ( (pointer_expression "**(code **)(puVar22 + 0x43c40)" * (pointer_expression "*(code **)(puVar22 + 0x43c40)" * (cast_expression "(code **)(puVar22 + 0x43c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43c40)" ( (binary_expression "puVar22 + 0x43c40" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier ))))) ;) (expression_statement "iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);" (assignment_expression "iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" identifier = (call_expression "(**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" (parenthesized_expression "(**(code **)(puVar22 + 0x42f80))" ( (pointer_expression "**(code **)(puVar22 + 0x42f80)" * (pointer_expression "*(code **)(puVar22 + 0x42f80)" * (cast_expression "(code **)(puVar22 + 0x42f80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x42f80)" ( (binary_expression "puVar22 + 0x42f80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" ( (pointer_expression "*(int *)(pcVar1 + 0xc78)" * (cast_expression "(int *)(pcVar1 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc78)" ( (binary_expression "pcVar1 + 0xc78" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (expression_statement "param_4 = pcVar11 + 4;" (assignment_expression "param_4 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;) (if_statement "if (iVar3 != 0) goto LAB_0006e2c4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006e2c4;" goto statement_identifier ;)) (expression_statement "FUN_0006dc28(puVar2);" (call_expression "FUN_0006dc28(puVar2)" identifier (argument_list "(puVar2)" ( identifier ))) ;) })) (expression_statement "pcVar17 = (code *)0x1b;" (assignment_expression "pcVar17 = (code *)0x1b" identifier = (cast_expression "(code *)0x1b" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" else (compound_statement "{\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" { (labeled_statement "LAB_0006e2c4:\n    param_4 = pcVar11 + 4;" statement_identifier : (expression_statement "param_4 = pcVar11 + 4;" (assignment_expression "param_4 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;)) (expression_statement "pcVar15 = pcVar11;" (assignment_expression "pcVar15 = pcVar11" identifier = identifier) ;) (expression_statement "(**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);" (call_expression "(**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3])" (parenthesized_expression "(**(code **)(puVar22 + 0x43390))" ( (pointer_expression "**(code **)(puVar22 + 0x43390)" * (pointer_expression "*(code **)(puVar22 + 0x43390)" * (cast_expression "(code **)(puVar22 + 0x43390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43390)" ( (binary_expression "puVar22 + 0x43390" identifier + number_literal) ))))) )) (argument_list "(puVar2 + 2,puVar2[3])" ( (binary_expression "puVar2 + 2" identifier + number_literal) , (subscript_expression "puVar2[3]" identifier [ number_literal ]) ))) ;) (expression_statement "*(undefined4 **)(pcVar11 + 0x59c) = puVar2;" (assignment_expression "*(undefined4 **)(pcVar11 + 0x59c) = puVar2" (pointer_expression "*(undefined4 **)(pcVar11 + 0x59c)" * (cast_expression "(undefined4 **)(pcVar11 + 0x59c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x59c)" ( (binary_expression "pcVar11 + 0x59c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[1] = puVar2[1] + 1;" (assignment_expression "puVar2[1] = puVar2[1] + 1" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "puVar2[1] + 1" (subscript_expression "puVar2[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar3 = *(int *)(iVar19 + 0x1c);" (assignment_expression "iVar3 = *(int *)(iVar19 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x1c)" * (cast_expression "(int *)(iVar19 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x1c)" ( (binary_expression "iVar19 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar19 + 0x1c) = iVar3 + 1;" (assignment_expression "*(int *)(iVar19 + 0x1c) = iVar3 + 1" (pointer_expression "*(int *)(iVar19 + 0x1c)" * (cast_expression "(int *)(iVar19 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x1c)" ( (binary_expression "iVar19 + 0x1c" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(pcVar11 + 0x48) = iVar3;" (assignment_expression "*(int *)(pcVar11 + 0x48) = iVar3" (pointer_expression "*(int *)(pcVar11 + 0x48)" * (cast_expression "(int *)(pcVar11 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x48)" ( (binary_expression "pcVar11 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;" (assignment_expression "*(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1" (pointer_expression "*(int *)(iVar19 + 0x18)" * (cast_expression "(int *)(iVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar19 + 0x18) + 1" (pointer_expression "*(int *)(iVar19 + 0x18)" * (cast_expression "(int *)(iVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar17 = (code *)0x0;" (assignment_expression "pcVar17 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pcVar12 = (code *)&DAT_00000005;" (assignment_expression "pcVar12 = (code *)&DAT_00000005" identifier = (cast_expression "(code *)&DAT_00000005" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (if_statement "if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }" if (parenthesized_expression "(*(int *)(pcVar1 + 0x8c) != 0)" ( (binary_expression "*(int *)(pcVar1 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar1 + 0x8c)" * (cast_expression "(int *)(pcVar1 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x8c)" ( (binary_expression "pcVar1 + 0x8c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0004e8cc(pcVar1);\n  }" { (expression_statement "FUN_0004e8cc(pcVar1);" (call_expression "FUN_0004e8cc(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })) (if_statement "if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }" if (parenthesized_expression "(local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78))" ( (binary_expression "local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)" identifier == (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x43d78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar22 + 0x43d78)" * (pointer_expression "*(undefined4 **)(puVar22 + 0x43d78)" * (cast_expression "(undefined4 **)(puVar22 + 0x43d78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43d78)" ( (binary_expression "puVar22 + 0x43d78" identifier + number_literal) ))))))) )) (compound_statement "{\n    return pcVar17;\n  }" { (return_statement "return pcVar17;" return identifier ;) })) (expression_statement "pcVar23 = *(code **)(puVar22 + 0x439ec);" (assignment_expression "pcVar23 = *(code **)(puVar22 + 0x439ec)" identifier = (pointer_expression "*(code **)(puVar22 + 0x439ec)" * (cast_expression "(code **)(puVar22 + 0x439ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x439ec)" ( (binary_expression "puVar22 + 0x439ec" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = local_cc;" (assignment_expression "pcVar9 = local_cc" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);" (assignment_expression "pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0)" identifier = (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" * (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" * (cast_expression "(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x43ba0)" ( (binary_expression "pcVar23 + 0x43ba0" identifier + number_literal) ))))))) ;) (expression_statement "pcVar18 = *(code **)(pcVar12 + 0x59c);" (assignment_expression "pcVar18 = *(code **)(pcVar12 + 0x59c)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x59c)" * (cast_expression "(code **)(pcVar12 + 0x59c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x59c)" ( (binary_expression "pcVar12 + 0x59c" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" identifier = identifier) ;) (expression_statement "pcVar13 = pcVar12;" (assignment_expression "pcVar13 = pcVar12" identifier = identifier) ;) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" identifier = identifier) ;) (expression_statement "pcStack_184 = pcVar17;" (assignment_expression "pcStack_184 = pcVar17" identifier = identifier) ;) (expression_statement "pcStack_180 = pcVar11;" (assignment_expression "pcStack_180 = pcVar11" identifier = identifier) ;) (expression_statement "iStack_17c = iVar19;" (assignment_expression "iStack_17c = iVar19" identifier = identifier) ;) (expression_statement "pcStack_178 = pcVar1;" (assignment_expression "pcStack_178 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_174 = unaff_s4;" (assignment_expression "pcStack_174 = unaff_s4" identifier = identifier) ;) (if_statement "if (pcVar18 == (code *)0x0) goto LAB_0006e510;" if (parenthesized_expression "(pcVar18 == (code *)0x0)" ( (binary_expression "pcVar18 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e510;" goto statement_identifier ;)) (expression_statement "pcVar1 = *(code **)(pcVar9 + 0xc78);" (assignment_expression "pcVar1 = *(code **)(pcVar9 + 0xc78)" identifier = (pointer_expression "*(code **)(pcVar9 + 0xc78)" * (cast_expression "(code **)(pcVar9 + 0xc78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0xc78)" ( (binary_expression "pcVar9 + 0xc78" identifier + number_literal) ))))) ;) (if_statement "if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }" if (parenthesized_expression "((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0))" ( (binary_expression "(pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)" (parenthesized_expression "(pcVar15 != (code *)0x0)" ( (binary_expression "pcVar15 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)" ( (comma_expression "pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0" (assignment_expression "pcVar16 = (code *)0x2" identifier = (cast_expression "(code *)0x2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "*(int *)(pcVar9 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar9 + 0x8c)" * (cast_expression "(int *)(pcVar9 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x8c)" ( (binary_expression "pcVar9 + 0x8c" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n    FUN_0004e860();\n  }" { (expression_statement "FUN_0004e860();" (call_expression "FUN_0004e860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar10 = pcVar18;" (assignment_expression "pcVar10 = pcVar18" identifier = identifier) ;) (expression_statement "FUN_0006dd58();" (call_expression "FUN_0006dd58()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" if (parenthesized_expression "((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0))" ( (binary_expression "(*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)" (parenthesized_expression "(*(int *)(pcVar18 + 4) == 0)" ( (binary_expression "*(int *)(pcVar18 + 4) == 0" (pointer_expression "*(int *)(pcVar18 + 4)" * (cast_expression "(int *)(pcVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 4)" ( (binary_expression "pcVar18 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)" ( (comma_expression "unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0" (assignment_expression "unaff_s5 = (code *)auStack_198" identifier = (cast_expression "(code *)auStack_198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "pcVar1 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }" { (expression_statement "pcVar13 = unaff_s5;" (assignment_expression "pcVar13 = unaff_s5" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar23 + 0x433b4))(pcVar1);" (call_expression "(**(code **)(pcVar23 + 0x433b4))(pcVar1)" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b4))" ( (pointer_expression "**(code **)(pcVar23 + 0x433b4)" * (pointer_expression "*(code **)(pcVar23 + 0x433b4)" * (cast_expression "(code **)(pcVar23 + 0x433b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x433b4)" ( (binary_expression "pcVar23 + 0x433b4" identifier + number_literal) ))))) )) (argument_list "(pcVar1)" ( identifier ))) ;) (expression_statement "pcVar10 = unaff_s5;" (assignment_expression "pcVar10 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar19 = (**(code **)(pcVar23 + 0x433b8))();" (assignment_expression "iVar19 = (**(code **)(pcVar23 + 0x433b8))()" identifier = (call_expression "(**(code **)(pcVar23 + 0x433b8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b8))" ( (pointer_expression "**(code **)(pcVar23 + 0x433b8)" * (pointer_expression "*(code **)(pcVar23 + 0x433b8)" * (cast_expression "(code **)(pcVar23 + 0x433b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x433b8)" ( (binary_expression "pcVar23 + 0x433b8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }" { (expression_statement "pcVar11 = *(code **)(iVar19 + 0xc);" (assignment_expression "pcVar11 = *(code **)(iVar19 + 0xc)" identifier = (pointer_expression "*(code **)(iVar19 + 0xc)" * (cast_expression "(code **)(iVar19 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }" while (parenthesized_expression "(pcVar18 != pcVar11)" ( (binary_expression "pcVar18 != pcVar11" identifier != identifier) )) (compound_statement "{\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }" { (expression_statement "pcVar10 = unaff_s5;" (assignment_expression "pcVar10 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar19 = (**(code **)(pcVar23 + 0x433b8))();" (assignment_expression "iVar19 = (**(code **)(pcVar23 + 0x433b8))()" identifier = (call_expression "(**(code **)(pcVar23 + 0x433b8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b8))" ( (pointer_expression "**(code **)(pcVar23 + 0x433b8)" * (pointer_expression "*(code **)(pcVar23 + 0x433b8)" * (cast_expression "(code **)(pcVar23 + 0x433b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x433b8)" ( (binary_expression "pcVar23 + 0x433b8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar19 == 0) goto LAB_0006e5d4;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006e5d4;" goto statement_identifier ;)) (expression_statement "pcVar11 = *(code **)(iVar19 + 0xc);" (assignment_expression "pcVar11 = *(code **)(iVar19 + 0xc)" identifier = (pointer_expression "*(code **)(iVar19 + 0xc)" * (cast_expression "(code **)(iVar19 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar16 = *(code **)(iVar19 + 0x10);" (assignment_expression "pcVar16 = *(code **)(iVar19 + 0x10)" identifier = (pointer_expression "*(code **)(iVar19 + 0x10)" * (cast_expression "(code **)(iVar19 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0x10)" ( (binary_expression "iVar19 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (code *)(iVar19 + 0x14);" (assignment_expression "pcVar13 = (code *)(iVar19 + 0x14)" identifier = (cast_expression "(code *)(iVar19 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x14)" ( (binary_expression "iVar19 + 0x14" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = pcVar1;" (assignment_expression "pcVar10 = pcVar1" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar23 + 0x42d7c))();" (call_expression "(**(code **)(pcVar23 + 0x42d7c))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x42d7c))" ( (pointer_expression "**(code **)(pcVar23 + 0x42d7c)" * (pointer_expression "*(code **)(pcVar23 + 0x42d7c)" * (cast_expression "(code **)(pcVar23 + 0x42d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x42d7c)" ( (binary_expression "pcVar23 + 0x42d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0006e4d4;" goto statement_identifier ;) })) (labeled_statement "LAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;" statement_identifier : (expression_statement "*(int *)(pcVar12 + 0x59c) = 0;" (assignment_expression "*(int *)(pcVar12 + 0x59c) = 0" (pointer_expression "*(int *)(pcVar12 + 0x59c)" * (cast_expression "(int *)(pcVar12 + 0x59c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x59c)" ( (binary_expression "pcVar12 + 0x59c" identifier + number_literal) )))) = number_literal) ;)) (labeled_statement "LAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;" statement_identifier : (expression_statement "*(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;" (assignment_expression "*(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1" (pointer_expression "*(int *)(pcVar1 + 0x18)" * (cast_expression "(int *)(pcVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18)" ( (binary_expression "pcVar1 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar1 + 0x18) + -1" (pointer_expression "*(int *)(pcVar1 + 0x18)" * (cast_expression "(int *)(pcVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18)" ( (binary_expression "pcVar1 + 0x18" identifier + number_literal) )))) + number_literal)) ;)) }) (else_clause "else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" else (compound_statement "{\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" { (labeled_statement "LAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;" statement_identifier : (expression_statement "*(int *)(pcVar12 + 0x59c) = 0;" (assignment_expression "*(int *)(pcVar12 + 0x59c) = 0" (pointer_expression "*(int *)(pcVar12 + 0x59c)" * (cast_expression "(int *)(pcVar12 + 0x59c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x59c)" ( (binary_expression "pcVar12 + 0x59c" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;" if (parenthesized_expression "(pcVar1 != (code *)0x0)" ( (binary_expression "pcVar1 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e4dc;" goto statement_identifier ;)) }))) (expression_statement "*(int *)pcVar12 = 0;" (assignment_expression "*(int *)pcVar12 = 0" (pointer_expression "*(int *)pcVar12" * (cast_expression "(int *)pcVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar11 = pcVar12;" (assignment_expression "pcVar11 = pcVar12" identifier = identifier) ;) (expression_statement "unaff_s4 = pcVar15;" (assignment_expression "unaff_s4 = pcVar15" identifier = identifier) ;) (if_statement "if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }" if (parenthesized_expression "((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0))" ( (binary_expression "(pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)" (parenthesized_expression "(pcVar15 != (code *)0x0)" ( (binary_expression "pcVar15 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)" ( (comma_expression "pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0" (assignment_expression "pcVar13 = (code *)&DAT_00000005" identifier = (cast_expression "(code *)&DAT_00000005" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) , (binary_expression "*(int *)(pcVar9 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar9 + 0x8c)" * (cast_expression "(int *)(pcVar9 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x8c)" ( (binary_expression "pcVar9 + 0x8c" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }" { (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" identifier = identifier) ;) (expression_statement "FUN_0004e8cc();" (call_expression "FUN_0004e8cc()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" statement_identifier : (if_statement "if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" if (parenthesized_expression "(pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0))" ( (binary_expression "pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)" identifier == (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" * (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" * (cast_expression "(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x43ba0)" ( (binary_expression "pcVar23 + 0x43ba0" identifier + number_literal) ))))))) )) (compound_statement "{\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" { (return_statement "return (code *)**(int **)(pcVar23 + 0x43ba0);" return (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" * (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" * (cast_expression "(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x43ba0)" ( (binary_expression "pcVar23 + 0x43ba0" identifier + number_literal) )))))) ;) }))) (expression_statement "pcVar15 = *(code **)(pcVar23 + 0x43814);" (assignment_expression "pcVar15 = *(code **)(pcVar23 + 0x43814)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x43814)" * (cast_expression "(code **)(pcVar23 + 0x43814)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x43814)" ( (binary_expression "pcVar23 + 0x43814" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_1bc = unaff_s5;" (assignment_expression "pcStack_1bc = unaff_s5" identifier = identifier) ;) (expression_statement "pcStack_1c0 = unaff_s4;" (assignment_expression "pcStack_1c0 = unaff_s4" identifier = identifier) ;) (expression_statement "pcStack_1c4 = pcVar1;" (assignment_expression "pcStack_1c4 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_1c8 = pcVar9;" (assignment_expression "pcStack_1c8 = pcVar9" identifier = identifier) ;) (expression_statement "pcStack_1cc = pcVar11;" (assignment_expression "pcStack_1cc = pcVar11" identifier = identifier) ;) (expression_statement "pcStack_1d0 = pcVar18;" (assignment_expression "pcStack_1d0 = pcVar18" identifier = identifier) ;) (expression_statement "pcStack_1e8 = pcVar15 + 0x4ab28;" (assignment_expression "pcStack_1e8 = pcVar15 + 0x4ab28" identifier = (binary_expression "pcVar15 + 0x4ab28" identifier + number_literal)) ;) (expression_statement "iStack_1d4 = **(int **)(pcVar15 + 0x439ec);" (assignment_expression "iStack_1d4 = **(int **)(pcVar15 + 0x439ec)" identifier = (pointer_expression "**(int **)(pcVar15 + 0x439ec)" * (pointer_expression "*(int **)(pcVar15 + 0x439ec)" * (cast_expression "(int **)(pcVar15 + 0x439ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x439ec)" ( (binary_expression "pcVar15 + 0x439ec" identifier + number_literal) )))))) ;) (if_statement "if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" if (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar15 = (code *)0x0;\n  }" { (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" { (if_statement "if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }" if (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) != 0)" ( (binary_expression "*(int *)(pcVar10 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" * (cast_expression "(int *)(pcVar10 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x8c)" ( (binary_expression "pcVar10 + 0x8c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0004e860();\n    }" { (expression_statement "FUN_0004e860();" (call_expression "FUN_0004e860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar1 = (code *)auStack_1e0;" (assignment_expression "pcVar1 = (code *)auStack_1e0" identifier = (cast_expression "(code *)auStack_1e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);" (call_expression "(**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7928))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7928)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7928)" * (cast_expression "(code **)(pcStack_1e8 + -0x7928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7928)" ( (binary_expression "pcStack_1e8 + -0x7928" identifier + number_literal) ))))) )) (argument_list "(pcVar13,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);" (assignment_expression "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" identifier = (cast_expression "(code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7924)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7924)" * (cast_expression "(code **)(pcStack_1e8 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7924)" ( (binary_expression "pcStack_1e8 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(pcVar1)" ( identifier ))))) ;) (expression_statement "pcVar18 = pcVar13;" (assignment_expression "pcVar18 = pcVar13" identifier = identifier) ;) (expression_statement "pcVar9 = param_4;" (assignment_expression "pcVar9 = param_4" identifier = identifier) ;) (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) (if_statement "if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }" if (parenthesized_expression "(unaff_s4 != (code *)0x0)" ( (binary_expression "unaff_s4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }" { (expression_statement "unaff_s6 = auStack_1e0;" (assignment_expression "unaff_s6 = auStack_1e0" identifier = identifier) ;) (expression_statement "pcVar1 = (code *)0x1;" (assignment_expression "pcVar1 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);" do (compound_statement "{\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      }" { (expression_statement "iVar19 = *(int *)(unaff_s4 + 0xc);" (assignment_expression "iVar19 = *(int *)(unaff_s4 + 0xc)" identifier = (pointer_expression "*(int *)(unaff_s4 + 0xc)" * (cast_expression "(int *)(unaff_s4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 0xc)" ( (binary_expression "unaff_s4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);" (assignment_expression "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" identifier = (cast_expression "(code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7924)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7924)" * (cast_expression "(code **)(pcStack_1e8 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7924)" ( (binary_expression "pcStack_1e8 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( identifier ))))) ;) (expression_statement "pcVar18 = *(code **)(iVar19 + 8);" (assignment_expression "pcVar18 = *(code **)(iVar19 + 8)" identifier = (pointer_expression "*(code **)(iVar19 + 8)" * (cast_expression "(code **)(iVar19 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) ))))) ;) (while_statement "while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }" while (parenthesized_expression "(pcVar18 != (code *)0x0)" ( (binary_expression "pcVar18 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }" { (expression_statement "iVar19 = *(int *)pcVar18;" (assignment_expression "iVar19 = *(int *)pcVar18" identifier = (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar18 = *(code **)(pcVar18 + 8);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 8)" identifier = (pointer_expression "*(code **)(pcVar18 + 8)" * (cast_expression "(code **)(pcVar18 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 8)" ( (binary_expression "pcVar18 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = (*param_4)(iVar19,pcVar16);" (assignment_expression "iVar19 = (*param_4)(iVar19,pcVar16)" identifier = (call_expression "(*param_4)(iVar19,pcVar16)" (parenthesized_expression "(*param_4)" ( (pointer_expression "*param_4" * identifier) )) (argument_list "(iVar19,pcVar16)" ( identifier , identifier )))) ;) (if_statement "if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }" if (parenthesized_expression "(iVar19 == 1)" ( (binary_expression "iVar19 == 1" identifier == number_literal) )) (compound_statement "{\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }" { (if_statement "if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" if (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) == 0)" ( (binary_expression "*(int *)(pcVar10 + 0x8c) == 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" * (cast_expression "(int *)(pcVar10 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x8c)" ( (binary_expression "pcVar10 + 0x8c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              pcVar15 = (code *)0x1;\n            }" { (expression_statement "pcVar15 = (code *)0x1;" (assignment_expression "pcVar15 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" else (compound_statement "{\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" { (expression_statement "FUN_0004e8cc(pcVar10,5);" (call_expression "FUN_0004e8cc(pcVar10,5)" identifier (argument_list "(pcVar10,5)" ( identifier , number_literal ))) ;) (expression_statement "pcVar15 = (code *)0x1;" (assignment_expression "pcVar15 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0006e740;" goto statement_identifier ;) })) })) (expression_statement "pcVar18 = (code *)0x0;" (assignment_expression "pcVar18 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) while (parenthesized_expression "(unaff_s4 != (code *)0x0)" ( (binary_expression "unaff_s4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" if (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) == 0)" ( (binary_expression "*(int *)(pcVar10 + 0x8c) == 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" * (cast_expression "(int *)(pcVar10 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x8c)" ( (binary_expression "pcVar10 + 0x8c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar15 = (code *)0x0;\n    }" { (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" else (compound_statement "{\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" { (expression_statement "FUN_0004e8cc(pcVar10,5);" (call_expression "FUN_0004e8cc(pcVar10,5)" identifier (argument_list "(pcVar10,5)" ( identifier , number_literal ))) ;) (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }" statement_identifier : (if_statement "if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }" if (parenthesized_expression "(iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c))" ( (binary_expression "iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)" identifier == (pointer_expression "**(int **)(pcStack_1e8 + -0x713c)" * (pointer_expression "*(int **)(pcStack_1e8 + -0x713c)" * (cast_expression "(int **)(pcStack_1e8 + -0x713c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x713c)" ( (binary_expression "pcStack_1e8 + -0x713c" identifier + number_literal) )))))) )) (compound_statement "{\n    return pcVar15;\n  }" { (return_statement "return pcVar15;" return identifier ;) }))) (expression_statement "pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);" (assignment_expression "pcVar15 = *(code **)(pcStack_1e8 + -0x74c8)" identifier = (pointer_expression "*(code **)(pcStack_1e8 + -0x74c8)" * (cast_expression "(code **)(pcStack_1e8 + -0x74c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x74c8)" ( (binary_expression "pcStack_1e8 + -0x74c8" identifier + number_literal) ))))) ;) (expression_statement "pcVar17 = FUN_0006e79c;" (assignment_expression "pcVar17 = FUN_0006e79c" identifier = identifier) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_218 = pcVar15 + 0x4a974;" (assignment_expression "pcStack_218 = pcVar15 + 0x4a974" identifier = (binary_expression "pcVar15 + 0x4a974" identifier + number_literal)) ;) (expression_statement "iStack_204 = **(int **)(pcVar15 + 0x43838);" (assignment_expression "iStack_204 = **(int **)(pcVar15 + 0x43838)" identifier = (pointer_expression "**(int **)(pcVar15 + 0x43838)" * (pointer_expression "*(int **)(pcVar15 + 0x43838)" * (cast_expression "(int **)(pcVar15 + 0x43838)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43838)" ( (binary_expression "pcVar15 + 0x43838" identifier + number_literal) )))))) ;) (expression_statement "puVar14 = auStack_210;" (assignment_expression "puVar14 = auStack_210" identifier = identifier) ;) (expression_statement "pcStack_200 = pcVar18;" (assignment_expression "pcStack_200 = pcVar18" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar17;" (assignment_expression "pcStack_1fc = pcVar17" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar15 + 0x4304c))();" (call_expression "(**(code **)(pcVar15 + 0x4304c))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x4304c))" ( (pointer_expression "**(code **)(pcVar15 + 0x4304c)" * (pointer_expression "*(code **)(pcVar15 + 0x4304c)" * (cast_expression "(code **)(pcVar15 + 0x4304c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x4304c)" ( (binary_expression "pcVar15 + 0x4304c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);" (assignment_expression "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" identifier = (cast_expression "(code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (parenthesized_expression "(**(code **)(pcStack_218 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_218 + -0x7924)" * (pointer_expression "*(code **)(pcStack_218 + -0x7924)" * (cast_expression "(code **)(pcStack_218 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x7924)" ( (binary_expression "pcStack_218 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(auStack_210)" ( identifier ))))) ;) (if_statement "if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }" if (parenthesized_expression "(pcVar15 != (code *)0x0)" ( (binary_expression "pcVar15 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }" { (expression_statement "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);" (assignment_expression "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8)" identifier = (pointer_expression "*(int **)(*(int *)(pcVar15 + 0xc) + 8)" * (cast_expression "(int **)(*(int *)(pcVar15 + 0xc) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar15 + 0xc) + 8)" ( (binary_expression "*(int *)(pcVar15 + 0xc) + 8" (pointer_expression "*(int *)(pcVar15 + 0xc)" * (cast_expression "(int *)(pcVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }" while (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }" { (expression_statement "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);" (assignment_expression "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" identifier = (cast_expression "(code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (parenthesized_expression "(**(code **)(pcStack_218 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_218 + -0x7924)" * (pointer_expression "*(code **)(pcStack_218 + -0x7924)" * (cast_expression "(code **)(pcStack_218 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x7924)" ( (binary_expression "pcStack_218 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(auStack_210)" ( identifier ))))) ;) (if_statement "if (pcVar15 == (code *)0x0) goto LAB_0006e834;" if (parenthesized_expression "(pcVar15 == (code *)0x0)" ( (binary_expression "pcVar15 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e834;" goto statement_identifier ;)) (expression_statement "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);" (assignment_expression "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8)" identifier = (pointer_expression "*(int **)(*(int *)(pcVar15 + 0xc) + 8)" * (cast_expression "(int **)(*(int *)(pcVar15 + 0xc) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar15 + 0xc) + 8)" ( (binary_expression "*(int *)(pcVar15 + 0xc) + 8" (pointer_expression "*(int *)(pcVar15 + 0xc)" * (cast_expression "(int *)(pcVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "pcVar15 = (code *)*piVar4;" (assignment_expression "pcVar15 = (code *)*piVar4" identifier = (cast_expression "(code *)*piVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) })) (labeled_statement "LAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }" statement_identifier : (if_statement "if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }" if (parenthesized_expression "(iStack_204 == **(int **)(pcStack_218 + -0x713c))" ( (binary_expression "iStack_204 == **(int **)(pcStack_218 + -0x713c)" identifier == (pointer_expression "**(int **)(pcStack_218 + -0x713c)" * (pointer_expression "*(int **)(pcStack_218 + -0x713c)" * (cast_expression "(int **)(pcStack_218 + -0x713c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x713c)" ( (binary_expression "pcStack_218 + -0x713c" identifier + number_literal) )))))) )) (compound_statement "{\n    return pcVar15;\n  }" { (return_statement "return pcVar15;" return identifier ;) }))) (expression_statement "pcVar15 = *(code **)(pcStack_218 + -0x74c8);" (assignment_expression "pcVar15 = *(code **)(pcStack_218 + -0x74c8)" identifier = (pointer_expression "*(code **)(pcStack_218 + -0x74c8)" * (cast_expression "(code **)(pcStack_218 + -0x74c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x74c8)" ( (binary_expression "pcStack_218 + -0x74c8" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = 0x6e860;" (assignment_expression "uVar25 = 0x6e860" identifier = number_literal) ;) (expression_statement "iVar19 = iStack_204;" (assignment_expression "iVar19 = iStack_204" identifier = identifier) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_24c = **(int **)(pcVar15 + 0x43774);" (assignment_expression "iStack_24c = **(int **)(pcVar15 + 0x43774)" identifier = (pointer_expression "**(int **)(pcVar15 + 0x43774)" * (pointer_expression "*(int **)(pcVar15 + 0x43774)" * (cast_expression "(int **)(pcVar15 + 0x43774)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43774)" ( (binary_expression "pcVar15 + 0x43774" identifier + number_literal) )))))) ;) (expression_statement "puStack_244 = auStack_210;" (assignment_expression "puStack_244 = auStack_210" identifier = identifier) ;) (expression_statement "pcStack_240 = pcVar11;" (assignment_expression "pcStack_240 = pcVar11" identifier = identifier) ;) (expression_statement "pcStack_23c = pcVar9;" (assignment_expression "pcStack_23c = pcVar9" identifier = identifier) ;) (expression_statement "pcStack_238 = pcVar1;" (assignment_expression "pcStack_238 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_234 = unaff_s4;" (assignment_expression "pcStack_234 = unaff_s4" identifier = identifier) ;) (expression_statement "pcStack_230 = pcVar10;" (assignment_expression "pcStack_230 = pcVar10" identifier = identifier) ;) (expression_statement "uStack_22c = uVar25;" (assignment_expression "uStack_22c = uVar25" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar15 + 0x42914))(&uStack_254);" (call_expression "(**(code **)(pcVar15 + 0x42914))(&uStack_254)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42914))" ( (pointer_expression "**(code **)(pcVar15 + 0x42914)" * (pointer_expression "*(code **)(pcVar15 + 0x42914)" * (cast_expression "(code **)(pcVar15 + 0x42914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42914)" ( (binary_expression "pcVar15 + 0x42914" identifier + number_literal) ))))) )) (argument_list "(&uStack_254)" ( (pointer_expression "&uStack_254" & identifier) ))) ;) (expression_statement "puVar2 = *(undefined4 **)(puVar14 + 8);" (assignment_expression "puVar2 = *(undefined4 **)(puVar14 + 8)" identifier = (pointer_expression "*(undefined4 **)(puVar14 + 8)" * (cast_expression "(undefined4 **)(puVar14 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 8)" ( (binary_expression "puVar14 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar1 = (code *)0x0;\n  }" { (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" else (compound_statement "{\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" { (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);" do (compound_statement "{\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    }" { (expression_statement "pcVar11 = (code *)*puVar2;" (assignment_expression "pcVar11 = (code *)*puVar2" identifier = (cast_expression "(code *)*puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }" if (parenthesized_expression "((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5))" ( (binary_expression "(*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)" (parenthesized_expression "(*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0)" ( (binary_expression "*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0" (binary_expression "*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330)" (pointer_expression "*(int *)(pcVar11 + 800)" * (cast_expression "(int *)(pcVar11 + 800)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 800)" ( (binary_expression "pcVar11 + 800" identifier + number_literal) )))) + (pointer_expression "*(int *)(pcVar11 + 0x330)" * (cast_expression "(int *)(pcVar11 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x330)" ( (binary_expression "pcVar11 + 0x330" identifier + number_literal) ))))) == number_literal) )) && (parenthesized_expression "(iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)" ( (comma_expression "iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5" (assignment_expression "iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" identifier = (call_expression "(**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" (parenthesized_expression "(**(code **)(pcVar15 + 0x429c0))" ( (pointer_expression "**(code **)(pcVar15 + 0x429c0)" * (pointer_expression "*(code **)(pcVar15 + 0x429c0)" * (cast_expression "(code **)(pcVar15 + 0x429c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x429c0)" ( (binary_expression "pcVar15 + 0x429c0" identifier + number_literal) ))))) )) (argument_list "(uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" ( identifier , identifier , (pointer_expression "*(int *)(pcVar11 + 0x188)" * (cast_expression "(int *)(pcVar11 + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x188)" ( (binary_expression "pcVar11 + 0x188" identifier + number_literal) )))) , (pointer_expression "*(int *)(pcVar11 + 0x18c)" * (cast_expression "(int *)(pcVar11 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x18c)" ( (binary_expression "pcVar11 + 0x18c" identifier + number_literal) )))) )))) , (binary_expression "iVar3 < iVar5" identifier < identifier)) ))) )) (compound_statement "{\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }" { (expression_statement "pcVar1 = pcVar11;" (assignment_expression "pcVar1 = pcVar11" identifier = identifier) ;) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) })) (expression_statement "puVar2 = (undefined4 *)puVar2[2];" (assignment_expression "puVar2 = (undefined4 *)puVar2[2]" identifier = (cast_expression "(undefined4 *)puVar2[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }" if (parenthesized_expression "(pcVar1 != (code *)0x0)" ( (binary_expression "pcVar1 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }" { (expression_statement "FUN_0006dd58(puVar14,pcVar1);" (call_expression "FUN_0006dd58(puVar14,pcVar1)" identifier (argument_list "(puVar14,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;" (assignment_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1" (pointer_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" * (cast_expression "(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xc78) + 0x18)" ( (binary_expression "*(int *)(iVar19 + 0xc78) + 0x18" (pointer_expression "*(int *)(iVar19 + 0xc78)" * (cast_expression "(int *)(iVar19 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc78)" ( (binary_expression "iVar19 + 0xc78" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1" (pointer_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" * (cast_expression "(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xc78) + 0x18)" ( (binary_expression "*(int *)(iVar19 + 0xc78) + 0x18" (pointer_expression "*(int *)(iVar19 + 0xc78)" * (cast_expression "(int *)(iVar19 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc78)" ( (binary_expression "iVar19 + 0xc78" identifier + number_literal) )))) + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)pcVar1 = iVar19;" (assignment_expression "*(int *)pcVar1 = iVar19" (pointer_expression "*(int *)pcVar1" * (cast_expression "(int *)pcVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) }))) (if_statement "if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }" if (parenthesized_expression "(iStack_24c != **(int **)(pcVar15 + 0x43774))" ( (binary_expression "iStack_24c != **(int **)(pcVar15 + 0x43774)" identifier != (pointer_expression "**(int **)(pcVar15 + 0x43774)" * (pointer_expression "*(int **)(pcVar15 + 0x43774)" * (cast_expression "(int **)(pcVar15 + 0x43774)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43774)" ( (binary_expression "pcVar15 + 0x43774" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }" { (expression_statement "pcVar15 = *(code **)(pcVar15 + 0x433e8);" (assignment_expression "pcVar15 = *(code **)(pcVar15 + 0x433e8)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x433e8)" * (cast_expression "(code **)(pcVar15 + 0x433e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x433e8)" ( (binary_expression "pcVar15 + 0x433e8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_24c;" (assignment_expression "iVar5 = iStack_24c" identifier = identifier) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);" (assignment_expression "piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634)" identifier = (cast_expression "(int *)**(undefined4 **)(pcVar15 + 0x43634)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar15 + 0x43634)" * (pointer_expression "*(undefined4 **)(pcVar15 + 0x43634)" * (cast_expression "(undefined4 **)(pcVar15 + 0x43634)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43634)" ( (binary_expression "pcVar15 + 0x43634" identifier + number_literal) ))))))) ;) (expression_statement "iVar24 = *(int *)(iVar5 + 0xc78);" (assignment_expression "iVar24 = *(int *)(iVar5 + 0xc78)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc78)" * (cast_expression "(int *)(iVar5 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc78)" ( (binary_expression "iVar5 + 0xc78" identifier + number_literal) ))))) ;) (expression_statement "uStack_298 = 0;" (assignment_expression "uStack_298 = 0" identifier = number_literal) ;) (expression_statement "pcStack_294 = pcVar11;" (assignment_expression "pcStack_294 = pcVar11" identifier = identifier) ;) (expression_statement "pcStack_290 = pcVar1;" (assignment_expression "pcStack_290 = pcVar1" identifier = identifier) ;) (expression_statement "iStack_28c = iVar3;" (assignment_expression "iStack_28c = iVar3" identifier = identifier) ;) (expression_statement "puStack_288 = puVar14;" (assignment_expression "puStack_288 = puVar14" identifier = identifier) ;) (expression_statement "iStack_284 = iVar19;" (assignment_expression "iStack_284 = iVar19" identifier = identifier) ;) (expression_statement "puStack_280 = unaff_s6;" (assignment_expression "puStack_280 = unaff_s6" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);" (call_expression "(**(code **)(pcVar15 + 0x427d4))(&uStack_2b0)" (parenthesized_expression "(**(code **)(pcVar15 + 0x427d4))" ( (pointer_expression "**(code **)(pcVar15 + 0x427d4)" * (pointer_expression "*(code **)(pcVar15 + 0x427d4)" * (cast_expression "(code **)(pcVar15 + 0x427d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x427d4)" ( (binary_expression "pcVar15 + 0x427d4" identifier + number_literal) ))))) )) (argument_list "(&uStack_2b0)" ( (pointer_expression "&uStack_2b0" & identifier) ))) ;) (if_statement "if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }" if (parenthesized_expression "(*(int *)(iVar5 + 0x8c) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x8c) != 0" (pointer_expression "*(int *)(iVar5 + 0x8c)" * (cast_expression "(int *)(iVar5 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x8c)" ( (binary_expression "iVar5 + 0x8c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }" { (expression_statement "(**(code **)(pcVar15 + 0x42824))(iVar5,5,2);" (call_expression "(**(code **)(pcVar15 + 0x42824))(iVar5,5,2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42824))" ( (pointer_expression "**(code **)(pcVar15 + 0x42824)" * (pointer_expression "*(code **)(pcVar15 + 0x42824)" * (cast_expression "(code **)(pcVar15 + 0x42824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42824)" ( (binary_expression "pcVar15 + 0x42824" identifier + number_literal) ))))) )) (argument_list "(iVar5,5,2)" ( identifier , number_literal , number_literal ))) ;) })) (expression_statement "(**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);" (call_expression "(**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42e48))" ( (pointer_expression "**(code **)(pcVar15 + 0x42e48)" * (pointer_expression "*(code **)(pcVar15 + 0x42e48)" * (cast_expression "(code **)(pcVar15 + 0x42e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42e48)" ( (binary_expression "pcVar15 + 0x42e48" identifier + number_literal) ))))) )) (argument_list "(iVar24,auStack_2a8)" ( identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);" (assignment_expression "iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8)" identifier = (call_expression "(**(code **)(pcVar15 + 0x42e4c))(auStack_2a8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42e4c))" ( (pointer_expression "**(code **)(pcVar15 + 0x42e4c)" * (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" * (cast_expression "(code **)(pcVar15 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42e4c)" ( (binary_expression "pcVar15 + 0x42e4c" identifier + number_literal) ))))) )) (argument_list "(auStack_2a8)" ( identifier )))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = (code *)0x0;\n    }" { (expression_statement "pcVar11 = (code *)0x0;" (assignment_expression "pcVar11 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" else (compound_statement "{\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" { (expression_statement "pcVar11 = (code *)0x0;" (assignment_expression "pcVar11 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar21 = -1;" (assignment_expression "iVar21 = -1" identifier = number_literal) ;) (do_statement "do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);" do (compound_statement "{\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      }" { (expression_statement "iVar3 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = *(undefined4 **)(iVar3 + 8);" (assignment_expression "puVar2 = *(undefined4 **)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 **)(iVar3 + 8)" * (cast_expression "(undefined4 **)(iVar3 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" { (expression_statement "pcVar1 = *(code **)(pcVar15 + 0x42e4c);" (assignment_expression "pcVar1 = *(code **)(pcVar15 + 0x42e4c)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" * (cast_expression "(code **)(pcVar15 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42e4c)" ( (binary_expression "pcVar15 + 0x42e4c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" else (compound_statement "{\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" { (do_statement "do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);" do (compound_statement "{\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          }" { (expression_statement "pcVar1 = (code *)*puVar2;" (assignment_expression "pcVar1 = (code *)*puVar2" identifier = (cast_expression "(code *)*puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }" if (parenthesized_expression "((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6))" ( (binary_expression "(*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)" (parenthesized_expression "(*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0)" ( (binary_expression "*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0" (binary_expression "*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330)" (pointer_expression "*(int *)(pcVar1 + 800)" * (cast_expression "(int *)(pcVar1 + 800)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 800)" ( (binary_expression "pcVar1 + 800" identifier + number_literal) )))) + (pointer_expression "*(int *)(pcVar1 + 0x330)" * (cast_expression "(int *)(pcVar1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x330)" ( (binary_expression "pcVar1 + 0x330" identifier + number_literal) ))))) == number_literal) )) && (parenthesized_expression "(iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)" ( (comma_expression "iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6" (assignment_expression "iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" identifier = (call_expression "(**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" (parenthesized_expression "(**(code **)(pcVar15 + 0x42880))" ( (pointer_expression "**(code **)(pcVar15 + 0x42880)" * (pointer_expression "*(code **)(pcVar15 + 0x42880)" * (cast_expression "(code **)(pcVar15 + 0x42880)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42880)" ( (binary_expression "pcVar15 + 0x42880" identifier + number_literal) ))))) )) (argument_list "(uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" ( identifier , identifier , (pointer_expression "*(int *)(pcVar1 + 0x188)" * (cast_expression "(int *)(pcVar1 + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x188)" ( (binary_expression "pcVar1 + 0x188" identifier + number_literal) )))) , (pointer_expression "*(int *)(pcVar1 + 0x18c)" * (cast_expression "(int *)(pcVar1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18c)" ( (binary_expression "pcVar1 + 0x18c" identifier + number_literal) )))) )))) , (binary_expression "iVar21 < iVar6" identifier < identifier)) ))) )) (compound_statement "{\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }" { (expression_statement "iVar21 = iVar6;" (assignment_expression "iVar21 = iVar6" identifier = identifier) ;) (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" identifier = identifier) ;) (expression_statement "iVar19 = iVar3;" (assignment_expression "iVar19 = iVar3" identifier = identifier) ;) })) (expression_statement "puVar2 = (undefined4 *)puVar2[2];" (assignment_expression "puVar2 = (undefined4 *)puVar2[2]" identifier = (cast_expression "(undefined4 *)puVar2[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar1 = *(code **)(pcVar15 + 0x42e4c);" (assignment_expression "pcVar1 = *(code **)(pcVar15 + 0x42e4c)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" * (cast_expression "(code **)(pcVar15 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42e4c)" ( (binary_expression "pcVar15 + 0x42e4c" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar3 = (*pcVar1)(auStack_2a8);" (assignment_expression "iVar3 = (*pcVar1)(auStack_2a8)" identifier = (call_expression "(*pcVar1)(auStack_2a8)" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "(auStack_2a8)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (if_statement "if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }" if (parenthesized_expression "(pcVar11 != (code *)0x0)" ( (binary_expression "pcVar11 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }" { (expression_statement "FUN_0006dd58(iVar19,pcVar11);" (call_expression "FUN_0006dd58(iVar19,pcVar11)" identifier (argument_list "(iVar19,pcVar11)" ( identifier , identifier ))) ;) (expression_statement "*(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;" (assignment_expression "*(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x18) + -1" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)pcVar11 = iVar5;" (assignment_expression "*(int *)pcVar11 = iVar5" (pointer_expression "*(int *)pcVar11" * (cast_expression "(int *)pcVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) }))) (if_statement "if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }" if (parenthesized_expression "(*(int *)(iVar5 + 0x8c) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x8c) != 0" (pointer_expression "*(int *)(iVar5 + 0x8c)" * (cast_expression "(int *)(iVar5 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x8c)" ( (binary_expression "iVar5 + 0x8c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }" { (expression_statement "(**(code **)(pcVar15 + 0x4282c))(iVar5,5);" (call_expression "(**(code **)(pcVar15 + 0x4282c))(iVar5,5)" (parenthesized_expression "(**(code **)(pcVar15 + 0x4282c))" ( (pointer_expression "**(code **)(pcVar15 + 0x4282c)" * (pointer_expression "*(code **)(pcVar15 + 0x4282c)" * (cast_expression "(code **)(pcVar15 + 0x4282c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x4282c)" ( (binary_expression "pcVar15 + 0x4282c" identifier + number_literal) ))))) )) (argument_list "(iVar5,5)" ( identifier , number_literal ))) ;) })) (if_statement "if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }" if (parenthesized_expression "(piStack_29c != (int *)**(int **)(pcVar15 + 0x43634))" ( (binary_expression "piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)" identifier != (cast_expression "(int *)**(int **)(pcVar15 + 0x43634)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar15 + 0x43634)" * (pointer_expression "*(int **)(pcVar15 + 0x43634)" * (cast_expression "(int **)(pcVar15 + 0x43634)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43634)" ( (binary_expression "pcVar15 + 0x43634" identifier + number_literal) ))))))) )) (compound_statement "{\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }" { (expression_statement "pcVar11 = *(code **)(pcVar15 + 0x432a8);" (assignment_expression "pcVar11 = *(code **)(pcVar15 + 0x432a8)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x432a8)" * (cast_expression "(code **)(pcVar15 + 0x432a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x432a8)" ( (binary_expression "pcVar15 + 0x432a8" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = piStack_29c;" (assignment_expression "piVar4 = piStack_29c" identifier = identifier) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar19 = *piVar4;" (assignment_expression "iVar19 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);" (assignment_expression "uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" * (cast_expression "(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x84) + 0xb8)" ( (binary_expression "*(int *)(iVar19 + 0x84) + 0xb8" (pointer_expression "*(int *)(iVar19 + 0x84)" * (cast_expression "(int *)(iVar19 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x84)" ( (binary_expression "iVar19 + 0x84" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }" if (parenthesized_expression "((int)uVar7 < 0)" ( (binary_expression "(int)uVar7 < 0" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }" { (expression_statement "uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;" (assignment_expression "uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2" identifier = (binary_expression "*(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x84) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x84) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x84) + 0xc)" ( (binary_expression "*(int *)(iVar19 + 0x84) + 0xc" (pointer_expression "*(int *)(iVar19 + 0x84)" * (cast_expression "(int *)(iVar19 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x84)" ( (binary_expression "iVar19 + 0x84" identifier + number_literal) )))) + number_literal) )))) << number_literal)) ;) })) (if_statement "if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar20 = (int *)0x0;\n      }" { (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" else (compound_statement "{\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" { (expression_statement "uVar8 = FUN_0006e044(iVar19);" (assignment_expression "uVar8 = FUN_0006e044(iVar19)" identifier = (call_expression "FUN_0006e044(iVar19)" identifier (argument_list "(iVar19)" ( identifier )))) ;) (if_statement "if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }" if (parenthesized_expression "(uVar7 < uVar8)" ( (binary_expression "uVar7 < uVar8" identifier < identifier) )) (compound_statement "{\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }" { (expression_statement "(**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);" (call_expression "(**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8)" (parenthesized_expression "(**(code **)(pcVar11 + 0x42608))" ( (pointer_expression "**(code **)(pcVar11 + 0x42608)" * (pointer_expression "*(code **)(pcVar11 + 0x42608)" * (cast_expression "(code **)(pcVar11 + 0x42608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x42608)" ( (binary_expression "pcVar11 + 0x42608" identifier + number_literal) ))))) )) (argument_list "(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8)" ( identifier , (binary_expression "*(int *)(pcVar11 + 0x425e0) + -0x39a8" (pointer_expression "*(int *)(pcVar11 + 0x425e0)" * (cast_expression "(int *)(pcVar11 + 0x425e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x425e0)" ( (binary_expression "pcVar11 + 0x425e0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "piVar20 = (int *)FUN_0006e9a0(iVar19);" (assignment_expression "piVar20 = (int *)FUN_0006e9a0(iVar19)" identifier = (cast_expression "(int *)FUN_0006e9a0(iVar19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0006e9a0(iVar19)" identifier (argument_list "(iVar19)" ( identifier ))))) ;) (if_statement "if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }" if (parenthesized_expression "(piVar20 != (int *)0x0)" ( (binary_expression "piVar20 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }" { (expression_statement "(**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);" (call_expression "(**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0)" (parenthesized_expression "(**(code **)(pcVar11 + 0x42670))" ( (pointer_expression "**(code **)(pcVar11 + 0x42670)" * (pointer_expression "*(code **)(pcVar11 + 0x42670)" * (cast_expression "(code **)(pcVar11 + 0x42670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x42670)" ( (binary_expression "pcVar11 + 0x42670" identifier + number_literal) ))))) )) (argument_list "(iVar19,piVar20,0)" ( identifier , identifier , number_literal ))) ;) })) }) (else_clause "else {\n          piVar20 = (int *)0x0;\n        }" else (compound_statement "{\n          piVar20 = (int *)0x0;\n        }" { (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (return_statement "return (code *)(uint)(piVar20 != piVar4);" return (cast_expression "(code *)(uint)(piVar20 != piVar4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(piVar20 != piVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar20 != piVar4)" ( (binary_expression "piVar20 != piVar4" identifier != identifier) )))) ;) })) (return_statement "return pcVar11;" return identifier ;) })) (return_statement "return pcVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nconnectbundle * Curl_conncache_find_bundle(connectdata *conn,conncache *connc)\n\n{\n  Curl_easy **ppCVar1;\n  curl_llist_element *pcVar2;\n  connectbundle *pcVar3;\n  CURL *pCVar4;\n  int iVar5;\n  connectbundle *pcVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  conncache *pcVar10;\n  Curl_easy *pCVar11;\n  Curl_easy *data;\n  Curl_easy *pCVar12;\n  Curl_easy *pCVar13;\n  Curl_easy *pCVar14;\n  Curl_easy *pCVar15;\n  Curl_easy *pCVar16;\n  Curl_easy *in_a3;\n  Curl_easy *cb_ptr;\n  void *pvVar17;\n  connectdata *pcVar18;\n  Curl_easy *unaff_s1;\n  Curl_easy *pCVar19;\n  Curl_easy *unaff_s4;\n  connectdata *pcVar20;\n  Curl_easy *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  connectdata *pcStack_29c;\n  undefined4 uStack_298;\n  Curl_easy *pCStack_294;\n  Curl_easy *pCStack_290;\n  int iStack_28c;\n  connectbundle *pcStack_288;\n  Curl_easy *pCStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  Curl_easy *pCStack_24c;\n  connectbundle *pcStack_244;\n  Curl_easy *pCStack_240;\n  Curl_easy *pCStack_23c;\n  Curl_easy *pCStack_238;\n  Curl_easy *pCStack_234;\n  Curl_easy *pCStack_230;\n  code *pcStack_22c;\n  code *pcStack_218;\n  connectbundle cStack_210;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  void *pvStack_1d4;\n  Curl_easy *pCStack_1d0;\n  Curl_easy *pCStack_1cc;\n  Curl_easy *pCStack_1c8;\n  Curl_easy *pCStack_1c4;\n  Curl_easy *pCStack_1c0;\n  Curl_easy *pCStack_1bc;\n  connectbundle *pcStack_18c;\n  connectbundle *pcStack_184;\n  Curl_easy *pCStack_180;\n  curl_llist_element *pcStack_17c;\n  Curl_easy *pCStack_178;\n  Curl_easy *pCStack_174;\n  Curl_easy *pCStack_cc;\n  Curl_multi *pCStack_c8;\n  Curl_easy *pCStack_c4;\n  connectdata *pcStack_c0;\n  char key [128];\n  \n  pcVar2 = *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4;\n  pCVar12 = (Curl_easy *)connc;\n  if (conn->data->share != (Curl_share *)0x0) {\n    pCVar12 = (Curl_easy *)&DAT_00000005;\n    Curl_share_lock(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }\n  pCVar15 = (Curl_easy *)0x80;\n  if (connc == (conncache *)0x0) {\n    pcVar3 = (connectbundle *)0x0;\n  }\n  else {\n    unaff_s1 = (Curl_easy *)key;\n    hashkey(conn,(char *)unaff_s1,0x80);\n    pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pCVar12 = unaff_s1;\n    pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc);\n  }\n  if (pcVar2 == *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar3;\n  }\n  puVar21 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  pcStack_c0 = conn;\n  pCStack_c4 = unaff_s1;\n  pCStack_c8 = (Curl_multi *)connc;\n  pCStack_cc = (Curl_easy *)**(undefined4 **)(puVar21 + 0x43d78);\n  pCVar19 = pCVar12->next;\n  pcVar3 = Curl_conncache_find_bundle((connectdata *)pCVar12,(pCVar19->state).conn_cache);\n  if (pcVar3 == (connectbundle *)0x0) {\n    pcVar3 = (connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18);\n    if (pcVar3 != (connectbundle *)0x0) {\n      pcVar3->num_connections = 0;\n      pcVar3->multiuse = 0;\n      (**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);\n      unaff_s4 = (Curl_easy *)&stack0xfffffeb4;\n      hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);\n      pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);\n      iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);\n      in_a3 = (Curl_easy *)&pCVar12->prev;\n      if (iVar5 != 0) goto LAB_0006e2c4;\n      bundle_destroy(pcVar3);\n    }\n    pcVar3 = (connectbundle *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    in_a3 = (Curl_easy *)&pCVar12->prev;\n    pCVar15 = pCVar12;\n    (**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail);\n    (pCVar12->set).proxyport = (long)pcVar3;\n    pcVar3->num_connections = pcVar3->num_connections + 1;\n    pCVar4 = (CURL *)pcVar2[2].prev;\n    pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1);\n    (pCVar12->msg).extmsg.easy_handle = pCVar4;\n    pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1);\n    pcVar3 = (connectbundle *)0x0;\n  }\n  pCVar13 = (Curl_easy *)&DAT_00000005;\n  if (pCVar19->share != (Curl_share *)0x0) {\n    Curl_share_unlock(pCVar19,CURL_LOCK_DATA_CONNECT);\n  }\n  if (pCStack_cc == (Curl_easy *)**(int **)(puVar21 + 0x43d78)) {\n    return pcVar3;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x439ec);\n  pCVar11 = pCStack_cc;\n  (*pcVar22)();\n  pcStack_18c = (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  cb_ptr = (Curl_easy *)(pCVar13->set).proxyport;\n  data = pCVar11;\n  pCVar14 = pCVar13;\n  pCVar16 = pCVar15;\n  pcStack_184 = pcVar3;\n  pCStack_180 = pCVar12;\n  pcStack_17c = pcVar2;\n  pCStack_178 = pCVar19;\n  pCStack_174 = unaff_s4;\n  if (cb_ptr == (Curl_easy *)0x0) goto LAB_0006e510;\n  pCVar19 = (Curl_easy *)(pCVar11->state).conn_cache;\n  if ((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0)) {\n    Curl_share_lock(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }\n  data = cb_ptr;\n  bundle_remove_conn((connectbundle *)cb_ptr,(connectdata *)pCVar13);\n  if ((cb_ptr->prev == (Curl_easy *)0x0) &&\n     (unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0)) {\n    pCVar14 = unaff_s5;\n    (**(code **)(pcVar22 + 0x433b4))(pCVar19);\n    data = unaff_s5;\n    iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n    if (iVar5 != 0) {\n      pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      while (cb_ptr != pCVar12) {\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }\n      pCVar16 = *(Curl_easy **)(iVar5 + 0x10);\n      pCVar14 = (Curl_easy *)(iVar5 + 0x14);\n      data = pCVar19;\n      (**(code **)(pcVar22 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    (pCVar13->set).proxyport = 0;\nLAB_0006e4dc:\n    (pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1);\n  }\n  else {\nLAB_0006e4d4:\n    (pCVar13->set).proxyport = 0;\n    if (pCVar19 != (Curl_easy *)0x0) goto LAB_0006e4dc;\n  }\n  pCVar13->next = (Curl_easy *)0x0;\n  pCVar12 = pCVar13;\n  unaff_s4 = pCVar15;\n  if ((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0)) {\n    data = pCVar11;\n    Curl_share_unlock(pCVar11,CURL_LOCK_DATA_CONNECT);\n  }\nLAB_0006e510:\n  if (pcStack_18c == (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)) {\n    return (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  }\n  pcVar22 = *(code **)(pcVar22 + 0x43814);\n  (*pcVar22)();\n  pCStack_1bc = unaff_s5;\n  pCStack_1c0 = unaff_s4;\n  pCStack_1c4 = pCVar19;\n  pCStack_1c8 = pCVar11;\n  pCStack_1cc = pCVar12;\n  pCStack_1d0 = cb_ptr;\n  pcStack_1e8 = pcVar22 + 0x4ab28;\n  pvStack_1d4 = (void *)**(int **)(pcVar22 + 0x439ec);\n  if (pCVar14 == (Curl_easy *)0x0) {\n    pcVar3 = (connectbundle *)0x0;\n  }\n  else {\n    if (data->share != (Curl_share *)0x0) {\n      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n    }\n    pCVar19 = (Curl_easy *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19);\n    unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19);\n    cb_ptr = pCVar14;\n    pCVar11 = in_a3;\n    pCVar12 = pCVar16;\n    if (unaff_s4 != (Curl_easy *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pCVar19 = (Curl_easy *)0x1;\n      do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);\n    }\n    if (data->share == (Curl_share *)0x0) {\n      pcVar3 = (connectbundle *)0x0;\n    }\n    else {\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (pvStack_1d4 == (void *)**(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar3;\n  }\n  pcVar22 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar23 = Curl_conncache_find_first_connection;\n  (*pcVar22)();\n  pcStack_218 = pcVar22 + 0x4a974;\n  cStack_210.conn_list.tail = (curl_llist_element *)**(undefined4 **)(pcVar22 + 0x43838);\n  pcVar3 = &cStack_210;\n  cStack_210.conn_list.dtor = (curl_llist_dtor)cb_ptr;\n  cStack_210.conn_list.size = (size_t)pcVar23;\n  (**(code **)(pcVar22 + 0x4304c))();\n  pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n  if (pcVar6 != (connectbundle *)0x0) {\n    pcVar2 = ((pcVar6->conn_list).tail)->next;\n    while (pcVar2 == (curl_llist_element *)0x0) {\n      pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n      if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;\n      pcVar2 = ((pcVar6->conn_list).tail)->next;\n    }\n    pcVar6 = (connectbundle *)pcVar2->ptr;\n  }\nLAB_0006e834:\n  if ((Curl_easy *)cStack_210.conn_list.tail == (Curl_easy *)**(int **)(pcStack_218 + -0x713c)) {\n    return pcVar6;\n  }\n  pcVar22 = *(code **)(pcStack_218 + -0x74c8);\n  pcVar23 = Curl_conncache_extract_bundle;\n  pCVar15 = (Curl_easy *)cStack_210.conn_list.tail;\n  (*pcVar22)();\n  pCStack_24c = (Curl_easy *)**(undefined4 **)(pcVar22 + 0x43774);\n  pcStack_244 = &cStack_210;\n  pCStack_240 = pCVar12;\n  pCStack_23c = pCVar11;\n  pCStack_238 = pCVar19;\n  pCStack_234 = unaff_s4;\n  pCStack_230 = data;\n  pcStack_22c = pcVar23;\n  (**(code **)(pcVar22 + 0x42914))(&uStack_254);\n  pcVar2 = (pcVar3->conn_list).head;\n  iVar5 = -1;\n  if (pcVar2 == (curl_llist_element *)0x0) {\n    pCVar19 = (Curl_easy *)0x0;\n  }\n  else {\n    pCVar19 = (Curl_easy *)0x0;\n    do {\n      pCVar12 = (Curl_easy *)pcVar2->ptr;\n      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }\n      pcVar2 = pcVar2->next;\n    } while (pcVar2 != (curl_llist_element *)0x0);\n    if (pCVar19 != (Curl_easy *)0x0) {\n      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);\n      pcVar10 = (pCVar15->state).conn_cache;\n      pcVar10->num_conn = pcVar10->num_conn - 1;\n      pCVar19->next = pCVar15;\n    }\n  }\n  if (pCStack_24c != (Curl_easy *)**(int **)(pcVar22 + 0x43774)) {\n    pcVar22 = *(code **)(pcVar22 + 0x433e8);\n    pCVar13 = pCStack_24c;\n    (*pcVar22)();\n    pcStack_29c = (connectdata *)**(undefined4 **)(pcVar22 + 0x43634);\n    pcVar10 = (pCVar13->state).conn_cache;\n    uStack_298 = 0;\n    pCStack_294 = pCVar12;\n    pCStack_290 = pCVar19;\n    iStack_28c = iVar5;\n    pcStack_288 = pcVar3;\n    pCStack_284 = pCVar15;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar22 + 0x427d4))(&uStack_2b0);\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);\n    }\n    (**(code **)(pcVar22 + 0x42e48))(pcVar10,auStack_2a8);\n    iVar5 = (**(code **)(pcVar22 + 0x42e4c))(auStack_2a8);\n    pcVar3 = (connectbundle *)0x0;\n    if (iVar5 == 0) {\n      pcVar20 = (connectdata *)0x0;\n    }\n    else {\n      pcVar20 = (connectdata *)0x0;\n      iVar7 = -1;\n      do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);\n      if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }\n    }\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x4282c))(pCVar13,5);\n    }\n    if (pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)) {\n      pcVar22 = *(code **)(pcVar22 + 0x432a8);\n      pcVar20 = pcStack_29c;\n      (*pcVar22)();\n      pCVar12 = pcVar20->data;\n      uVar8 = pCVar12->multi->maxconnects;\n      if ((int)uVar8 < 0) {\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }\n      if (uVar8 == 0) {\n        pcVar18 = (connectdata *)0x0;\n      }\n      else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }\n      return (connectbundle *)(uint)(pcVar18 != pcVar20);\n    }\n    return (connectbundle *)pcVar20;\n  }\n  return (connectbundle *)pCVar19;\n}\n\n" comment (function_definition "connectbundle * Curl_conncache_find_bundle(connectdata *conn,conncache *connc)\n\n{\n  Curl_easy **ppCVar1;\n  curl_llist_element *pcVar2;\n  connectbundle *pcVar3;\n  CURL *pCVar4;\n  int iVar5;\n  connectbundle *pcVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  conncache *pcVar10;\n  Curl_easy *pCVar11;\n  Curl_easy *data;\n  Curl_easy *pCVar12;\n  Curl_easy *pCVar13;\n  Curl_easy *pCVar14;\n  Curl_easy *pCVar15;\n  Curl_easy *pCVar16;\n  Curl_easy *in_a3;\n  Curl_easy *cb_ptr;\n  void *pvVar17;\n  connectdata *pcVar18;\n  Curl_easy *unaff_s1;\n  Curl_easy *pCVar19;\n  Curl_easy *unaff_s4;\n  connectdata *pcVar20;\n  Curl_easy *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  connectdata *pcStack_29c;\n  undefined4 uStack_298;\n  Curl_easy *pCStack_294;\n  Curl_easy *pCStack_290;\n  int iStack_28c;\n  connectbundle *pcStack_288;\n  Curl_easy *pCStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  Curl_easy *pCStack_24c;\n  connectbundle *pcStack_244;\n  Curl_easy *pCStack_240;\n  Curl_easy *pCStack_23c;\n  Curl_easy *pCStack_238;\n  Curl_easy *pCStack_234;\n  Curl_easy *pCStack_230;\n  code *pcStack_22c;\n  code *pcStack_218;\n  connectbundle cStack_210;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  void *pvStack_1d4;\n  Curl_easy *pCStack_1d0;\n  Curl_easy *pCStack_1cc;\n  Curl_easy *pCStack_1c8;\n  Curl_easy *pCStack_1c4;\n  Curl_easy *pCStack_1c0;\n  Curl_easy *pCStack_1bc;\n  connectbundle *pcStack_18c;\n  connectbundle *pcStack_184;\n  Curl_easy *pCStack_180;\n  curl_llist_element *pcStack_17c;\n  Curl_easy *pCStack_178;\n  Curl_easy *pCStack_174;\n  Curl_easy *pCStack_cc;\n  Curl_multi *pCStack_c8;\n  Curl_easy *pCStack_c4;\n  connectdata *pcStack_c0;\n  char key [128];\n  \n  pcVar2 = *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4;\n  pCVar12 = (Curl_easy *)connc;\n  if (conn->data->share != (Curl_share *)0x0) {\n    pCVar12 = (Curl_easy *)&DAT_00000005;\n    Curl_share_lock(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }\n  pCVar15 = (Curl_easy *)0x80;\n  if (connc == (conncache *)0x0) {\n    pcVar3 = (connectbundle *)0x0;\n  }\n  else {\n    unaff_s1 = (Curl_easy *)key;\n    hashkey(conn,(char *)unaff_s1,0x80);\n    pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pCVar12 = unaff_s1;\n    pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc);\n  }\n  if (pcVar2 == *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar3;\n  }\n  puVar21 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  pcStack_c0 = conn;\n  pCStack_c4 = unaff_s1;\n  pCStack_c8 = (Curl_multi *)connc;\n  pCStack_cc = (Curl_easy *)**(undefined4 **)(puVar21 + 0x43d78);\n  pCVar19 = pCVar12->next;\n  pcVar3 = Curl_conncache_find_bundle((connectdata *)pCVar12,(pCVar19->state).conn_cache);\n  if (pcVar3 == (connectbundle *)0x0) {\n    pcVar3 = (connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18);\n    if (pcVar3 != (connectbundle *)0x0) {\n      pcVar3->num_connections = 0;\n      pcVar3->multiuse = 0;\n      (**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);\n      unaff_s4 = (Curl_easy *)&stack0xfffffeb4;\n      hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);\n      pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);\n      iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);\n      in_a3 = (Curl_easy *)&pCVar12->prev;\n      if (iVar5 != 0) goto LAB_0006e2c4;\n      bundle_destroy(pcVar3);\n    }\n    pcVar3 = (connectbundle *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    in_a3 = (Curl_easy *)&pCVar12->prev;\n    pCVar15 = pCVar12;\n    (**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail);\n    (pCVar12->set).proxyport = (long)pcVar3;\n    pcVar3->num_connections = pcVar3->num_connections + 1;\n    pCVar4 = (CURL *)pcVar2[2].prev;\n    pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1);\n    (pCVar12->msg).extmsg.easy_handle = pCVar4;\n    pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1);\n    pcVar3 = (connectbundle *)0x0;\n  }\n  pCVar13 = (Curl_easy *)&DAT_00000005;\n  if (pCVar19->share != (Curl_share *)0x0) {\n    Curl_share_unlock(pCVar19,CURL_LOCK_DATA_CONNECT);\n  }\n  if (pCStack_cc == (Curl_easy *)**(int **)(puVar21 + 0x43d78)) {\n    return pcVar3;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x439ec);\n  pCVar11 = pCStack_cc;\n  (*pcVar22)();\n  pcStack_18c = (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  cb_ptr = (Curl_easy *)(pCVar13->set).proxyport;\n  data = pCVar11;\n  pCVar14 = pCVar13;\n  pCVar16 = pCVar15;\n  pcStack_184 = pcVar3;\n  pCStack_180 = pCVar12;\n  pcStack_17c = pcVar2;\n  pCStack_178 = pCVar19;\n  pCStack_174 = unaff_s4;\n  if (cb_ptr == (Curl_easy *)0x0) goto LAB_0006e510;\n  pCVar19 = (Curl_easy *)(pCVar11->state).conn_cache;\n  if ((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0)) {\n    Curl_share_lock(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }\n  data = cb_ptr;\n  bundle_remove_conn((connectbundle *)cb_ptr,(connectdata *)pCVar13);\n  if ((cb_ptr->prev == (Curl_easy *)0x0) &&\n     (unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0)) {\n    pCVar14 = unaff_s5;\n    (**(code **)(pcVar22 + 0x433b4))(pCVar19);\n    data = unaff_s5;\n    iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n    if (iVar5 != 0) {\n      pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      while (cb_ptr != pCVar12) {\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }\n      pCVar16 = *(Curl_easy **)(iVar5 + 0x10);\n      pCVar14 = (Curl_easy *)(iVar5 + 0x14);\n      data = pCVar19;\n      (**(code **)(pcVar22 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    (pCVar13->set).proxyport = 0;\nLAB_0006e4dc:\n    (pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1);\n  }\n  else {\nLAB_0006e4d4:\n    (pCVar13->set).proxyport = 0;\n    if (pCVar19 != (Curl_easy *)0x0) goto LAB_0006e4dc;\n  }\n  pCVar13->next = (Curl_easy *)0x0;\n  pCVar12 = pCVar13;\n  unaff_s4 = pCVar15;\n  if ((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0)) {\n    data = pCVar11;\n    Curl_share_unlock(pCVar11,CURL_LOCK_DATA_CONNECT);\n  }\nLAB_0006e510:\n  if (pcStack_18c == (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)) {\n    return (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  }\n  pcVar22 = *(code **)(pcVar22 + 0x43814);\n  (*pcVar22)();\n  pCStack_1bc = unaff_s5;\n  pCStack_1c0 = unaff_s4;\n  pCStack_1c4 = pCVar19;\n  pCStack_1c8 = pCVar11;\n  pCStack_1cc = pCVar12;\n  pCStack_1d0 = cb_ptr;\n  pcStack_1e8 = pcVar22 + 0x4ab28;\n  pvStack_1d4 = (void *)**(int **)(pcVar22 + 0x439ec);\n  if (pCVar14 == (Curl_easy *)0x0) {\n    pcVar3 = (connectbundle *)0x0;\n  }\n  else {\n    if (data->share != (Curl_share *)0x0) {\n      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n    }\n    pCVar19 = (Curl_easy *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19);\n    unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19);\n    cb_ptr = pCVar14;\n    pCVar11 = in_a3;\n    pCVar12 = pCVar16;\n    if (unaff_s4 != (Curl_easy *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pCVar19 = (Curl_easy *)0x1;\n      do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);\n    }\n    if (data->share == (Curl_share *)0x0) {\n      pcVar3 = (connectbundle *)0x0;\n    }\n    else {\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (pvStack_1d4 == (void *)**(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar3;\n  }\n  pcVar22 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar23 = Curl_conncache_find_first_connection;\n  (*pcVar22)();\n  pcStack_218 = pcVar22 + 0x4a974;\n  cStack_210.conn_list.tail = (curl_llist_element *)**(undefined4 **)(pcVar22 + 0x43838);\n  pcVar3 = &cStack_210;\n  cStack_210.conn_list.dtor = (curl_llist_dtor)cb_ptr;\n  cStack_210.conn_list.size = (size_t)pcVar23;\n  (**(code **)(pcVar22 + 0x4304c))();\n  pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n  if (pcVar6 != (connectbundle *)0x0) {\n    pcVar2 = ((pcVar6->conn_list).tail)->next;\n    while (pcVar2 == (curl_llist_element *)0x0) {\n      pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n      if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;\n      pcVar2 = ((pcVar6->conn_list).tail)->next;\n    }\n    pcVar6 = (connectbundle *)pcVar2->ptr;\n  }\nLAB_0006e834:\n  if ((Curl_easy *)cStack_210.conn_list.tail == (Curl_easy *)**(int **)(pcStack_218 + -0x713c)) {\n    return pcVar6;\n  }\n  pcVar22 = *(code **)(pcStack_218 + -0x74c8);\n  pcVar23 = Curl_conncache_extract_bundle;\n  pCVar15 = (Curl_easy *)cStack_210.conn_list.tail;\n  (*pcVar22)();\n  pCStack_24c = (Curl_easy *)**(undefined4 **)(pcVar22 + 0x43774);\n  pcStack_244 = &cStack_210;\n  pCStack_240 = pCVar12;\n  pCStack_23c = pCVar11;\n  pCStack_238 = pCVar19;\n  pCStack_234 = unaff_s4;\n  pCStack_230 = data;\n  pcStack_22c = pcVar23;\n  (**(code **)(pcVar22 + 0x42914))(&uStack_254);\n  pcVar2 = (pcVar3->conn_list).head;\n  iVar5 = -1;\n  if (pcVar2 == (curl_llist_element *)0x0) {\n    pCVar19 = (Curl_easy *)0x0;\n  }\n  else {\n    pCVar19 = (Curl_easy *)0x0;\n    do {\n      pCVar12 = (Curl_easy *)pcVar2->ptr;\n      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }\n      pcVar2 = pcVar2->next;\n    } while (pcVar2 != (curl_llist_element *)0x0);\n    if (pCVar19 != (Curl_easy *)0x0) {\n      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);\n      pcVar10 = (pCVar15->state).conn_cache;\n      pcVar10->num_conn = pcVar10->num_conn - 1;\n      pCVar19->next = pCVar15;\n    }\n  }\n  if (pCStack_24c != (Curl_easy *)**(int **)(pcVar22 + 0x43774)) {\n    pcVar22 = *(code **)(pcVar22 + 0x433e8);\n    pCVar13 = pCStack_24c;\n    (*pcVar22)();\n    pcStack_29c = (connectdata *)**(undefined4 **)(pcVar22 + 0x43634);\n    pcVar10 = (pCVar13->state).conn_cache;\n    uStack_298 = 0;\n    pCStack_294 = pCVar12;\n    pCStack_290 = pCVar19;\n    iStack_28c = iVar5;\n    pcStack_288 = pcVar3;\n    pCStack_284 = pCVar15;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar22 + 0x427d4))(&uStack_2b0);\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);\n    }\n    (**(code **)(pcVar22 + 0x42e48))(pcVar10,auStack_2a8);\n    iVar5 = (**(code **)(pcVar22 + 0x42e4c))(auStack_2a8);\n    pcVar3 = (connectbundle *)0x0;\n    if (iVar5 == 0) {\n      pcVar20 = (connectdata *)0x0;\n    }\n    else {\n      pcVar20 = (connectdata *)0x0;\n      iVar7 = -1;\n      do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);\n      if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }\n    }\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x4282c))(pCVar13,5);\n    }\n    if (pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)) {\n      pcVar22 = *(code **)(pcVar22 + 0x432a8);\n      pcVar20 = pcStack_29c;\n      (*pcVar22)();\n      pCVar12 = pcVar20->data;\n      uVar8 = pCVar12->multi->maxconnects;\n      if ((int)uVar8 < 0) {\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }\n      if (uVar8 == 0) {\n        pcVar18 = (connectdata *)0x0;\n      }\n      else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }\n      return (connectbundle *)(uint)(pcVar18 != pcVar20);\n    }\n    return (connectbundle *)pcVar20;\n  }\n  return (connectbundle *)pCVar19;\n}" type_identifier (pointer_declarator "* Curl_conncache_find_bundle(connectdata *conn,conncache *connc)" * (function_declarator "Curl_conncache_find_bundle(connectdata *conn,conncache *connc)" identifier (parameter_list "(connectdata *conn,conncache *connc)" ( (parameter_declaration "connectdata *conn" type_identifier (pointer_declarator "*conn" * identifier)) , (parameter_declaration "conncache *connc" type_identifier (pointer_declarator "*connc" * identifier)) )))) (compound_statement "{\n  Curl_easy **ppCVar1;\n  curl_llist_element *pcVar2;\n  connectbundle *pcVar3;\n  CURL *pCVar4;\n  int iVar5;\n  connectbundle *pcVar6;\n  int iVar7;\n  uint uVar8;\n  size_t sVar9;\n  conncache *pcVar10;\n  Curl_easy *pCVar11;\n  Curl_easy *data;\n  Curl_easy *pCVar12;\n  Curl_easy *pCVar13;\n  Curl_easy *pCVar14;\n  Curl_easy *pCVar15;\n  Curl_easy *pCVar16;\n  Curl_easy *in_a3;\n  Curl_easy *cb_ptr;\n  void *pvVar17;\n  connectdata *pcVar18;\n  Curl_easy *unaff_s1;\n  Curl_easy *pCVar19;\n  Curl_easy *unaff_s4;\n  connectdata *pcVar20;\n  Curl_easy *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  connectdata *pcStack_29c;\n  undefined4 uStack_298;\n  Curl_easy *pCStack_294;\n  Curl_easy *pCStack_290;\n  int iStack_28c;\n  connectbundle *pcStack_288;\n  Curl_easy *pCStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  Curl_easy *pCStack_24c;\n  connectbundle *pcStack_244;\n  Curl_easy *pCStack_240;\n  Curl_easy *pCStack_23c;\n  Curl_easy *pCStack_238;\n  Curl_easy *pCStack_234;\n  Curl_easy *pCStack_230;\n  code *pcStack_22c;\n  code *pcStack_218;\n  connectbundle cStack_210;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  void *pvStack_1d4;\n  Curl_easy *pCStack_1d0;\n  Curl_easy *pCStack_1cc;\n  Curl_easy *pCStack_1c8;\n  Curl_easy *pCStack_1c4;\n  Curl_easy *pCStack_1c0;\n  Curl_easy *pCStack_1bc;\n  connectbundle *pcStack_18c;\n  connectbundle *pcStack_184;\n  Curl_easy *pCStack_180;\n  curl_llist_element *pcStack_17c;\n  Curl_easy *pCStack_178;\n  Curl_easy *pCStack_174;\n  Curl_easy *pCStack_cc;\n  Curl_multi *pCStack_c8;\n  Curl_easy *pCStack_c4;\n  connectdata *pcStack_c0;\n  char key [128];\n  \n  pcVar2 = *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4;\n  pCVar12 = (Curl_easy *)connc;\n  if (conn->data->share != (Curl_share *)0x0) {\n    pCVar12 = (Curl_easy *)&DAT_00000005;\n    Curl_share_lock(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }\n  pCVar15 = (Curl_easy *)0x80;\n  if (connc == (conncache *)0x0) {\n    pcVar3 = (connectbundle *)0x0;\n  }\n  else {\n    unaff_s1 = (Curl_easy *)key;\n    hashkey(conn,(char *)unaff_s1,0x80);\n    pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pCVar12 = unaff_s1;\n    pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc);\n  }\n  if (pcVar2 == *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar3;\n  }\n  puVar21 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  pcStack_c0 = conn;\n  pCStack_c4 = unaff_s1;\n  pCStack_c8 = (Curl_multi *)connc;\n  pCStack_cc = (Curl_easy *)**(undefined4 **)(puVar21 + 0x43d78);\n  pCVar19 = pCVar12->next;\n  pcVar3 = Curl_conncache_find_bundle((connectdata *)pCVar12,(pCVar19->state).conn_cache);\n  if (pcVar3 == (connectbundle *)0x0) {\n    pcVar3 = (connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18);\n    if (pcVar3 != (connectbundle *)0x0) {\n      pcVar3->num_connections = 0;\n      pcVar3->multiuse = 0;\n      (**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);\n      unaff_s4 = (Curl_easy *)&stack0xfffffeb4;\n      hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);\n      pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);\n      iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);\n      in_a3 = (Curl_easy *)&pCVar12->prev;\n      if (iVar5 != 0) goto LAB_0006e2c4;\n      bundle_destroy(pcVar3);\n    }\n    pcVar3 = (connectbundle *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    in_a3 = (Curl_easy *)&pCVar12->prev;\n    pCVar15 = pCVar12;\n    (**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail);\n    (pCVar12->set).proxyport = (long)pcVar3;\n    pcVar3->num_connections = pcVar3->num_connections + 1;\n    pCVar4 = (CURL *)pcVar2[2].prev;\n    pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1);\n    (pCVar12->msg).extmsg.easy_handle = pCVar4;\n    pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1);\n    pcVar3 = (connectbundle *)0x0;\n  }\n  pCVar13 = (Curl_easy *)&DAT_00000005;\n  if (pCVar19->share != (Curl_share *)0x0) {\n    Curl_share_unlock(pCVar19,CURL_LOCK_DATA_CONNECT);\n  }\n  if (pCStack_cc == (Curl_easy *)**(int **)(puVar21 + 0x43d78)) {\n    return pcVar3;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x439ec);\n  pCVar11 = pCStack_cc;\n  (*pcVar22)();\n  pcStack_18c = (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  cb_ptr = (Curl_easy *)(pCVar13->set).proxyport;\n  data = pCVar11;\n  pCVar14 = pCVar13;\n  pCVar16 = pCVar15;\n  pcStack_184 = pcVar3;\n  pCStack_180 = pCVar12;\n  pcStack_17c = pcVar2;\n  pCStack_178 = pCVar19;\n  pCStack_174 = unaff_s4;\n  if (cb_ptr == (Curl_easy *)0x0) goto LAB_0006e510;\n  pCVar19 = (Curl_easy *)(pCVar11->state).conn_cache;\n  if ((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0)) {\n    Curl_share_lock(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }\n  data = cb_ptr;\n  bundle_remove_conn((connectbundle *)cb_ptr,(connectdata *)pCVar13);\n  if ((cb_ptr->prev == (Curl_easy *)0x0) &&\n     (unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0)) {\n    pCVar14 = unaff_s5;\n    (**(code **)(pcVar22 + 0x433b4))(pCVar19);\n    data = unaff_s5;\n    iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n    if (iVar5 != 0) {\n      pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      while (cb_ptr != pCVar12) {\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }\n      pCVar16 = *(Curl_easy **)(iVar5 + 0x10);\n      pCVar14 = (Curl_easy *)(iVar5 + 0x14);\n      data = pCVar19;\n      (**(code **)(pcVar22 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    (pCVar13->set).proxyport = 0;\nLAB_0006e4dc:\n    (pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1);\n  }\n  else {\nLAB_0006e4d4:\n    (pCVar13->set).proxyport = 0;\n    if (pCVar19 != (Curl_easy *)0x0) goto LAB_0006e4dc;\n  }\n  pCVar13->next = (Curl_easy *)0x0;\n  pCVar12 = pCVar13;\n  unaff_s4 = pCVar15;\n  if ((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0)) {\n    data = pCVar11;\n    Curl_share_unlock(pCVar11,CURL_LOCK_DATA_CONNECT);\n  }\nLAB_0006e510:\n  if (pcStack_18c == (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)) {\n    return (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  }\n  pcVar22 = *(code **)(pcVar22 + 0x43814);\n  (*pcVar22)();\n  pCStack_1bc = unaff_s5;\n  pCStack_1c0 = unaff_s4;\n  pCStack_1c4 = pCVar19;\n  pCStack_1c8 = pCVar11;\n  pCStack_1cc = pCVar12;\n  pCStack_1d0 = cb_ptr;\n  pcStack_1e8 = pcVar22 + 0x4ab28;\n  pvStack_1d4 = (void *)**(int **)(pcVar22 + 0x439ec);\n  if (pCVar14 == (Curl_easy *)0x0) {\n    pcVar3 = (connectbundle *)0x0;\n  }\n  else {\n    if (data->share != (Curl_share *)0x0) {\n      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n    }\n    pCVar19 = (Curl_easy *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19);\n    unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19);\n    cb_ptr = pCVar14;\n    pCVar11 = in_a3;\n    pCVar12 = pCVar16;\n    if (unaff_s4 != (Curl_easy *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pCVar19 = (Curl_easy *)0x1;\n      do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);\n    }\n    if (data->share == (Curl_share *)0x0) {\n      pcVar3 = (connectbundle *)0x0;\n    }\n    else {\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (pvStack_1d4 == (void *)**(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar3;\n  }\n  pcVar22 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar23 = Curl_conncache_find_first_connection;\n  (*pcVar22)();\n  pcStack_218 = pcVar22 + 0x4a974;\n  cStack_210.conn_list.tail = (curl_llist_element *)**(undefined4 **)(pcVar22 + 0x43838);\n  pcVar3 = &cStack_210;\n  cStack_210.conn_list.dtor = (curl_llist_dtor)cb_ptr;\n  cStack_210.conn_list.size = (size_t)pcVar23;\n  (**(code **)(pcVar22 + 0x4304c))();\n  pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n  if (pcVar6 != (connectbundle *)0x0) {\n    pcVar2 = ((pcVar6->conn_list).tail)->next;\n    while (pcVar2 == (curl_llist_element *)0x0) {\n      pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n      if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;\n      pcVar2 = ((pcVar6->conn_list).tail)->next;\n    }\n    pcVar6 = (connectbundle *)pcVar2->ptr;\n  }\nLAB_0006e834:\n  if ((Curl_easy *)cStack_210.conn_list.tail == (Curl_easy *)**(int **)(pcStack_218 + -0x713c)) {\n    return pcVar6;\n  }\n  pcVar22 = *(code **)(pcStack_218 + -0x74c8);\n  pcVar23 = Curl_conncache_extract_bundle;\n  pCVar15 = (Curl_easy *)cStack_210.conn_list.tail;\n  (*pcVar22)();\n  pCStack_24c = (Curl_easy *)**(undefined4 **)(pcVar22 + 0x43774);\n  pcStack_244 = &cStack_210;\n  pCStack_240 = pCVar12;\n  pCStack_23c = pCVar11;\n  pCStack_238 = pCVar19;\n  pCStack_234 = unaff_s4;\n  pCStack_230 = data;\n  pcStack_22c = pcVar23;\n  (**(code **)(pcVar22 + 0x42914))(&uStack_254);\n  pcVar2 = (pcVar3->conn_list).head;\n  iVar5 = -1;\n  if (pcVar2 == (curl_llist_element *)0x0) {\n    pCVar19 = (Curl_easy *)0x0;\n  }\n  else {\n    pCVar19 = (Curl_easy *)0x0;\n    do {\n      pCVar12 = (Curl_easy *)pcVar2->ptr;\n      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }\n      pcVar2 = pcVar2->next;\n    } while (pcVar2 != (curl_llist_element *)0x0);\n    if (pCVar19 != (Curl_easy *)0x0) {\n      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);\n      pcVar10 = (pCVar15->state).conn_cache;\n      pcVar10->num_conn = pcVar10->num_conn - 1;\n      pCVar19->next = pCVar15;\n    }\n  }\n  if (pCStack_24c != (Curl_easy *)**(int **)(pcVar22 + 0x43774)) {\n    pcVar22 = *(code **)(pcVar22 + 0x433e8);\n    pCVar13 = pCStack_24c;\n    (*pcVar22)();\n    pcStack_29c = (connectdata *)**(undefined4 **)(pcVar22 + 0x43634);\n    pcVar10 = (pCVar13->state).conn_cache;\n    uStack_298 = 0;\n    pCStack_294 = pCVar12;\n    pCStack_290 = pCVar19;\n    iStack_28c = iVar5;\n    pcStack_288 = pcVar3;\n    pCStack_284 = pCVar15;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar22 + 0x427d4))(&uStack_2b0);\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);\n    }\n    (**(code **)(pcVar22 + 0x42e48))(pcVar10,auStack_2a8);\n    iVar5 = (**(code **)(pcVar22 + 0x42e4c))(auStack_2a8);\n    pcVar3 = (connectbundle *)0x0;\n    if (iVar5 == 0) {\n      pcVar20 = (connectdata *)0x0;\n    }\n    else {\n      pcVar20 = (connectdata *)0x0;\n      iVar7 = -1;\n      do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);\n      if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }\n    }\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x4282c))(pCVar13,5);\n    }\n    if (pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)) {\n      pcVar22 = *(code **)(pcVar22 + 0x432a8);\n      pcVar20 = pcStack_29c;\n      (*pcVar22)();\n      pCVar12 = pcVar20->data;\n      uVar8 = pCVar12->multi->maxconnects;\n      if ((int)uVar8 < 0) {\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }\n      if (uVar8 == 0) {\n        pcVar18 = (connectdata *)0x0;\n      }\n      else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }\n      return (connectbundle *)(uint)(pcVar18 != pcVar20);\n    }\n    return (connectbundle *)pcVar20;\n  }\n  return (connectbundle *)pCVar19;\n}" { (declaration "Curl_easy **ppCVar1;" type_identifier (pointer_declarator "**ppCVar1" * (pointer_declarator "*ppCVar1" * identifier)) ;) (declaration "curl_llist_element *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "connectbundle *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "CURL *pCVar4;" type_identifier (pointer_declarator "*pCVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "connectbundle *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "conncache *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "Curl_easy *pCVar11;" type_identifier (pointer_declarator "*pCVar11" * identifier) ;) (declaration "Curl_easy *data;" type_identifier (pointer_declarator "*data" * identifier) ;) (declaration "Curl_easy *pCVar12;" type_identifier (pointer_declarator "*pCVar12" * identifier) ;) (declaration "Curl_easy *pCVar13;" type_identifier (pointer_declarator "*pCVar13" * identifier) ;) (declaration "Curl_easy *pCVar14;" type_identifier (pointer_declarator "*pCVar14" * identifier) ;) (declaration "Curl_easy *pCVar15;" type_identifier (pointer_declarator "*pCVar15" * identifier) ;) (declaration "Curl_easy *pCVar16;" type_identifier (pointer_declarator "*pCVar16" * identifier) ;) (declaration "Curl_easy *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "Curl_easy *cb_ptr;" type_identifier (pointer_declarator "*cb_ptr" * identifier) ;) (declaration "void *pvVar17;" primitive_type (pointer_declarator "*pvVar17" * identifier) ;) (declaration "connectdata *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "Curl_easy *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "Curl_easy *pCVar19;" type_identifier (pointer_declarator "*pCVar19" * identifier) ;) (declaration "Curl_easy *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "connectdata *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "Curl_easy *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined4 uStack_2b0;" type_identifier identifier ;) (declaration "undefined4 uStack_2ac;" type_identifier identifier ;) (declaration "undefined1 auStack_2a8 [12];" type_identifier (array_declarator "auStack_2a8 [12]" identifier [ number_literal ]) ;) (declaration "connectdata *pcStack_29c;" type_identifier (pointer_declarator "*pcStack_29c" * identifier) ;) (declaration "undefined4 uStack_298;" type_identifier identifier ;) (declaration "Curl_easy *pCStack_294;" type_identifier (pointer_declarator "*pCStack_294" * identifier) ;) (declaration "Curl_easy *pCStack_290;" type_identifier (pointer_declarator "*pCStack_290" * identifier) ;) (declaration "int iStack_28c;" primitive_type identifier ;) (declaration "connectbundle *pcStack_288;" type_identifier (pointer_declarator "*pcStack_288" * identifier) ;) (declaration "Curl_easy *pCStack_284;" type_identifier (pointer_declarator "*pCStack_284" * identifier) ;) (declaration "undefined1 *puStack_280;" type_identifier (pointer_declarator "*puStack_280" * identifier) ;) (declaration "undefined4 uStack_254;" type_identifier identifier ;) (declaration "undefined4 uStack_250;" type_identifier identifier ;) (declaration "Curl_easy *pCStack_24c;" type_identifier (pointer_declarator "*pCStack_24c" * identifier) ;) (declaration "connectbundle *pcStack_244;" type_identifier (pointer_declarator "*pcStack_244" * identifier) ;) (declaration "Curl_easy *pCStack_240;" type_identifier (pointer_declarator "*pCStack_240" * identifier) ;) (declaration "Curl_easy *pCStack_23c;" type_identifier (pointer_declarator "*pCStack_23c" * identifier) ;) (declaration "Curl_easy *pCStack_238;" type_identifier (pointer_declarator "*pCStack_238" * identifier) ;) (declaration "Curl_easy *pCStack_234;" type_identifier (pointer_declarator "*pCStack_234" * identifier) ;) (declaration "Curl_easy *pCStack_230;" type_identifier (pointer_declarator "*pCStack_230" * identifier) ;) (declaration "code *pcStack_22c;" type_identifier (pointer_declarator "*pcStack_22c" * identifier) ;) (declaration "code *pcStack_218;" type_identifier (pointer_declarator "*pcStack_218" * identifier) ;) (declaration "connectbundle cStack_210;" type_identifier identifier ;) (declaration "code *pcStack_1e8;" type_identifier (pointer_declarator "*pcStack_1e8" * identifier) ;) (declaration "undefined1 auStack_1e0 [12];" type_identifier (array_declarator "auStack_1e0 [12]" identifier [ number_literal ]) ;) (declaration "void *pvStack_1d4;" primitive_type (pointer_declarator "*pvStack_1d4" * identifier) ;) (declaration "Curl_easy *pCStack_1d0;" type_identifier (pointer_declarator "*pCStack_1d0" * identifier) ;) (declaration "Curl_easy *pCStack_1cc;" type_identifier (pointer_declarator "*pCStack_1cc" * identifier) ;) (declaration "Curl_easy *pCStack_1c8;" type_identifier (pointer_declarator "*pCStack_1c8" * identifier) ;) (declaration "Curl_easy *pCStack_1c4;" type_identifier (pointer_declarator "*pCStack_1c4" * identifier) ;) (declaration "Curl_easy *pCStack_1c0;" type_identifier (pointer_declarator "*pCStack_1c0" * identifier) ;) (declaration "Curl_easy *pCStack_1bc;" type_identifier (pointer_declarator "*pCStack_1bc" * identifier) ;) (declaration "connectbundle *pcStack_18c;" type_identifier (pointer_declarator "*pcStack_18c" * identifier) ;) (declaration "connectbundle *pcStack_184;" type_identifier (pointer_declarator "*pcStack_184" * identifier) ;) (declaration "Curl_easy *pCStack_180;" type_identifier (pointer_declarator "*pCStack_180" * identifier) ;) (declaration "curl_llist_element *pcStack_17c;" type_identifier (pointer_declarator "*pcStack_17c" * identifier) ;) (declaration "Curl_easy *pCStack_178;" type_identifier (pointer_declarator "*pCStack_178" * identifier) ;) (declaration "Curl_easy *pCStack_174;" type_identifier (pointer_declarator "*pCStack_174" * identifier) ;) (declaration "Curl_easy *pCStack_cc;" type_identifier (pointer_declarator "*pCStack_cc" * identifier) ;) (declaration "Curl_multi *pCStack_c8;" type_identifier (pointer_declarator "*pCStack_c8" * identifier) ;) (declaration "Curl_easy *pCStack_c4;" type_identifier (pointer_declarator "*pCStack_c4" * identifier) ;) (declaration "connectdata *pcStack_c0;" type_identifier (pointer_declarator "*pcStack_c0" * identifier) ;) (declaration "char key [128];" primitive_type (array_declarator "key [128]" identifier [ number_literal ]) ;) (expression_statement "pcVar2 = *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "pcVar2 = *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(curl_llist_element **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(curl_llist_element **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "curl_llist_element **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pCVar12 = (Curl_easy *)connc;" (assignment_expression "pCVar12 = (Curl_easy *)connc" identifier = (cast_expression "(Curl_easy *)connc" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (conn->data->share != (Curl_share *)0x0) {\n    pCVar12 = (Curl_easy *)&DAT_00000005;\n    Curl_share_lock(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }" if (parenthesized_expression "(conn->data->share != (Curl_share *)0x0)" ( (binary_expression "conn->data->share != (Curl_share *)0x0" (field_expression "conn->data->share" (field_expression "conn->data" identifier -> field_identifier) -> field_identifier) != (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pCVar12 = (Curl_easy *)&DAT_00000005;\n    Curl_share_lock(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }" { (expression_statement "pCVar12 = (Curl_easy *)&DAT_00000005;" (assignment_expression "pCVar12 = (Curl_easy *)&DAT_00000005" identifier = (cast_expression "(Curl_easy *)&DAT_00000005" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (expression_statement "Curl_share_lock(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);" (call_expression "Curl_share_lock(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE)" identifier (argument_list "(conn->data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE)" ( (field_expression "conn->data" identifier -> field_identifier) , identifier , identifier ))) ;) })) (expression_statement "pCVar15 = (Curl_easy *)0x80;" (assignment_expression "pCVar15 = (Curl_easy *)0x80" identifier = (cast_expression "(Curl_easy *)0x80" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (connc == (conncache *)0x0) {\n    pcVar3 = (connectbundle *)0x0;\n  }\n  else {\n    unaff_s1 = (Curl_easy *)key;\n    hashkey(conn,(char *)unaff_s1,0x80);\n    pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pCVar12 = unaff_s1;\n    pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc);\n  }" if (parenthesized_expression "(connc == (conncache *)0x0)" ( (binary_expression "connc == (conncache *)0x0" identifier == (cast_expression "(conncache *)0x0" ( (type_descriptor "conncache *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = (connectbundle *)0x0;\n  }" { (expression_statement "pcVar3 = (connectbundle *)0x0;" (assignment_expression "pcVar3 = (connectbundle *)0x0" identifier = (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    unaff_s1 = (Curl_easy *)key;\n    hashkey(conn,(char *)unaff_s1,0x80);\n    pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pCVar12 = unaff_s1;\n    pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc);\n  }" else (compound_statement "{\n    unaff_s1 = (Curl_easy *)key;\n    hashkey(conn,(char *)unaff_s1,0x80);\n    pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pCVar12 = unaff_s1;\n    pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc);\n  }" { (expression_statement "unaff_s1 = (Curl_easy *)key;" (assignment_expression "unaff_s1 = (Curl_easy *)key" identifier = (cast_expression "(Curl_easy *)key" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "hashkey(conn,(char *)unaff_s1,0x80);" (call_expression "hashkey(conn,(char *)unaff_s1,0x80)" identifier (argument_list "(conn,(char *)unaff_s1,0x80)" ( identifier , (cast_expression "(char *)unaff_s1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);" (assignment_expression "pCVar15 = (Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" identifier = (cast_expression "(Curl_easy *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_strlen_000b1e9c)" ( (pointer_expression "*(code *)PTR_strlen_000b1e9c" * (cast_expression "(code *)PTR_strlen_000b1e9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))))) ;) (expression_statement "pCVar12 = unaff_s1;" (assignment_expression "pCVar12 = unaff_s1" identifier = identifier) ;) (expression_statement "pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc);" (assignment_expression "pcVar3 = (connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc)" identifier = (cast_expression "(connectbundle *)(*(code *)PTR_Curl_hash_pick_000b11a8)(connc)" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_Curl_hash_pick_000b11a8)(connc)" (parenthesized_expression "(*(code *)PTR_Curl_hash_pick_000b11a8)" ( (pointer_expression "*(code *)PTR_Curl_hash_pick_000b11a8" * (cast_expression "(code *)PTR_Curl_hash_pick_000b11a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(connc)" ( identifier ))))) ;) }))) (if_statement "if (pcVar2 == *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar3;\n  }" if (parenthesized_expression "(pcVar2 == *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "pcVar2 == *(curl_llist_element **)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(curl_llist_element **)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(curl_llist_element **)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "curl_llist_element **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return pcVar3;\n  }" { (return_statement "return pcVar3;" return identifier ;) })) (expression_statement "puVar21 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_c0 = conn;" (assignment_expression "pcStack_c0 = conn" identifier = identifier) ;) (expression_statement "pCStack_c4 = unaff_s1;" (assignment_expression "pCStack_c4 = unaff_s1" identifier = identifier) ;) (expression_statement "pCStack_c8 = (Curl_multi *)connc;" (assignment_expression "pCStack_c8 = (Curl_multi *)connc" identifier = (cast_expression "(Curl_multi *)connc" ( (type_descriptor "Curl_multi *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pCStack_cc = (Curl_easy *)**(undefined4 **)(puVar21 + 0x43d78);" (assignment_expression "pCStack_cc = (Curl_easy *)**(undefined4 **)(puVar21 + 0x43d78)" identifier = (cast_expression "(Curl_easy *)**(undefined4 **)(puVar21 + 0x43d78)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar21 + 0x43d78)" * (pointer_expression "*(undefined4 **)(puVar21 + 0x43d78)" * (cast_expression "(undefined4 **)(puVar21 + 0x43d78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x43d78)" ( (binary_expression "puVar21 + 0x43d78" identifier + number_literal) ))))))) ;) (expression_statement "pCVar19 = pCVar12->next;" (assignment_expression "pCVar19 = pCVar12->next" identifier = (field_expression "pCVar12->next" identifier -> field_identifier)) ;) (expression_statement "pcVar3 = Curl_conncache_find_bundle((connectdata *)pCVar12,(pCVar19->state).conn_cache);" (assignment_expression "pcVar3 = Curl_conncache_find_bundle((connectdata *)pCVar12,(pCVar19->state).conn_cache)" identifier = (call_expression "Curl_conncache_find_bundle((connectdata *)pCVar12,(pCVar19->state).conn_cache)" identifier (argument_list "((connectdata *)pCVar12,(pCVar19->state).conn_cache)" ( (cast_expression "(connectdata *)pCVar12" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "(pCVar19->state).conn_cache" (parenthesized_expression "(pCVar19->state)" ( (field_expression "pCVar19->state" identifier -> field_identifier) )) . field_identifier) )))) ;) (if_statement "if (pcVar3 == (connectbundle *)0x0) {\n    pcVar3 = (connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18);\n    if (pcVar3 != (connectbundle *)0x0) {\n      pcVar3->num_connections = 0;\n      pcVar3->multiuse = 0;\n      (**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);\n      unaff_s4 = (Curl_easy *)&stack0xfffffeb4;\n      hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);\n      pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);\n      iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);\n      in_a3 = (Curl_easy *)&pCVar12->prev;\n      if (iVar5 != 0) goto LAB_0006e2c4;\n      bundle_destroy(pcVar3);\n    }\n    pcVar3 = (connectbundle *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    in_a3 = (Curl_easy *)&pCVar12->prev;\n    pCVar15 = pCVar12;\n    (**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail);\n    (pCVar12->set).proxyport = (long)pcVar3;\n    pcVar3->num_connections = pcVar3->num_connections + 1;\n    pCVar4 = (CURL *)pcVar2[2].prev;\n    pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1);\n    (pCVar12->msg).extmsg.easy_handle = pCVar4;\n    pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1);\n    pcVar3 = (connectbundle *)0x0;\n  }" if (parenthesized_expression "(pcVar3 == (connectbundle *)0x0)" ( (binary_expression "pcVar3 == (connectbundle *)0x0" identifier == (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = (connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18);\n    if (pcVar3 != (connectbundle *)0x0) {\n      pcVar3->num_connections = 0;\n      pcVar3->multiuse = 0;\n      (**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);\n      unaff_s4 = (Curl_easy *)&stack0xfffffeb4;\n      hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);\n      pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);\n      iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);\n      in_a3 = (Curl_easy *)&pCVar12->prev;\n      if (iVar5 != 0) goto LAB_0006e2c4;\n      bundle_destroy(pcVar3);\n    }\n    pcVar3 = (connectbundle *)0x1b;\n  }" { (expression_statement "pcVar3 = (connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18);" (assignment_expression "pcVar3 = (connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18)" identifier = (cast_expression "(connectbundle *)(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18)" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))(0x18)" (parenthesized_expression "(*(code *)**(undefined4 **)(puVar21 + 0x42f3c))" ( (pointer_expression "*(code *)**(undefined4 **)(puVar21 + 0x42f3c)" * (cast_expression "(code *)**(undefined4 **)(puVar21 + 0x42f3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar21 + 0x42f3c)" * (pointer_expression "*(undefined4 **)(puVar21 + 0x42f3c)" * (cast_expression "(undefined4 **)(puVar21 + 0x42f3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x42f3c)" ( (binary_expression "puVar21 + 0x42f3c" identifier + number_literal) ))))))) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (pcVar3 != (connectbundle *)0x0) {\n      pcVar3->num_connections = 0;\n      pcVar3->multiuse = 0;\n      (**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);\n      unaff_s4 = (Curl_easy *)&stack0xfffffeb4;\n      hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);\n      pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);\n      iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);\n      in_a3 = (Curl_easy *)&pCVar12->prev;\n      if (iVar5 != 0) goto LAB_0006e2c4;\n      bundle_destroy(pcVar3);\n    }" if (parenthesized_expression "(pcVar3 != (connectbundle *)0x0)" ( (binary_expression "pcVar3 != (connectbundle *)0x0" identifier != (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3->num_connections = 0;\n      pcVar3->multiuse = 0;\n      (**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);\n      unaff_s4 = (Curl_easy *)&stack0xfffffeb4;\n      hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);\n      pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);\n      iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);\n      in_a3 = (Curl_easy *)&pCVar12->prev;\n      if (iVar5 != 0) goto LAB_0006e2c4;\n      bundle_destroy(pcVar3);\n    }" { (expression_statement "pcVar3->num_connections = 0;" (assignment_expression "pcVar3->num_connections = 0" (field_expression "pcVar3->num_connections" identifier -> field_identifier) = number_literal) ;) (expression_statement "pcVar3->multiuse = 0;" (assignment_expression "pcVar3->multiuse = 0" (field_expression "pcVar3->multiuse" identifier -> field_identifier) = number_literal) ;) (expression_statement "(**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0);" (call_expression "(**(code **)(puVar21 + 0x43254))(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0)" (parenthesized_expression "(**(code **)(puVar21 + 0x43254))" ( (pointer_expression "**(code **)(puVar21 + 0x43254)" * (pointer_expression "*(code **)(puVar21 + 0x43254)" * (cast_expression "(code **)(puVar21 + 0x43254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x43254)" ( (binary_expression "puVar21 + 0x43254" identifier + number_literal) ))))) )) (argument_list "(&pcVar3->conn_list,*(int *)(puVar21 + 0x4351c) + -0x23e0)" ( (pointer_expression "&pcVar3->conn_list" & (field_expression "pcVar3->conn_list" identifier -> field_identifier)) , (binary_expression "*(int *)(puVar21 + 0x4351c) + -0x23e0" (pointer_expression "*(int *)(puVar21 + 0x4351c)" * (cast_expression "(int *)(puVar21 + 0x4351c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x4351c)" ( (binary_expression "puVar21 + 0x4351c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s4 = (Curl_easy *)&stack0xfffffeb4;" (assignment_expression "unaff_s4 = (Curl_easy *)&stack0xfffffeb4" identifier = (cast_expression "(Curl_easy *)&stack0xfffffeb4" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xfffffeb4" & identifier))) ;) (expression_statement "hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80);" (call_expression "hashkey((connectdata *)pCVar12,(char *)unaff_s4,0x80)" identifier (argument_list "((connectdata *)pCVar12,(char *)unaff_s4,0x80)" ( (cast_expression "(connectdata *)pCVar12" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)unaff_s4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4);" (assignment_expression "pCVar15 = (Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4)" identifier = (cast_expression "(Curl_easy *)(**(code **)(puVar21 + 0x43c40))(unaff_s4)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar21 + 0x43c40))(unaff_s4)" (parenthesized_expression "(**(code **)(puVar21 + 0x43c40))" ( (pointer_expression "**(code **)(puVar21 + 0x43c40)" * (pointer_expression "*(code **)(puVar21 + 0x43c40)" * (cast_expression "(code **)(puVar21 + 0x43c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x43c40)" ( (binary_expression "puVar21 + 0x43c40" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier ))))) ;) (expression_statement "iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3);" (assignment_expression "iVar5 = (**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3)" identifier = (call_expression "(**(code **)(puVar21 + 0x42f80))((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3)" (parenthesized_expression "(**(code **)(puVar21 + 0x42f80))" ( (pointer_expression "**(code **)(puVar21 + 0x42f80)" * (pointer_expression "*(code **)(puVar21 + 0x42f80)" * (cast_expression "(code **)(puVar21 + 0x42f80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x42f80)" ( (binary_expression "puVar21 + 0x42f80" identifier + number_literal) ))))) )) (argument_list "((pCVar19->state).conn_cache,unaff_s4,pCVar15,pcVar3)" ( (field_expression "(pCVar19->state).conn_cache" (parenthesized_expression "(pCVar19->state)" ( (field_expression "pCVar19->state" identifier -> field_identifier) )) . field_identifier) , identifier , identifier , identifier )))) ;) (expression_statement "in_a3 = (Curl_easy *)&pCVar12->prev;" (assignment_expression "in_a3 = (Curl_easy *)&pCVar12->prev" identifier = (cast_expression "(Curl_easy *)&pCVar12->prev" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar12->prev" & (field_expression "pCVar12->prev" identifier -> field_identifier)))) ;) (if_statement "if (iVar5 != 0) goto LAB_0006e2c4;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006e2c4;" goto statement_identifier ;)) (expression_statement "bundle_destroy(pcVar3);" (call_expression "bundle_destroy(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) })) (expression_statement "pcVar3 = (connectbundle *)0x1b;" (assignment_expression "pcVar3 = (connectbundle *)0x1b" identifier = (cast_expression "(connectbundle *)0x1b" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\nLAB_0006e2c4:\n    in_a3 = (Curl_easy *)&pCVar12->prev;\n    pCVar15 = pCVar12;\n    (**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail);\n    (pCVar12->set).proxyport = (long)pcVar3;\n    pcVar3->num_connections = pcVar3->num_connections + 1;\n    pCVar4 = (CURL *)pcVar2[2].prev;\n    pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1);\n    (pCVar12->msg).extmsg.easy_handle = pCVar4;\n    pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1);\n    pcVar3 = (connectbundle *)0x0;\n  }" else (compound_statement "{\nLAB_0006e2c4:\n    in_a3 = (Curl_easy *)&pCVar12->prev;\n    pCVar15 = pCVar12;\n    (**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail);\n    (pCVar12->set).proxyport = (long)pcVar3;\n    pcVar3->num_connections = pcVar3->num_connections + 1;\n    pCVar4 = (CURL *)pcVar2[2].prev;\n    pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1);\n    (pCVar12->msg).extmsg.easy_handle = pCVar4;\n    pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1);\n    pcVar3 = (connectbundle *)0x0;\n  }" { (labeled_statement "LAB_0006e2c4:\n    in_a3 = (Curl_easy *)&pCVar12->prev;" statement_identifier : (expression_statement "in_a3 = (Curl_easy *)&pCVar12->prev;" (assignment_expression "in_a3 = (Curl_easy *)&pCVar12->prev" identifier = (cast_expression "(Curl_easy *)&pCVar12->prev" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar12->prev" & (field_expression "pCVar12->prev" identifier -> field_identifier)))) ;)) (expression_statement "pCVar15 = pCVar12;" (assignment_expression "pCVar15 = pCVar12" identifier = identifier) ;) (expression_statement "(**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail);" (call_expression "(**(code **)(puVar21 + 0x43390))(&pcVar3->conn_list,(pcVar3->conn_list).tail)" (parenthesized_expression "(**(code **)(puVar21 + 0x43390))" ( (pointer_expression "**(code **)(puVar21 + 0x43390)" * (pointer_expression "*(code **)(puVar21 + 0x43390)" * (cast_expression "(code **)(puVar21 + 0x43390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x43390)" ( (binary_expression "puVar21 + 0x43390" identifier + number_literal) ))))) )) (argument_list "(&pcVar3->conn_list,(pcVar3->conn_list).tail)" ( (pointer_expression "&pcVar3->conn_list" & (field_expression "pcVar3->conn_list" identifier -> field_identifier)) , (field_expression "(pcVar3->conn_list).tail" (parenthesized_expression "(pcVar3->conn_list)" ( (field_expression "pcVar3->conn_list" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "(pCVar12->set).proxyport = (long)pcVar3;" (assignment_expression "(pCVar12->set).proxyport = (long)pcVar3" (field_expression "(pCVar12->set).proxyport" (parenthesized_expression "(pCVar12->set)" ( (field_expression "pCVar12->set" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(long)pcVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "pcVar3->num_connections = pcVar3->num_connections + 1;" (assignment_expression "pcVar3->num_connections = pcVar3->num_connections + 1" (field_expression "pcVar3->num_connections" identifier -> field_identifier) = (binary_expression "pcVar3->num_connections + 1" (field_expression "pcVar3->num_connections" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pCVar4 = (CURL *)pcVar2[2].prev;" (assignment_expression "pCVar4 = (CURL *)pcVar2[2].prev" identifier = (cast_expression "(CURL *)pcVar2[2].prev" ( (type_descriptor "CURL *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pcVar2[2].prev" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1);" (assignment_expression "pcVar2[2].prev = (curl_llist_element *)((int)&pCVar4->next + 1)" (field_expression "pcVar2[2].prev" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(curl_llist_element *)((int)&pCVar4->next + 1)" ( (type_descriptor "curl_llist_element *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pCVar4->next + 1)" ( (binary_expression "(int)&pCVar4->next + 1" (cast_expression "(int)&pCVar4->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pCVar4->next" & (field_expression "pCVar4->next" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "(pCVar12->msg).extmsg.easy_handle = pCVar4;" (assignment_expression "(pCVar12->msg).extmsg.easy_handle = pCVar4" (field_expression "(pCVar12->msg).extmsg.easy_handle" (field_expression "(pCVar12->msg).extmsg" (parenthesized_expression "(pCVar12->msg)" ( (field_expression "pCVar12->msg" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1);" (assignment_expression "pcVar2[2].ptr = (void *)((int)pcVar2[2].ptr + 1)" (field_expression "pcVar2[2].ptr" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(void *)((int)pcVar2[2].ptr + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar2[2].ptr + 1)" ( (binary_expression "(int)pcVar2[2].ptr + 1" (cast_expression "(int)pcVar2[2].ptr" ( (type_descriptor "int" primitive_type) ) (field_expression "pcVar2[2].ptr" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) . field_identifier)) + number_literal) )))) ;) (expression_statement "pcVar3 = (connectbundle *)0x0;" (assignment_expression "pcVar3 = (connectbundle *)0x0" identifier = (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pCVar13 = (Curl_easy *)&DAT_00000005;" (assignment_expression "pCVar13 = (Curl_easy *)&DAT_00000005" identifier = (cast_expression "(Curl_easy *)&DAT_00000005" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (if_statement "if (pCVar19->share != (Curl_share *)0x0) {\n    Curl_share_unlock(pCVar19,CURL_LOCK_DATA_CONNECT);\n  }" if (parenthesized_expression "(pCVar19->share != (Curl_share *)0x0)" ( (binary_expression "pCVar19->share != (Curl_share *)0x0" (field_expression "pCVar19->share" identifier -> field_identifier) != (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    Curl_share_unlock(pCVar19,CURL_LOCK_DATA_CONNECT);\n  }" { (expression_statement "Curl_share_unlock(pCVar19,CURL_LOCK_DATA_CONNECT);" (call_expression "Curl_share_unlock(pCVar19,CURL_LOCK_DATA_CONNECT)" identifier (argument_list "(pCVar19,CURL_LOCK_DATA_CONNECT)" ( identifier , identifier ))) ;) })) (if_statement "if (pCStack_cc == (Curl_easy *)**(int **)(puVar21 + 0x43d78)) {\n    return pcVar3;\n  }" if (parenthesized_expression "(pCStack_cc == (Curl_easy *)**(int **)(puVar21 + 0x43d78))" ( (binary_expression "pCStack_cc == (Curl_easy *)**(int **)(puVar21 + 0x43d78)" identifier == (cast_expression "(Curl_easy *)**(int **)(puVar21 + 0x43d78)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puVar21 + 0x43d78)" * (pointer_expression "*(int **)(puVar21 + 0x43d78)" * (cast_expression "(int **)(puVar21 + 0x43d78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x43d78)" ( (binary_expression "puVar21 + 0x43d78" identifier + number_literal) ))))))) )) (compound_statement "{\n    return pcVar3;\n  }" { (return_statement "return pcVar3;" return identifier ;) })) (expression_statement "pcVar22 = *(code **)(puVar21 + 0x439ec);" (assignment_expression "pcVar22 = *(code **)(puVar21 + 0x439ec)" identifier = (pointer_expression "*(code **)(puVar21 + 0x439ec)" * (cast_expression "(code **)(puVar21 + 0x439ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x439ec)" ( (binary_expression "puVar21 + 0x439ec" identifier + number_literal) ))))) ;) (expression_statement "pCVar11 = pCStack_cc;" (assignment_expression "pCVar11 = pCStack_cc" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_18c = (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);" (assignment_expression "pcStack_18c = (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)" identifier = (cast_expression "(connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar22 + 0x43ba0)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x43ba0)" * (cast_expression "(undefined4 **)(pcVar22 + 0x43ba0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43ba0)" ( (binary_expression "pcVar22 + 0x43ba0" identifier + number_literal) ))))))) ;) (expression_statement "cb_ptr = (Curl_easy *)(pCVar13->set).proxyport;" (assignment_expression "cb_ptr = (Curl_easy *)(pCVar13->set).proxyport" identifier = (cast_expression "(Curl_easy *)(pCVar13->set).proxyport" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pCVar13->set).proxyport" (parenthesized_expression "(pCVar13->set)" ( (field_expression "pCVar13->set" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "data = pCVar11;" (assignment_expression "data = pCVar11" identifier = identifier) ;) (expression_statement "pCVar14 = pCVar13;" (assignment_expression "pCVar14 = pCVar13" identifier = identifier) ;) (expression_statement "pCVar16 = pCVar15;" (assignment_expression "pCVar16 = pCVar15" identifier = identifier) ;) (expression_statement "pcStack_184 = pcVar3;" (assignment_expression "pcStack_184 = pcVar3" identifier = identifier) ;) (expression_statement "pCStack_180 = pCVar12;" (assignment_expression "pCStack_180 = pCVar12" identifier = identifier) ;) (expression_statement "pcStack_17c = pcVar2;" (assignment_expression "pcStack_17c = pcVar2" identifier = identifier) ;) (expression_statement "pCStack_178 = pCVar19;" (assignment_expression "pCStack_178 = pCVar19" identifier = identifier) ;) (expression_statement "pCStack_174 = unaff_s4;" (assignment_expression "pCStack_174 = unaff_s4" identifier = identifier) ;) (if_statement "if (cb_ptr == (Curl_easy *)0x0) goto LAB_0006e510;" if (parenthesized_expression "(cb_ptr == (Curl_easy *)0x0)" ( (binary_expression "cb_ptr == (Curl_easy *)0x0" identifier == (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e510;" goto statement_identifier ;)) (expression_statement "pCVar19 = (Curl_easy *)(pCVar11->state).conn_cache;" (assignment_expression "pCVar19 = (Curl_easy *)(pCVar11->state).conn_cache" identifier = (cast_expression "(Curl_easy *)(pCVar11->state).conn_cache" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pCVar11->state).conn_cache" (parenthesized_expression "(pCVar11->state)" ( (field_expression "pCVar11->state" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0)) {\n    Curl_share_lock(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }" if (parenthesized_expression "((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0))" ( (binary_expression "(pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0)" (parenthesized_expression "(pCVar15 != (Curl_easy *)0x0)" ( (binary_expression "pCVar15 != (Curl_easy *)0x0" identifier != (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0)" ( (comma_expression "pCVar16 = (Curl_easy *)0x2, pCVar11->share != (Curl_share *)0x0" (assignment_expression "pCVar16 = (Curl_easy *)0x2" identifier = (cast_expression "(Curl_easy *)0x2" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "pCVar11->share != (Curl_share *)0x0" (field_expression "pCVar11->share" identifier -> field_identifier) != (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    Curl_share_lock(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n  }" { (expression_statement "Curl_share_lock(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);" (call_expression "Curl_share_lock(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE)" identifier (argument_list "(pCVar11,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "data = cb_ptr;" (assignment_expression "data = cb_ptr" identifier = identifier) ;) (expression_statement "bundle_remove_conn((connectbundle *)cb_ptr,(connectdata *)pCVar13);" (call_expression "bundle_remove_conn((connectbundle *)cb_ptr,(connectdata *)pCVar13)" identifier (argument_list "((connectbundle *)cb_ptr,(connectdata *)pCVar13)" ( (cast_expression "(connectbundle *)cb_ptr" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(connectdata *)pCVar13" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if ((cb_ptr->prev == (Curl_easy *)0x0) &&\n     (unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0)) {\n    pCVar14 = unaff_s5;\n    (**(code **)(pcVar22 + 0x433b4))(pCVar19);\n    data = unaff_s5;\n    iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n    if (iVar5 != 0) {\n      pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      while (cb_ptr != pCVar12) {\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }\n      pCVar16 = *(Curl_easy **)(iVar5 + 0x10);\n      pCVar14 = (Curl_easy *)(iVar5 + 0x14);\n      data = pCVar19;\n      (**(code **)(pcVar22 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    (pCVar13->set).proxyport = 0;\nLAB_0006e4dc:\n    (pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1);\n  }\n  else {\nLAB_0006e4d4:\n    (pCVar13->set).proxyport = 0;\n    if (pCVar19 != (Curl_easy *)0x0) goto LAB_0006e4dc;\n  }" if (parenthesized_expression "((cb_ptr->prev == (Curl_easy *)0x0) &&\n     (unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0))" ( (binary_expression "(cb_ptr->prev == (Curl_easy *)0x0) &&\n     (unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0)" (parenthesized_expression "(cb_ptr->prev == (Curl_easy *)0x0)" ( (binary_expression "cb_ptr->prev == (Curl_easy *)0x0" (field_expression "cb_ptr->prev" identifier -> field_identifier) == (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0)" ( (comma_expression "unaff_s5 = (Curl_easy *)&stack0xfffffe68, pCVar19 != (Curl_easy *)0x0" (assignment_expression "unaff_s5 = (Curl_easy *)&stack0xfffffe68" identifier = (cast_expression "(Curl_easy *)&stack0xfffffe68" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xfffffe68" & identifier))) , (binary_expression "pCVar19 != (Curl_easy *)0x0" identifier != (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    pCVar14 = unaff_s5;\n    (**(code **)(pcVar22 + 0x433b4))(pCVar19);\n    data = unaff_s5;\n    iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n    if (iVar5 != 0) {\n      pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      while (cb_ptr != pCVar12) {\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }\n      pCVar16 = *(Curl_easy **)(iVar5 + 0x10);\n      pCVar14 = (Curl_easy *)(iVar5 + 0x14);\n      data = pCVar19;\n      (**(code **)(pcVar22 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    (pCVar13->set).proxyport = 0;\nLAB_0006e4dc:\n    (pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1);\n  }" { (expression_statement "pCVar14 = unaff_s5;" (assignment_expression "pCVar14 = unaff_s5" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar22 + 0x433b4))(pCVar19);" (call_expression "(**(code **)(pcVar22 + 0x433b4))(pCVar19)" (parenthesized_expression "(**(code **)(pcVar22 + 0x433b4))" ( (pointer_expression "**(code **)(pcVar22 + 0x433b4)" * (pointer_expression "*(code **)(pcVar22 + 0x433b4)" * (cast_expression "(code **)(pcVar22 + 0x433b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x433b4)" ( (binary_expression "pcVar22 + 0x433b4" identifier + number_literal) ))))) )) (argument_list "(pCVar19)" ( identifier ))) ;) (expression_statement "data = unaff_s5;" (assignment_expression "data = unaff_s5" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(pcVar22 + 0x433b8))();" (assignment_expression "iVar5 = (**(code **)(pcVar22 + 0x433b8))()" identifier = (call_expression "(**(code **)(pcVar22 + 0x433b8))()" (parenthesized_expression "(**(code **)(pcVar22 + 0x433b8))" ( (pointer_expression "**(code **)(pcVar22 + 0x433b8)" * (pointer_expression "*(code **)(pcVar22 + 0x433b8)" * (cast_expression "(code **)(pcVar22 + 0x433b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x433b8)" ( (binary_expression "pcVar22 + 0x433b8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) {\n      pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      while (cb_ptr != pCVar12) {\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }\n      pCVar16 = *(Curl_easy **)(iVar5 + 0x10);\n      pCVar14 = (Curl_easy *)(iVar5 + 0x14);\n      data = pCVar19;\n      (**(code **)(pcVar22 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      while (cb_ptr != pCVar12) {\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }\n      pCVar16 = *(Curl_easy **)(iVar5 + 0x10);\n      pCVar14 = (Curl_easy *)(iVar5 + 0x14);\n      data = pCVar19;\n      (**(code **)(pcVar22 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }" { (expression_statement "pCVar12 = *(Curl_easy **)(iVar5 + 0xc);" (assignment_expression "pCVar12 = *(Curl_easy **)(iVar5 + 0xc)" identifier = (pointer_expression "*(Curl_easy **)(iVar5 + 0xc)" * (cast_expression "(Curl_easy **)(iVar5 + 0xc)" ( (type_descriptor "Curl_easy **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while (cb_ptr != pCVar12) {\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }" while (parenthesized_expression "(cb_ptr != pCVar12)" ( (binary_expression "cb_ptr != pCVar12" identifier != identifier) )) (compound_statement "{\n        data = unaff_s5;\n        iVar5 = (**(code **)(pcVar22 + 0x433b8))();\n        if (iVar5 == 0) goto LAB_0006e5d4;\n        pCVar12 = *(Curl_easy **)(iVar5 + 0xc);\n      }" { (expression_statement "data = unaff_s5;" (assignment_expression "data = unaff_s5" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(pcVar22 + 0x433b8))();" (assignment_expression "iVar5 = (**(code **)(pcVar22 + 0x433b8))()" identifier = (call_expression "(**(code **)(pcVar22 + 0x433b8))()" (parenthesized_expression "(**(code **)(pcVar22 + 0x433b8))" ( (pointer_expression "**(code **)(pcVar22 + 0x433b8)" * (pointer_expression "*(code **)(pcVar22 + 0x433b8)" * (cast_expression "(code **)(pcVar22 + 0x433b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x433b8)" ( (binary_expression "pcVar22 + 0x433b8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0006e5d4;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006e5d4;" goto statement_identifier ;)) (expression_statement "pCVar12 = *(Curl_easy **)(iVar5 + 0xc);" (assignment_expression "pCVar12 = *(Curl_easy **)(iVar5 + 0xc)" identifier = (pointer_expression "*(Curl_easy **)(iVar5 + 0xc)" * (cast_expression "(Curl_easy **)(iVar5 + 0xc)" ( (type_descriptor "Curl_easy **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "pCVar16 = *(Curl_easy **)(iVar5 + 0x10);" (assignment_expression "pCVar16 = *(Curl_easy **)(iVar5 + 0x10)" identifier = (pointer_expression "*(Curl_easy **)(iVar5 + 0x10)" * (cast_expression "(Curl_easy **)(iVar5 + 0x10)" ( (type_descriptor "Curl_easy **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pCVar14 = (Curl_easy *)(iVar5 + 0x14);" (assignment_expression "pCVar14 = (Curl_easy *)(iVar5 + 0x14)" identifier = (cast_expression "(Curl_easy *)(iVar5 + 0x14)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) ;) (expression_statement "data = pCVar19;" (assignment_expression "data = pCVar19" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar22 + 0x42d7c))();" (call_expression "(**(code **)(pcVar22 + 0x42d7c))()" (parenthesized_expression "(**(code **)(pcVar22 + 0x42d7c))" ( (pointer_expression "**(code **)(pcVar22 + 0x42d7c)" * (pointer_expression "*(code **)(pcVar22 + 0x42d7c)" * (cast_expression "(code **)(pcVar22 + 0x42d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42d7c)" ( (binary_expression "pcVar22 + 0x42d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0006e4d4;" goto statement_identifier ;) })) (labeled_statement "LAB_0006e5d4:\n    (pCVar13->set).proxyport = 0;" statement_identifier : (expression_statement "(pCVar13->set).proxyport = 0;" (assignment_expression "(pCVar13->set).proxyport = 0" (field_expression "(pCVar13->set).proxyport" (parenthesized_expression "(pCVar13->set)" ( (field_expression "pCVar13->set" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) (labeled_statement "LAB_0006e4dc:\n    (pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1);" statement_identifier : (expression_statement "(pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1);" (assignment_expression "(pCVar19->pipeline_queue).ptr = (void *)((int)(pCVar19->pipeline_queue).ptr + -1)" (field_expression "(pCVar19->pipeline_queue).ptr" (parenthesized_expression "(pCVar19->pipeline_queue)" ( (field_expression "pCVar19->pipeline_queue" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(void *)((int)(pCVar19->pipeline_queue).ptr + -1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(pCVar19->pipeline_queue).ptr + -1)" ( (binary_expression "(int)(pCVar19->pipeline_queue).ptr + -1" (cast_expression "(int)(pCVar19->pipeline_queue).ptr" ( (type_descriptor "int" primitive_type) ) (field_expression "(pCVar19->pipeline_queue).ptr" (parenthesized_expression "(pCVar19->pipeline_queue)" ( (field_expression "pCVar19->pipeline_queue" identifier -> field_identifier) )) . field_identifier)) + number_literal) )))) ;)) }) (else_clause "else {\nLAB_0006e4d4:\n    (pCVar13->set).proxyport = 0;\n    if (pCVar19 != (Curl_easy *)0x0) goto LAB_0006e4dc;\n  }" else (compound_statement "{\nLAB_0006e4d4:\n    (pCVar13->set).proxyport = 0;\n    if (pCVar19 != (Curl_easy *)0x0) goto LAB_0006e4dc;\n  }" { (labeled_statement "LAB_0006e4d4:\n    (pCVar13->set).proxyport = 0;" statement_identifier : (expression_statement "(pCVar13->set).proxyport = 0;" (assignment_expression "(pCVar13->set).proxyport = 0" (field_expression "(pCVar13->set).proxyport" (parenthesized_expression "(pCVar13->set)" ( (field_expression "pCVar13->set" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) (if_statement "if (pCVar19 != (Curl_easy *)0x0) goto LAB_0006e4dc;" if (parenthesized_expression "(pCVar19 != (Curl_easy *)0x0)" ( (binary_expression "pCVar19 != (Curl_easy *)0x0" identifier != (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e4dc;" goto statement_identifier ;)) }))) (expression_statement "pCVar13->next = (Curl_easy *)0x0;" (assignment_expression "pCVar13->next = (Curl_easy *)0x0" (field_expression "pCVar13->next" identifier -> field_identifier) = (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pCVar12 = pCVar13;" (assignment_expression "pCVar12 = pCVar13" identifier = identifier) ;) (expression_statement "unaff_s4 = pCVar15;" (assignment_expression "unaff_s4 = pCVar15" identifier = identifier) ;) (if_statement "if ((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0)) {\n    data = pCVar11;\n    Curl_share_unlock(pCVar11,CURL_LOCK_DATA_CONNECT);\n  }" if (parenthesized_expression "((pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0))" ( (binary_expression "(pCVar15 != (Curl_easy *)0x0) &&\n     (pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0)" (parenthesized_expression "(pCVar15 != (Curl_easy *)0x0)" ( (binary_expression "pCVar15 != (Curl_easy *)0x0" identifier != (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0)" ( (comma_expression "pCVar14 = (Curl_easy *)&DAT_00000005, pCVar11->share != (Curl_share *)0x0" (assignment_expression "pCVar14 = (Curl_easy *)&DAT_00000005" identifier = (cast_expression "(Curl_easy *)&DAT_00000005" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) , (binary_expression "pCVar11->share != (Curl_share *)0x0" (field_expression "pCVar11->share" identifier -> field_identifier) != (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    data = pCVar11;\n    Curl_share_unlock(pCVar11,CURL_LOCK_DATA_CONNECT);\n  }" { (expression_statement "data = pCVar11;" (assignment_expression "data = pCVar11" identifier = identifier) ;) (expression_statement "Curl_share_unlock(pCVar11,CURL_LOCK_DATA_CONNECT);" (call_expression "Curl_share_unlock(pCVar11,CURL_LOCK_DATA_CONNECT)" identifier (argument_list "(pCVar11,CURL_LOCK_DATA_CONNECT)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_0006e510:\n  if (pcStack_18c == (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)) {\n    return (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  }" statement_identifier : (if_statement "if (pcStack_18c == (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)) {\n    return (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  }" if (parenthesized_expression "(pcStack_18c == (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0))" ( (binary_expression "pcStack_18c == (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)" identifier == (cast_expression "(connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar22 + 0x43ba0)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x43ba0)" * (cast_expression "(undefined4 **)(pcVar22 + 0x43ba0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43ba0)" ( (binary_expression "pcVar22 + 0x43ba0" identifier + number_literal) ))))))) )) (compound_statement "{\n    return (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);\n  }" { (return_statement "return (connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0);" return (cast_expression "(connectbundle *)**(undefined4 **)(pcVar22 + 0x43ba0)" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar22 + 0x43ba0)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x43ba0)" * (cast_expression "(undefined4 **)(pcVar22 + 0x43ba0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43ba0)" ( (binary_expression "pcVar22 + 0x43ba0" identifier + number_literal) )))))) ;) }))) (expression_statement "pcVar22 = *(code **)(pcVar22 + 0x43814);" (assignment_expression "pcVar22 = *(code **)(pcVar22 + 0x43814)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x43814)" * (cast_expression "(code **)(pcVar22 + 0x43814)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43814)" ( (binary_expression "pcVar22 + 0x43814" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pCStack_1bc = unaff_s5;" (assignment_expression "pCStack_1bc = unaff_s5" identifier = identifier) ;) (expression_statement "pCStack_1c0 = unaff_s4;" (assignment_expression "pCStack_1c0 = unaff_s4" identifier = identifier) ;) (expression_statement "pCStack_1c4 = pCVar19;" (assignment_expression "pCStack_1c4 = pCVar19" identifier = identifier) ;) (expression_statement "pCStack_1c8 = pCVar11;" (assignment_expression "pCStack_1c8 = pCVar11" identifier = identifier) ;) (expression_statement "pCStack_1cc = pCVar12;" (assignment_expression "pCStack_1cc = pCVar12" identifier = identifier) ;) (expression_statement "pCStack_1d0 = cb_ptr;" (assignment_expression "pCStack_1d0 = cb_ptr" identifier = identifier) ;) (expression_statement "pcStack_1e8 = pcVar22 + 0x4ab28;" (assignment_expression "pcStack_1e8 = pcVar22 + 0x4ab28" identifier = (binary_expression "pcVar22 + 0x4ab28" identifier + number_literal)) ;) (expression_statement "pvStack_1d4 = (void *)**(int **)(pcVar22 + 0x439ec);" (assignment_expression "pvStack_1d4 = (void *)**(int **)(pcVar22 + 0x439ec)" identifier = (cast_expression "(void *)**(int **)(pcVar22 + 0x439ec)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar22 + 0x439ec)" * (pointer_expression "*(int **)(pcVar22 + 0x439ec)" * (cast_expression "(int **)(pcVar22 + 0x439ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x439ec)" ( (binary_expression "pcVar22 + 0x439ec" identifier + number_literal) ))))))) ;) (if_statement "if (pCVar14 == (Curl_easy *)0x0) {\n    pcVar3 = (connectbundle *)0x0;\n  }\n  else {\n    if (data->share != (Curl_share *)0x0) {\n      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n    }\n    pCVar19 = (Curl_easy *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19);\n    unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19);\n    cb_ptr = pCVar14;\n    pCVar11 = in_a3;\n    pCVar12 = pCVar16;\n    if (unaff_s4 != (Curl_easy *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pCVar19 = (Curl_easy *)0x1;\n      do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);\n    }\n    if (data->share == (Curl_share *)0x0) {\n      pcVar3 = (connectbundle *)0x0;\n    }\n    else {\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }\n  }" if (parenthesized_expression "(pCVar14 == (Curl_easy *)0x0)" ( (binary_expression "pCVar14 == (Curl_easy *)0x0" identifier == (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = (connectbundle *)0x0;\n  }" { (expression_statement "pcVar3 = (connectbundle *)0x0;" (assignment_expression "pcVar3 = (connectbundle *)0x0" identifier = (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (data->share != (Curl_share *)0x0) {\n      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n    }\n    pCVar19 = (Curl_easy *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19);\n    unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19);\n    cb_ptr = pCVar14;\n    pCVar11 = in_a3;\n    pCVar12 = pCVar16;\n    if (unaff_s4 != (Curl_easy *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pCVar19 = (Curl_easy *)0x1;\n      do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);\n    }\n    if (data->share == (Curl_share *)0x0) {\n      pcVar3 = (connectbundle *)0x0;\n    }\n    else {\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }\n  }" else (compound_statement "{\n    if (data->share != (Curl_share *)0x0) {\n      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n    }\n    pCVar19 = (Curl_easy *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19);\n    unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19);\n    cb_ptr = pCVar14;\n    pCVar11 = in_a3;\n    pCVar12 = pCVar16;\n    if (unaff_s4 != (Curl_easy *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pCVar19 = (Curl_easy *)0x1;\n      do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);\n    }\n    if (data->share == (Curl_share *)0x0) {\n      pcVar3 = (connectbundle *)0x0;\n    }\n    else {\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }\n  }" { (if_statement "if (data->share != (Curl_share *)0x0) {\n      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n    }" if (parenthesized_expression "(data->share != (Curl_share *)0x0)" ( (binary_expression "data->share != (Curl_share *)0x0" (field_expression "data->share" identifier -> field_identifier) != (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);\n    }" { (expression_statement "Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE);" (call_expression "Curl_share_lock(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE)" identifier (argument_list "(data,CURL_LOCK_DATA_CONNECT,CURL_LOCK_ACCESS_SINGLE)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pCVar19 = (Curl_easy *)auStack_1e0;" (assignment_expression "pCVar19 = (Curl_easy *)auStack_1e0" identifier = (cast_expression "(Curl_easy *)auStack_1e0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19);" (call_expression "(**(code **)(pcStack_1e8 + -0x7928))(pCVar14,pCVar19)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7928))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7928)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7928)" * (cast_expression "(code **)(pcStack_1e8 + -0x7928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7928)" ( (binary_expression "pcStack_1e8 + -0x7928" identifier + number_literal) ))))) )) (argument_list "(pCVar14,pCVar19)" ( identifier , identifier ))) ;) (expression_statement "unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19);" (assignment_expression "unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19)" identifier = (cast_expression "(Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(pCVar19)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e8 + -0x7924))(pCVar19)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7924)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7924)" * (cast_expression "(code **)(pcStack_1e8 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7924)" ( (binary_expression "pcStack_1e8 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(pCVar19)" ( identifier ))))) ;) (expression_statement "cb_ptr = pCVar14;" (assignment_expression "cb_ptr = pCVar14" identifier = identifier) ;) (expression_statement "pCVar11 = in_a3;" (assignment_expression "pCVar11 = in_a3" identifier = identifier) ;) (expression_statement "pCVar12 = pCVar16;" (assignment_expression "pCVar12 = pCVar16" identifier = identifier) ;) (if_statement "if (unaff_s4 != (Curl_easy *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pCVar19 = (Curl_easy *)0x1;\n      do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);\n    }" if (parenthesized_expression "(unaff_s4 != (Curl_easy *)0x0)" ( (binary_expression "unaff_s4 != (Curl_easy *)0x0" identifier != (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s6 = auStack_1e0;\n      pCVar19 = (Curl_easy *)0x1;\n      do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);\n    }" { (expression_statement "unaff_s6 = auStack_1e0;" (assignment_expression "unaff_s6 = auStack_1e0" identifier = identifier) ;) (expression_statement "pCVar19 = (Curl_easy *)0x1;" (assignment_expression "pCVar19 = (Curl_easy *)0x1" identifier = (cast_expression "(Curl_easy *)0x1" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      } while (unaff_s4 != (Curl_easy *)0x0);" do (compound_statement "{\n        pvVar17 = (unaff_s4->connect_queue).ptr;\n        unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);\n        while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        cb_ptr = (Curl_easy *)0x0;\n      }" { (expression_statement "pvVar17 = (unaff_s4->connect_queue).ptr;" (assignment_expression "pvVar17 = (unaff_s4->connect_queue).ptr" identifier = (field_expression "(unaff_s4->connect_queue).ptr" (parenthesized_expression "(unaff_s4->connect_queue)" ( (field_expression "unaff_s4->connect_queue" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);" (assignment_expression "unaff_s4 = (Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" identifier = (cast_expression "(Curl_easy *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7924)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7924)" * (cast_expression "(code **)(pcStack_1e8 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7924)" ( (binary_expression "pcStack_1e8 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( identifier ))))) ;) (expression_statement "cb_ptr = *(Curl_easy **)((int)pvVar17 + 8);" (assignment_expression "cb_ptr = *(Curl_easy **)((int)pvVar17 + 8)" identifier = (pointer_expression "*(Curl_easy **)((int)pvVar17 + 8)" * (cast_expression "(Curl_easy **)((int)pvVar17 + 8)" ( (type_descriptor "Curl_easy **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar17 + 8)" ( (binary_expression "(int)pvVar17 + 8" (cast_expression "(int)pvVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (while_statement "while (cb_ptr != (Curl_easy *)0x0) {\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }" while (parenthesized_expression "(cb_ptr != (Curl_easy *)0x0)" ( (binary_expression "cb_ptr != (Curl_easy *)0x0" identifier != (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ppCVar1 = &cb_ptr->next;\n          cb_ptr = (Curl_easy *)cb_ptr->conn;\n          iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);\n          if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }" { (expression_statement "ppCVar1 = &cb_ptr->next;" (assignment_expression "ppCVar1 = &cb_ptr->next" identifier = (pointer_expression "&cb_ptr->next" & (field_expression "cb_ptr->next" identifier -> field_identifier))) ;) (expression_statement "cb_ptr = (Curl_easy *)cb_ptr->conn;" (assignment_expression "cb_ptr = (Curl_easy *)cb_ptr->conn" identifier = (cast_expression "(Curl_easy *)cb_ptr->conn" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cb_ptr->conn" identifier -> field_identifier))) ;) (expression_statement "iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16);" (assignment_expression "iVar5 = (*(code *)in_a3)(*ppCVar1,pCVar16)" identifier = (call_expression "(*(code *)in_a3)(*ppCVar1,pCVar16)" (parenthesized_expression "(*(code *)in_a3)" ( (pointer_expression "*(code *)in_a3" * (cast_expression "(code *)in_a3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*ppCVar1,pCVar16)" ( (pointer_expression "*ppCVar1" * identifier) , identifier )))) ;) (if_statement "if (iVar5 == 1) {\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n            if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }\n            goto LAB_0006e740;\n          }" { (if_statement "if (data->share == (Curl_share *)0x0) {\n              pcVar3 = (connectbundle *)0x1;\n            }\n            else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }" if (parenthesized_expression "(data->share == (Curl_share *)0x0)" ( (binary_expression "data->share == (Curl_share *)0x0" (field_expression "data->share" identifier -> field_identifier) == (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar3 = (connectbundle *)0x1;\n            }" { (expression_statement "pcVar3 = (connectbundle *)0x1;" (assignment_expression "pcVar3 = (connectbundle *)0x1" identifier = (cast_expression "(connectbundle *)0x1" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }" else (compound_statement "{\n              Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n              pcVar3 = (connectbundle *)0x1;\n            }" { (expression_statement "Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);" (call_expression "Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT)" identifier (argument_list "(data,CURL_LOCK_DATA_CONNECT)" ( identifier , identifier ))) ;) (expression_statement "pcVar3 = (connectbundle *)0x1;" (assignment_expression "pcVar3 = (connectbundle *)0x1" identifier = (cast_expression "(connectbundle *)0x1" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0006e740;" goto statement_identifier ;) })) })) (expression_statement "cb_ptr = (Curl_easy *)0x0;" (assignment_expression "cb_ptr = (Curl_easy *)0x0" identifier = (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) while (parenthesized_expression "(unaff_s4 != (Curl_easy *)0x0)" ( (binary_expression "unaff_s4 != (Curl_easy *)0x0" identifier != (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (data->share == (Curl_share *)0x0) {\n      pcVar3 = (connectbundle *)0x0;\n    }\n    else {\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }" if (parenthesized_expression "(data->share == (Curl_share *)0x0)" ( (binary_expression "data->share == (Curl_share *)0x0" (field_expression "data->share" identifier -> field_identifier) == (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar3 = (connectbundle *)0x0;\n    }" { (expression_statement "pcVar3 = (connectbundle *)0x0;" (assignment_expression "pcVar3 = (connectbundle *)0x0" identifier = (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }" else (compound_statement "{\n      Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);\n      pcVar3 = (connectbundle *)0x0;\n    }" { (expression_statement "Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT);" (call_expression "Curl_share_unlock(data,CURL_LOCK_DATA_CONNECT)" identifier (argument_list "(data,CURL_LOCK_DATA_CONNECT)" ( identifier , identifier ))) ;) (expression_statement "pcVar3 = (connectbundle *)0x0;" (assignment_expression "pcVar3 = (connectbundle *)0x0" identifier = (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_0006e740:\n  if (pvStack_1d4 == (void *)**(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar3;\n  }" statement_identifier : (if_statement "if (pvStack_1d4 == (void *)**(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar3;\n  }" if (parenthesized_expression "(pvStack_1d4 == (void *)**(int **)(pcStack_1e8 + -0x713c))" ( (binary_expression "pvStack_1d4 == (void *)**(int **)(pcStack_1e8 + -0x713c)" identifier == (cast_expression "(void *)**(int **)(pcStack_1e8 + -0x713c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcStack_1e8 + -0x713c)" * (pointer_expression "*(int **)(pcStack_1e8 + -0x713c)" * (cast_expression "(int **)(pcStack_1e8 + -0x713c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x713c)" ( (binary_expression "pcStack_1e8 + -0x713c" identifier + number_literal) ))))))) )) (compound_statement "{\n    return pcVar3;\n  }" { (return_statement "return pcVar3;" return identifier ;) }))) (expression_statement "pcVar22 = *(code **)(pcStack_1e8 + -0x74c8);" (assignment_expression "pcVar22 = *(code **)(pcStack_1e8 + -0x74c8)" identifier = (pointer_expression "*(code **)(pcStack_1e8 + -0x74c8)" * (cast_expression "(code **)(pcStack_1e8 + -0x74c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x74c8)" ( (binary_expression "pcStack_1e8 + -0x74c8" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = Curl_conncache_find_first_connection;" (assignment_expression "pcVar23 = Curl_conncache_find_first_connection" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_218 = pcVar22 + 0x4a974;" (assignment_expression "pcStack_218 = pcVar22 + 0x4a974" identifier = (binary_expression "pcVar22 + 0x4a974" identifier + number_literal)) ;) (expression_statement "cStack_210.conn_list.tail = (curl_llist_element *)**(undefined4 **)(pcVar22 + 0x43838);" (assignment_expression "cStack_210.conn_list.tail = (curl_llist_element *)**(undefined4 **)(pcVar22 + 0x43838)" (field_expression "cStack_210.conn_list.tail" (field_expression "cStack_210.conn_list" identifier . field_identifier) . field_identifier) = (cast_expression "(curl_llist_element *)**(undefined4 **)(pcVar22 + 0x43838)" ( (type_descriptor "curl_llist_element *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar22 + 0x43838)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x43838)" * (cast_expression "(undefined4 **)(pcVar22 + 0x43838)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43838)" ( (binary_expression "pcVar22 + 0x43838" identifier + number_literal) ))))))) ;) (expression_statement "pcVar3 = &cStack_210;" (assignment_expression "pcVar3 = &cStack_210" identifier = (pointer_expression "&cStack_210" & identifier)) ;) (expression_statement "cStack_210.conn_list.dtor = (curl_llist_dtor)cb_ptr;" (assignment_expression "cStack_210.conn_list.dtor = (curl_llist_dtor)cb_ptr" (field_expression "cStack_210.conn_list.dtor" (field_expression "cStack_210.conn_list" identifier . field_identifier) . field_identifier) = (cast_expression "(curl_llist_dtor)cb_ptr" ( (type_descriptor "curl_llist_dtor" type_identifier) ) identifier)) ;) (expression_statement "cStack_210.conn_list.size = (size_t)pcVar23;" (assignment_expression "cStack_210.conn_list.size = (size_t)pcVar23" (field_expression "cStack_210.conn_list.size" (field_expression "cStack_210.conn_list" identifier . field_identifier) . field_identifier) = (cast_expression "(size_t)pcVar23" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcVar22 + 0x4304c))();" (call_expression "(**(code **)(pcVar22 + 0x4304c))()" (parenthesized_expression "(**(code **)(pcVar22 + 0x4304c))" ( (pointer_expression "**(code **)(pcVar22 + 0x4304c)" * (pointer_expression "*(code **)(pcVar22 + 0x4304c)" * (cast_expression "(code **)(pcVar22 + 0x4304c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x4304c)" ( (binary_expression "pcVar22 + 0x4304c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);" (assignment_expression "pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210)" identifier = (cast_expression "(connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210)" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_218 + -0x7924))(&cStack_210)" (parenthesized_expression "(**(code **)(pcStack_218 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_218 + -0x7924)" * (pointer_expression "*(code **)(pcStack_218 + -0x7924)" * (cast_expression "(code **)(pcStack_218 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x7924)" ( (binary_expression "pcStack_218 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(&cStack_210)" ( (pointer_expression "&cStack_210" & identifier) ))))) ;) (if_statement "if (pcVar6 != (connectbundle *)0x0) {\n    pcVar2 = ((pcVar6->conn_list).tail)->next;\n    while (pcVar2 == (curl_llist_element *)0x0) {\n      pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n      if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;\n      pcVar2 = ((pcVar6->conn_list).tail)->next;\n    }\n    pcVar6 = (connectbundle *)pcVar2->ptr;\n  }" if (parenthesized_expression "(pcVar6 != (connectbundle *)0x0)" ( (binary_expression "pcVar6 != (connectbundle *)0x0" identifier != (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar2 = ((pcVar6->conn_list).tail)->next;\n    while (pcVar2 == (curl_llist_element *)0x0) {\n      pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n      if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;\n      pcVar2 = ((pcVar6->conn_list).tail)->next;\n    }\n    pcVar6 = (connectbundle *)pcVar2->ptr;\n  }" { (expression_statement "pcVar2 = ((pcVar6->conn_list).tail)->next;" (assignment_expression "pcVar2 = ((pcVar6->conn_list).tail)->next" identifier = (field_expression "((pcVar6->conn_list).tail)->next" (parenthesized_expression "((pcVar6->conn_list).tail)" ( (field_expression "(pcVar6->conn_list).tail" (parenthesized_expression "(pcVar6->conn_list)" ( (field_expression "pcVar6->conn_list" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (while_statement "while (pcVar2 == (curl_llist_element *)0x0) {\n      pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n      if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;\n      pcVar2 = ((pcVar6->conn_list).tail)->next;\n    }" while (parenthesized_expression "(pcVar2 == (curl_llist_element *)0x0)" ( (binary_expression "pcVar2 == (curl_llist_element *)0x0" identifier == (cast_expression "(curl_llist_element *)0x0" ( (type_descriptor "curl_llist_element *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);\n      if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;\n      pcVar2 = ((pcVar6->conn_list).tail)->next;\n    }" { (expression_statement "pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210);" (assignment_expression "pcVar6 = (connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210)" identifier = (cast_expression "(connectbundle *)(**(code **)(pcStack_218 + -0x7924))(&cStack_210)" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_218 + -0x7924))(&cStack_210)" (parenthesized_expression "(**(code **)(pcStack_218 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_218 + -0x7924)" * (pointer_expression "*(code **)(pcStack_218 + -0x7924)" * (cast_expression "(code **)(pcStack_218 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x7924)" ( (binary_expression "pcStack_218 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(&cStack_210)" ( (pointer_expression "&cStack_210" & identifier) ))))) ;) (if_statement "if (pcVar6 == (connectbundle *)0x0) goto LAB_0006e834;" if (parenthesized_expression "(pcVar6 == (connectbundle *)0x0)" ( (binary_expression "pcVar6 == (connectbundle *)0x0" identifier == (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e834;" goto statement_identifier ;)) (expression_statement "pcVar2 = ((pcVar6->conn_list).tail)->next;" (assignment_expression "pcVar2 = ((pcVar6->conn_list).tail)->next" identifier = (field_expression "((pcVar6->conn_list).tail)->next" (parenthesized_expression "((pcVar6->conn_list).tail)" ( (field_expression "(pcVar6->conn_list).tail" (parenthesized_expression "(pcVar6->conn_list)" ( (field_expression "pcVar6->conn_list" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) })) (expression_statement "pcVar6 = (connectbundle *)pcVar2->ptr;" (assignment_expression "pcVar6 = (connectbundle *)pcVar2->ptr" identifier = (cast_expression "(connectbundle *)pcVar2->ptr" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pcVar2->ptr" identifier -> field_identifier))) ;) })) (labeled_statement "LAB_0006e834:\n  if ((Curl_easy *)cStack_210.conn_list.tail == (Curl_easy *)**(int **)(pcStack_218 + -0x713c)) {\n    return pcVar6;\n  }" statement_identifier : (if_statement "if ((Curl_easy *)cStack_210.conn_list.tail == (Curl_easy *)**(int **)(pcStack_218 + -0x713c)) {\n    return pcVar6;\n  }" if (parenthesized_expression "((Curl_easy *)cStack_210.conn_list.tail == (Curl_easy *)**(int **)(pcStack_218 + -0x713c))" ( (binary_expression "(Curl_easy *)cStack_210.conn_list.tail == (Curl_easy *)**(int **)(pcStack_218 + -0x713c)" (cast_expression "(Curl_easy *)cStack_210.conn_list.tail" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cStack_210.conn_list.tail" (field_expression "cStack_210.conn_list" identifier . field_identifier) . field_identifier)) == (cast_expression "(Curl_easy *)**(int **)(pcStack_218 + -0x713c)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcStack_218 + -0x713c)" * (pointer_expression "*(int **)(pcStack_218 + -0x713c)" * (cast_expression "(int **)(pcStack_218 + -0x713c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x713c)" ( (binary_expression "pcStack_218 + -0x713c" identifier + number_literal) ))))))) )) (compound_statement "{\n    return pcVar6;\n  }" { (return_statement "return pcVar6;" return identifier ;) }))) (expression_statement "pcVar22 = *(code **)(pcStack_218 + -0x74c8);" (assignment_expression "pcVar22 = *(code **)(pcStack_218 + -0x74c8)" identifier = (pointer_expression "*(code **)(pcStack_218 + -0x74c8)" * (cast_expression "(code **)(pcStack_218 + -0x74c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x74c8)" ( (binary_expression "pcStack_218 + -0x74c8" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = Curl_conncache_extract_bundle;" (assignment_expression "pcVar23 = Curl_conncache_extract_bundle" identifier = identifier) ;) (expression_statement "pCVar15 = (Curl_easy *)cStack_210.conn_list.tail;" (assignment_expression "pCVar15 = (Curl_easy *)cStack_210.conn_list.tail" identifier = (cast_expression "(Curl_easy *)cStack_210.conn_list.tail" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cStack_210.conn_list.tail" (field_expression "cStack_210.conn_list" identifier . field_identifier) . field_identifier))) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pCStack_24c = (Curl_easy *)**(undefined4 **)(pcVar22 + 0x43774);" (assignment_expression "pCStack_24c = (Curl_easy *)**(undefined4 **)(pcVar22 + 0x43774)" identifier = (cast_expression "(Curl_easy *)**(undefined4 **)(pcVar22 + 0x43774)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar22 + 0x43774)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x43774)" * (cast_expression "(undefined4 **)(pcVar22 + 0x43774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43774)" ( (binary_expression "pcVar22 + 0x43774" identifier + number_literal) ))))))) ;) (expression_statement "pcStack_244 = &cStack_210;" (assignment_expression "pcStack_244 = &cStack_210" identifier = (pointer_expression "&cStack_210" & identifier)) ;) (expression_statement "pCStack_240 = pCVar12;" (assignment_expression "pCStack_240 = pCVar12" identifier = identifier) ;) (expression_statement "pCStack_23c = pCVar11;" (assignment_expression "pCStack_23c = pCVar11" identifier = identifier) ;) (expression_statement "pCStack_238 = pCVar19;" (assignment_expression "pCStack_238 = pCVar19" identifier = identifier) ;) (expression_statement "pCStack_234 = unaff_s4;" (assignment_expression "pCStack_234 = unaff_s4" identifier = identifier) ;) (expression_statement "pCStack_230 = data;" (assignment_expression "pCStack_230 = data" identifier = identifier) ;) (expression_statement "pcStack_22c = pcVar23;" (assignment_expression "pcStack_22c = pcVar23" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar22 + 0x42914))(&uStack_254);" (call_expression "(**(code **)(pcVar22 + 0x42914))(&uStack_254)" (parenthesized_expression "(**(code **)(pcVar22 + 0x42914))" ( (pointer_expression "**(code **)(pcVar22 + 0x42914)" * (pointer_expression "*(code **)(pcVar22 + 0x42914)" * (cast_expression "(code **)(pcVar22 + 0x42914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42914)" ( (binary_expression "pcVar22 + 0x42914" identifier + number_literal) ))))) )) (argument_list "(&uStack_254)" ( (pointer_expression "&uStack_254" & identifier) ))) ;) (expression_statement "pcVar2 = (pcVar3->conn_list).head;" (assignment_expression "pcVar2 = (pcVar3->conn_list).head" identifier = (field_expression "(pcVar3->conn_list).head" (parenthesized_expression "(pcVar3->conn_list)" ( (field_expression "pcVar3->conn_list" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (if_statement "if (pcVar2 == (curl_llist_element *)0x0) {\n    pCVar19 = (Curl_easy *)0x0;\n  }\n  else {\n    pCVar19 = (Curl_easy *)0x0;\n    do {\n      pCVar12 = (Curl_easy *)pcVar2->ptr;\n      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }\n      pcVar2 = pcVar2->next;\n    } while (pcVar2 != (curl_llist_element *)0x0);\n    if (pCVar19 != (Curl_easy *)0x0) {\n      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);\n      pcVar10 = (pCVar15->state).conn_cache;\n      pcVar10->num_conn = pcVar10->num_conn - 1;\n      pCVar19->next = pCVar15;\n    }\n  }" if (parenthesized_expression "(pcVar2 == (curl_llist_element *)0x0)" ( (binary_expression "pcVar2 == (curl_llist_element *)0x0" identifier == (cast_expression "(curl_llist_element *)0x0" ( (type_descriptor "curl_llist_element *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pCVar19 = (Curl_easy *)0x0;\n  }" { (expression_statement "pCVar19 = (Curl_easy *)0x0;" (assignment_expression "pCVar19 = (Curl_easy *)0x0" identifier = (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pCVar19 = (Curl_easy *)0x0;\n    do {\n      pCVar12 = (Curl_easy *)pcVar2->ptr;\n      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }\n      pcVar2 = pcVar2->next;\n    } while (pcVar2 != (curl_llist_element *)0x0);\n    if (pCVar19 != (Curl_easy *)0x0) {\n      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);\n      pcVar10 = (pCVar15->state).conn_cache;\n      pcVar10->num_conn = pcVar10->num_conn - 1;\n      pCVar19->next = pCVar15;\n    }\n  }" else (compound_statement "{\n    pCVar19 = (Curl_easy *)0x0;\n    do {\n      pCVar12 = (Curl_easy *)pcVar2->ptr;\n      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }\n      pcVar2 = pcVar2->next;\n    } while (pcVar2 != (curl_llist_element *)0x0);\n    if (pCVar19 != (Curl_easy *)0x0) {\n      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);\n      pcVar10 = (pCVar15->state).conn_cache;\n      pcVar10->num_conn = pcVar10->num_conn - 1;\n      pCVar19->next = pCVar15;\n    }\n  }" { (expression_statement "pCVar19 = (Curl_easy *)0x0;" (assignment_expression "pCVar19 = (Curl_easy *)0x0" identifier = (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      pCVar12 = (Curl_easy *)pcVar2->ptr;\n      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }\n      pcVar2 = pcVar2->next;\n    } while (pcVar2 != (curl_llist_element *)0x0);" do (compound_statement "{\n      pCVar12 = (Curl_easy *)pcVar2->ptr;\n      if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }\n      pcVar2 = pcVar2->next;\n    }" { (expression_statement "pCVar12 = (Curl_easy *)pcVar2->ptr;" (assignment_expression "pCVar12 = (Curl_easy *)pcVar2->ptr" identifier = (cast_expression "(Curl_easy *)pcVar2->ptr" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pcVar2->ptr" identifier -> field_identifier))) ;) (if_statement "if ((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)) {\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }" if (parenthesized_expression "((*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7))" ( (binary_expression "(*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0) &&\n         (iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)" (parenthesized_expression "(*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0)" ( (binary_expression "*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc) == 0" (binary_expression "*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc) +\n           *(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc)" (pointer_expression "*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc)" * (cast_expression "(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pCVar12->req).doh.probe[0].dohbuffer + 0x1bc)" ( (binary_expression "(pCVar12->req).doh.probe[0].dohbuffer + 0x1bc" (field_expression "(pCVar12->req).doh.probe[0].dohbuffer" (subscript_expression "(pCVar12->req).doh.probe[0]" (field_expression "(pCVar12->req).doh.probe" (field_expression "(pCVar12->req).doh" (parenthesized_expression "(pCVar12->req)" ( (field_expression "pCVar12->req" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) )))) + (pointer_expression "*(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc)" * (cast_expression "(int *)((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pCVar12->req).doh.probe[0].dohbuffer + 0x1cc)" ( (binary_expression "(pCVar12->req).doh.probe[0].dohbuffer + 0x1cc" (field_expression "(pCVar12->req).doh.probe[0].dohbuffer" (subscript_expression "(pCVar12->req).doh.probe[0]" (field_expression "(pCVar12->req).doh.probe" (field_expression "(pCVar12->req).doh" (parenthesized_expression "(pCVar12->req)" ( (field_expression "pCVar12->req" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) ))))) == number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7)" ( (comma_expression "iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)),\n         iVar5 < iVar7" (assignment_expression "iVar7 = (**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28))" identifier = (call_expression "(**(code **)(pcVar22 + 0x429c0))\n                            (uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28))" (parenthesized_expression "(**(code **)(pcVar22 + 0x429c0))" ( (pointer_expression "**(code **)(pcVar22 + 0x429c0)" * (pointer_expression "*(code **)(pcVar22 + 0x429c0)" * (cast_expression "(code **)(pcVar22 + 0x429c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x429c0)" ( (binary_expression "pcVar22 + 0x429c0" identifier + number_literal) ))))) )) (argument_list "(uStack_254,uStack_250,\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24),\n                             *(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28))" ( identifier , identifier , (pointer_expression "*(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24)" * (cast_expression "(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pCVar12->req).doh.probe[0].dohbuffer + 0x24)" ( (binary_expression "(pCVar12->req).doh.probe[0].dohbuffer + 0x24" (field_expression "(pCVar12->req).doh.probe[0].dohbuffer" (subscript_expression "(pCVar12->req).doh.probe[0]" (field_expression "(pCVar12->req).doh.probe" (field_expression "(pCVar12->req).doh" (parenthesized_expression "(pCVar12->req)" ( (field_expression "pCVar12->req" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) )))) , (pointer_expression "*(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)" * (cast_expression "(undefined4 *)((pCVar12->req).doh.probe[0].dohbuffer + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pCVar12->req).doh.probe[0].dohbuffer + 0x28)" ( (binary_expression "(pCVar12->req).doh.probe[0].dohbuffer + 0x28" (field_expression "(pCVar12->req).doh.probe[0].dohbuffer" (subscript_expression "(pCVar12->req).doh.probe[0]" (field_expression "(pCVar12->req).doh.probe" (field_expression "(pCVar12->req).doh" (parenthesized_expression "(pCVar12->req)" ( (field_expression "pCVar12->req" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) )))) )))) , (binary_expression "iVar5 < iVar7" identifier < identifier)) ))) )) (compound_statement "{\n        pCVar19 = pCVar12;\n        iVar5 = iVar7;\n      }" { (expression_statement "pCVar19 = pCVar12;" (assignment_expression "pCVar19 = pCVar12" identifier = identifier) ;) (expression_statement "iVar5 = iVar7;" (assignment_expression "iVar5 = iVar7" identifier = identifier) ;) })) (expression_statement "pcVar2 = pcVar2->next;" (assignment_expression "pcVar2 = pcVar2->next" identifier = (field_expression "pcVar2->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pcVar2 != (curl_llist_element *)0x0)" ( (binary_expression "pcVar2 != (curl_llist_element *)0x0" identifier != (cast_expression "(curl_llist_element *)0x0" ( (type_descriptor "curl_llist_element *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (pCVar19 != (Curl_easy *)0x0) {\n      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);\n      pcVar10 = (pCVar15->state).conn_cache;\n      pcVar10->num_conn = pcVar10->num_conn - 1;\n      pCVar19->next = pCVar15;\n    }" if (parenthesized_expression "(pCVar19 != (Curl_easy *)0x0)" ( (binary_expression "pCVar19 != (Curl_easy *)0x0" identifier != (cast_expression "(Curl_easy *)0x0" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bundle_remove_conn(pcVar3,(connectdata *)pCVar19);\n      pcVar10 = (pCVar15->state).conn_cache;\n      pcVar10->num_conn = pcVar10->num_conn - 1;\n      pCVar19->next = pCVar15;\n    }" { (expression_statement "bundle_remove_conn(pcVar3,(connectdata *)pCVar19);" (call_expression "bundle_remove_conn(pcVar3,(connectdata *)pCVar19)" identifier (argument_list "(pcVar3,(connectdata *)pCVar19)" ( identifier , (cast_expression "(connectdata *)pCVar19" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "pcVar10 = (pCVar15->state).conn_cache;" (assignment_expression "pcVar10 = (pCVar15->state).conn_cache" identifier = (field_expression "(pCVar15->state).conn_cache" (parenthesized_expression "(pCVar15->state)" ( (field_expression "pCVar15->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar10->num_conn = pcVar10->num_conn - 1;" (assignment_expression "pcVar10->num_conn = pcVar10->num_conn - 1" (field_expression "pcVar10->num_conn" identifier -> field_identifier) = (binary_expression "pcVar10->num_conn - 1" (field_expression "pcVar10->num_conn" identifier -> field_identifier) - number_literal)) ;) (expression_statement "pCVar19->next = pCVar15;" (assignment_expression "pCVar19->next = pCVar15" (field_expression "pCVar19->next" identifier -> field_identifier) = identifier) ;) })) }))) (if_statement "if (pCStack_24c != (Curl_easy *)**(int **)(pcVar22 + 0x43774)) {\n    pcVar22 = *(code **)(pcVar22 + 0x433e8);\n    pCVar13 = pCStack_24c;\n    (*pcVar22)();\n    pcStack_29c = (connectdata *)**(undefined4 **)(pcVar22 + 0x43634);\n    pcVar10 = (pCVar13->state).conn_cache;\n    uStack_298 = 0;\n    pCStack_294 = pCVar12;\n    pCStack_290 = pCVar19;\n    iStack_28c = iVar5;\n    pcStack_288 = pcVar3;\n    pCStack_284 = pCVar15;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar22 + 0x427d4))(&uStack_2b0);\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);\n    }\n    (**(code **)(pcVar22 + 0x42e48))(pcVar10,auStack_2a8);\n    iVar5 = (**(code **)(pcVar22 + 0x42e4c))(auStack_2a8);\n    pcVar3 = (connectbundle *)0x0;\n    if (iVar5 == 0) {\n      pcVar20 = (connectdata *)0x0;\n    }\n    else {\n      pcVar20 = (connectdata *)0x0;\n      iVar7 = -1;\n      do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);\n      if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }\n    }\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x4282c))(pCVar13,5);\n    }\n    if (pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)) {\n      pcVar22 = *(code **)(pcVar22 + 0x432a8);\n      pcVar20 = pcStack_29c;\n      (*pcVar22)();\n      pCVar12 = pcVar20->data;\n      uVar8 = pCVar12->multi->maxconnects;\n      if ((int)uVar8 < 0) {\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }\n      if (uVar8 == 0) {\n        pcVar18 = (connectdata *)0x0;\n      }\n      else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }\n      return (connectbundle *)(uint)(pcVar18 != pcVar20);\n    }\n    return (connectbundle *)pcVar20;\n  }" if (parenthesized_expression "(pCStack_24c != (Curl_easy *)**(int **)(pcVar22 + 0x43774))" ( (binary_expression "pCStack_24c != (Curl_easy *)**(int **)(pcVar22 + 0x43774)" identifier != (cast_expression "(Curl_easy *)**(int **)(pcVar22 + 0x43774)" ( (type_descriptor "Curl_easy *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar22 + 0x43774)" * (pointer_expression "*(int **)(pcVar22 + 0x43774)" * (cast_expression "(int **)(pcVar22 + 0x43774)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43774)" ( (binary_expression "pcVar22 + 0x43774" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar22 = *(code **)(pcVar22 + 0x433e8);\n    pCVar13 = pCStack_24c;\n    (*pcVar22)();\n    pcStack_29c = (connectdata *)**(undefined4 **)(pcVar22 + 0x43634);\n    pcVar10 = (pCVar13->state).conn_cache;\n    uStack_298 = 0;\n    pCStack_294 = pCVar12;\n    pCStack_290 = pCVar19;\n    iStack_28c = iVar5;\n    pcStack_288 = pcVar3;\n    pCStack_284 = pCVar15;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar22 + 0x427d4))(&uStack_2b0);\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);\n    }\n    (**(code **)(pcVar22 + 0x42e48))(pcVar10,auStack_2a8);\n    iVar5 = (**(code **)(pcVar22 + 0x42e4c))(auStack_2a8);\n    pcVar3 = (connectbundle *)0x0;\n    if (iVar5 == 0) {\n      pcVar20 = (connectdata *)0x0;\n    }\n    else {\n      pcVar20 = (connectdata *)0x0;\n      iVar7 = -1;\n      do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);\n      if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }\n    }\n    if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x4282c))(pCVar13,5);\n    }\n    if (pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)) {\n      pcVar22 = *(code **)(pcVar22 + 0x432a8);\n      pcVar20 = pcStack_29c;\n      (*pcVar22)();\n      pCVar12 = pcVar20->data;\n      uVar8 = pCVar12->multi->maxconnects;\n      if ((int)uVar8 < 0) {\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }\n      if (uVar8 == 0) {\n        pcVar18 = (connectdata *)0x0;\n      }\n      else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }\n      return (connectbundle *)(uint)(pcVar18 != pcVar20);\n    }\n    return (connectbundle *)pcVar20;\n  }" { (expression_statement "pcVar22 = *(code **)(pcVar22 + 0x433e8);" (assignment_expression "pcVar22 = *(code **)(pcVar22 + 0x433e8)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x433e8)" * (cast_expression "(code **)(pcVar22 + 0x433e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x433e8)" ( (binary_expression "pcVar22 + 0x433e8" identifier + number_literal) ))))) ;) (expression_statement "pCVar13 = pCStack_24c;" (assignment_expression "pCVar13 = pCStack_24c" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_29c = (connectdata *)**(undefined4 **)(pcVar22 + 0x43634);" (assignment_expression "pcStack_29c = (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)" identifier = (cast_expression "(connectdata *)**(undefined4 **)(pcVar22 + 0x43634)" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar22 + 0x43634)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x43634)" * (cast_expression "(undefined4 **)(pcVar22 + 0x43634)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43634)" ( (binary_expression "pcVar22 + 0x43634" identifier + number_literal) ))))))) ;) (expression_statement "pcVar10 = (pCVar13->state).conn_cache;" (assignment_expression "pcVar10 = (pCVar13->state).conn_cache" identifier = (field_expression "(pCVar13->state).conn_cache" (parenthesized_expression "(pCVar13->state)" ( (field_expression "pCVar13->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uStack_298 = 0;" (assignment_expression "uStack_298 = 0" identifier = number_literal) ;) (expression_statement "pCStack_294 = pCVar12;" (assignment_expression "pCStack_294 = pCVar12" identifier = identifier) ;) (expression_statement "pCStack_290 = pCVar19;" (assignment_expression "pCStack_290 = pCVar19" identifier = identifier) ;) (expression_statement "iStack_28c = iVar5;" (assignment_expression "iStack_28c = iVar5" identifier = identifier) ;) (expression_statement "pcStack_288 = pcVar3;" (assignment_expression "pcStack_288 = pcVar3" identifier = identifier) ;) (expression_statement "pCStack_284 = pCVar15;" (assignment_expression "pCStack_284 = pCVar15" identifier = identifier) ;) (expression_statement "puStack_280 = unaff_s6;" (assignment_expression "puStack_280 = unaff_s6" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar22 + 0x427d4))(&uStack_2b0);" (call_expression "(**(code **)(pcVar22 + 0x427d4))(&uStack_2b0)" (parenthesized_expression "(**(code **)(pcVar22 + 0x427d4))" ( (pointer_expression "**(code **)(pcVar22 + 0x427d4)" * (pointer_expression "*(code **)(pcVar22 + 0x427d4)" * (cast_expression "(code **)(pcVar22 + 0x427d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x427d4)" ( (binary_expression "pcVar22 + 0x427d4" identifier + number_literal) ))))) )) (argument_list "(&uStack_2b0)" ( (pointer_expression "&uStack_2b0" & identifier) ))) ;) (if_statement "if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);\n    }" if (parenthesized_expression "(pCVar13->share != (Curl_share *)0x0)" ( (binary_expression "pCVar13->share != (Curl_share *)0x0" (field_expression "pCVar13->share" identifier -> field_identifier) != (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);\n    }" { (expression_statement "(**(code **)(pcVar22 + 0x42824))(pCVar13,5,2);" (call_expression "(**(code **)(pcVar22 + 0x42824))(pCVar13,5,2)" (parenthesized_expression "(**(code **)(pcVar22 + 0x42824))" ( (pointer_expression "**(code **)(pcVar22 + 0x42824)" * (pointer_expression "*(code **)(pcVar22 + 0x42824)" * (cast_expression "(code **)(pcVar22 + 0x42824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42824)" ( (binary_expression "pcVar22 + 0x42824" identifier + number_literal) ))))) )) (argument_list "(pCVar13,5,2)" ( identifier , number_literal , number_literal ))) ;) })) (expression_statement "(**(code **)(pcVar22 + 0x42e48))(pcVar10,auStack_2a8);" (call_expression "(**(code **)(pcVar22 + 0x42e48))(pcVar10,auStack_2a8)" (parenthesized_expression "(**(code **)(pcVar22 + 0x42e48))" ( (pointer_expression "**(code **)(pcVar22 + 0x42e48)" * (pointer_expression "*(code **)(pcVar22 + 0x42e48)" * (cast_expression "(code **)(pcVar22 + 0x42e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42e48)" ( (binary_expression "pcVar22 + 0x42e48" identifier + number_literal) ))))) )) (argument_list "(pcVar10,auStack_2a8)" ( identifier , identifier ))) ;) (expression_statement "iVar5 = (**(code **)(pcVar22 + 0x42e4c))(auStack_2a8);" (assignment_expression "iVar5 = (**(code **)(pcVar22 + 0x42e4c))(auStack_2a8)" identifier = (call_expression "(**(code **)(pcVar22 + 0x42e4c))(auStack_2a8)" (parenthesized_expression "(**(code **)(pcVar22 + 0x42e4c))" ( (pointer_expression "**(code **)(pcVar22 + 0x42e4c)" * (pointer_expression "*(code **)(pcVar22 + 0x42e4c)" * (cast_expression "(code **)(pcVar22 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42e4c)" ( (binary_expression "pcVar22 + 0x42e4c" identifier + number_literal) ))))) )) (argument_list "(auStack_2a8)" ( identifier )))) ;) (expression_statement "pcVar3 = (connectbundle *)0x0;" (assignment_expression "pcVar3 = (connectbundle *)0x0" identifier = (cast_expression "(connectbundle *)0x0" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar5 == 0) {\n      pcVar20 = (connectdata *)0x0;\n    }\n    else {\n      pcVar20 = (connectdata *)0x0;\n      iVar7 = -1;\n      do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);\n      if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar20 = (connectdata *)0x0;\n    }" { (expression_statement "pcVar20 = (connectdata *)0x0;" (assignment_expression "pcVar20 = (connectdata *)0x0" identifier = (cast_expression "(connectdata *)0x0" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pcVar20 = (connectdata *)0x0;\n      iVar7 = -1;\n      do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);\n      if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }\n    }" else (compound_statement "{\n      pcVar20 = (connectdata *)0x0;\n      iVar7 = -1;\n      do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);\n      if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }\n    }" { (expression_statement "pcVar20 = (connectdata *)0x0;" (assignment_expression "pcVar20 = (connectdata *)0x0" identifier = (cast_expression "(connectdata *)0x0" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (do_statement "do {\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      } while (iVar5 != 0);" do (compound_statement "{\n        pcVar6 = *(connectbundle **)(iVar5 + 0xc);\n        pcVar2 = (pcVar6->conn_list).head;\n        if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        iVar5 = (*pcVar23)(auStack_2a8);\n      }" { (expression_statement "pcVar6 = *(connectbundle **)(iVar5 + 0xc);" (assignment_expression "pcVar6 = *(connectbundle **)(iVar5 + 0xc)" identifier = (pointer_expression "*(connectbundle **)(iVar5 + 0xc)" * (cast_expression "(connectbundle **)(iVar5 + 0xc)" ( (type_descriptor "connectbundle **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = (pcVar6->conn_list).head;" (assignment_expression "pcVar2 = (pcVar6->conn_list).head" identifier = (field_expression "(pcVar6->conn_list).head" (parenthesized_expression "(pcVar6->conn_list)" ( (field_expression "pcVar6->conn_list" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pcVar2 == (curl_llist_element *)0x0) {\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }" if (parenthesized_expression "(pcVar2 == (curl_llist_element *)0x0)" ( (binary_expression "pcVar2 == (curl_llist_element *)0x0" identifier == (cast_expression "(curl_llist_element *)0x0" ( (type_descriptor "curl_llist_element *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }" { (expression_statement "pcVar23 = *(code **)(pcVar22 + 0x42e4c);" (assignment_expression "pcVar23 = *(code **)(pcVar22 + 0x42e4c)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x42e4c)" * (cast_expression "(code **)(pcVar22 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42e4c)" ( (binary_expression "pcVar22 + 0x42e4c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }" else (compound_statement "{\n          do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);\n          pcVar23 = *(code **)(pcVar22 + 0x42e4c);\n        }" { (do_statement "do {\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          } while (pcVar2 != (curl_llist_element *)0x0);" do (compound_statement "{\n            pcVar18 = (connectdata *)pcVar2->ptr;\n            if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }\n            pcVar2 = pcVar2->next;\n          }" { (expression_statement "pcVar18 = (connectdata *)pcVar2->ptr;" (assignment_expression "pcVar18 = (connectdata *)pcVar2->ptr" identifier = (cast_expression "(connectdata *)pcVar2->ptr" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pcVar2->ptr" identifier -> field_identifier))) ;) (if_statement "if (((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)) {\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }" if (parenthesized_expression "(((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5))" ( (binary_expression "((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0) &&\n               (iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)" (parenthesized_expression "((pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0)" ( (binary_expression "(pcVar18->send_pipe).size + (pcVar18->recv_pipe).size == 0" (binary_expression "(pcVar18->send_pipe).size + (pcVar18->recv_pipe).size" (field_expression "(pcVar18->send_pipe).size" (parenthesized_expression "(pcVar18->send_pipe)" ( (field_expression "pcVar18->send_pipe" identifier -> field_identifier) )) . field_identifier) + (field_expression "(pcVar18->recv_pipe).size" (parenthesized_expression "(pcVar18->recv_pipe)" ( (field_expression "pcVar18->recv_pipe" identifier -> field_identifier) )) . field_identifier)) == number_literal) )) && (parenthesized_expression "(iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5)" ( (comma_expression "iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec), iVar7 < iVar5" (assignment_expression "iVar5 = (**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec)" identifier = (call_expression "(**(code **)(pcVar22 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec)" (parenthesized_expression "(**(code **)(pcVar22 + 0x42880))" ( (pointer_expression "**(code **)(pcVar22 + 0x42880)" * (pointer_expression "*(code **)(pcVar22 + 0x42880)" * (cast_expression "(code **)(pcVar22 + 0x42880)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42880)" ( (binary_expression "pcVar22 + 0x42880" identifier + number_literal) ))))) )) (argument_list "(uStack_2b0,uStack_2ac,(pcVar18->now).tv_sec,\n                                   (pcVar18->now).tv_usec)" ( identifier , identifier , (field_expression "(pcVar18->now).tv_sec" (parenthesized_expression "(pcVar18->now)" ( (field_expression "pcVar18->now" identifier -> field_identifier) )) . field_identifier) , (field_expression "(pcVar18->now).tv_usec" (parenthesized_expression "(pcVar18->now)" ( (field_expression "pcVar18->now" identifier -> field_identifier) )) . field_identifier) )))) , (binary_expression "iVar7 < iVar5" identifier < identifier)) ))) )) (compound_statement "{\n              iVar7 = iVar5;\n              pcVar20 = pcVar18;\n              pcVar3 = pcVar6;\n            }" { (expression_statement "iVar7 = iVar5;" (assignment_expression "iVar7 = iVar5" identifier = identifier) ;) (expression_statement "pcVar20 = pcVar18;" (assignment_expression "pcVar20 = pcVar18" identifier = identifier) ;) (expression_statement "pcVar3 = pcVar6;" (assignment_expression "pcVar3 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar2 = pcVar2->next;" (assignment_expression "pcVar2 = pcVar2->next" identifier = (field_expression "pcVar2->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pcVar2 != (curl_llist_element *)0x0)" ( (binary_expression "pcVar2 != (curl_llist_element *)0x0" identifier != (cast_expression "(curl_llist_element *)0x0" ( (type_descriptor "curl_llist_element *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar23 = *(code **)(pcVar22 + 0x42e4c);" (assignment_expression "pcVar23 = *(code **)(pcVar22 + 0x42e4c)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x42e4c)" * (cast_expression "(code **)(pcVar22 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42e4c)" ( (binary_expression "pcVar22 + 0x42e4c" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar5 = (*pcVar23)(auStack_2a8);" (assignment_expression "iVar5 = (*pcVar23)(auStack_2a8)" identifier = (call_expression "(*pcVar23)(auStack_2a8)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(auStack_2a8)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (if_statement "if (pcVar20 != (connectdata *)0x0) {\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }" if (parenthesized_expression "(pcVar20 != (connectdata *)0x0)" ( (binary_expression "pcVar20 != (connectdata *)0x0" identifier != (cast_expression "(connectdata *)0x0" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bundle_remove_conn(pcVar3,pcVar20);\n        pcVar10->num_conn = pcVar10->num_conn - 1;\n        pcVar20->data = pCVar13;\n      }" { (expression_statement "bundle_remove_conn(pcVar3,pcVar20);" (call_expression "bundle_remove_conn(pcVar3,pcVar20)" identifier (argument_list "(pcVar3,pcVar20)" ( identifier , identifier ))) ;) (expression_statement "pcVar10->num_conn = pcVar10->num_conn - 1;" (assignment_expression "pcVar10->num_conn = pcVar10->num_conn - 1" (field_expression "pcVar10->num_conn" identifier -> field_identifier) = (binary_expression "pcVar10->num_conn - 1" (field_expression "pcVar10->num_conn" identifier -> field_identifier) - number_literal)) ;) (expression_statement "pcVar20->data = pCVar13;" (assignment_expression "pcVar20->data = pCVar13" (field_expression "pcVar20->data" identifier -> field_identifier) = identifier) ;) })) }))) (if_statement "if (pCVar13->share != (Curl_share *)0x0) {\n      (**(code **)(pcVar22 + 0x4282c))(pCVar13,5);\n    }" if (parenthesized_expression "(pCVar13->share != (Curl_share *)0x0)" ( (binary_expression "pCVar13->share != (Curl_share *)0x0" (field_expression "pCVar13->share" identifier -> field_identifier) != (cast_expression "(Curl_share *)0x0" ( (type_descriptor "Curl_share *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar22 + 0x4282c))(pCVar13,5);\n    }" { (expression_statement "(**(code **)(pcVar22 + 0x4282c))(pCVar13,5);" (call_expression "(**(code **)(pcVar22 + 0x4282c))(pCVar13,5)" (parenthesized_expression "(**(code **)(pcVar22 + 0x4282c))" ( (pointer_expression "**(code **)(pcVar22 + 0x4282c)" * (pointer_expression "*(code **)(pcVar22 + 0x4282c)" * (cast_expression "(code **)(pcVar22 + 0x4282c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x4282c)" ( (binary_expression "pcVar22 + 0x4282c" identifier + number_literal) ))))) )) (argument_list "(pCVar13,5)" ( identifier , number_literal ))) ;) })) (if_statement "if (pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)) {\n      pcVar22 = *(code **)(pcVar22 + 0x432a8);\n      pcVar20 = pcStack_29c;\n      (*pcVar22)();\n      pCVar12 = pcVar20->data;\n      uVar8 = pCVar12->multi->maxconnects;\n      if ((int)uVar8 < 0) {\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }\n      if (uVar8 == 0) {\n        pcVar18 = (connectdata *)0x0;\n      }\n      else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }\n      return (connectbundle *)(uint)(pcVar18 != pcVar20);\n    }" if (parenthesized_expression "(pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634))" ( (binary_expression "pcStack_29c != (connectdata *)**(undefined4 **)(pcVar22 + 0x43634)" identifier != (cast_expression "(connectdata *)**(undefined4 **)(pcVar22 + 0x43634)" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar22 + 0x43634)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x43634)" * (cast_expression "(undefined4 **)(pcVar22 + 0x43634)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x43634)" ( (binary_expression "pcVar22 + 0x43634" identifier + number_literal) ))))))) )) (compound_statement "{\n      pcVar22 = *(code **)(pcVar22 + 0x432a8);\n      pcVar20 = pcStack_29c;\n      (*pcVar22)();\n      pCVar12 = pcVar20->data;\n      uVar8 = pCVar12->multi->maxconnects;\n      if ((int)uVar8 < 0) {\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }\n      if (uVar8 == 0) {\n        pcVar18 = (connectdata *)0x0;\n      }\n      else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }\n      return (connectbundle *)(uint)(pcVar18 != pcVar20);\n    }" { (expression_statement "pcVar22 = *(code **)(pcVar22 + 0x432a8);" (assignment_expression "pcVar22 = *(code **)(pcVar22 + 0x432a8)" identifier = (pointer_expression "*(code **)(pcVar22 + 0x432a8)" * (cast_expression "(code **)(pcVar22 + 0x432a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x432a8)" ( (binary_expression "pcVar22 + 0x432a8" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = pcStack_29c;" (assignment_expression "pcVar20 = pcStack_29c" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pCVar12 = pcVar20->data;" (assignment_expression "pCVar12 = pcVar20->data" identifier = (field_expression "pcVar20->data" identifier -> field_identifier)) ;) (expression_statement "uVar8 = pCVar12->multi->maxconnects;" (assignment_expression "uVar8 = pCVar12->multi->maxconnects" identifier = (field_expression "pCVar12->multi->maxconnects" (field_expression "pCVar12->multi" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if ((int)uVar8 < 0) {\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar8 = pCVar12->multi->num_easy << 2;\n      }" { (expression_statement "uVar8 = pCVar12->multi->num_easy << 2;" (assignment_expression "uVar8 = pCVar12->multi->num_easy << 2" identifier = (binary_expression "pCVar12->multi->num_easy << 2" (field_expression "pCVar12->multi->num_easy" (field_expression "pCVar12->multi" identifier -> field_identifier) -> field_identifier) << number_literal)) ;) })) (if_statement "if (uVar8 == 0) {\n        pcVar18 = (connectdata *)0x0;\n      }\n      else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar18 = (connectdata *)0x0;\n      }" { (expression_statement "pcVar18 = (connectdata *)0x0;" (assignment_expression "pcVar18 = (connectdata *)0x0" identifier = (cast_expression "(connectdata *)0x0" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }" else (compound_statement "{\n        sVar9 = Curl_conncache_size(pCVar12);\n        if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }\n      }" { (expression_statement "sVar9 = Curl_conncache_size(pCVar12);" (assignment_expression "sVar9 = Curl_conncache_size(pCVar12)" identifier = (call_expression "Curl_conncache_size(pCVar12)" identifier (argument_list "(pCVar12)" ( identifier )))) ;) (if_statement "if (uVar8 < sVar9) {\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }\n        else {\n          pcVar18 = (connectdata *)0x0;\n        }" if (parenthesized_expression "(uVar8 < sVar9)" ( (binary_expression "uVar8 < sVar9" identifier < identifier) )) (compound_statement "{\n          (**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);\n          pcVar18 = Curl_conncache_extract_oldest(pCVar12);\n          if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }\n        }" { (expression_statement "(**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8);" (call_expression "(**(code **)(pcVar22 + 0x42608))(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8)" (parenthesized_expression "(**(code **)(pcVar22 + 0x42608))" ( (pointer_expression "**(code **)(pcVar22 + 0x42608)" * (pointer_expression "*(code **)(pcVar22 + 0x42608)" * (cast_expression "(code **)(pcVar22 + 0x42608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42608)" ( (binary_expression "pcVar22 + 0x42608" identifier + number_literal) ))))) )) (argument_list "(pCVar12,*(int *)(pcVar22 + 0x425e0) + -0x39a8)" ( identifier , (binary_expression "*(int *)(pcVar22 + 0x425e0) + -0x39a8" (pointer_expression "*(int *)(pcVar22 + 0x425e0)" * (cast_expression "(int *)(pcVar22 + 0x425e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x425e0)" ( (binary_expression "pcVar22 + 0x425e0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar18 = Curl_conncache_extract_oldest(pCVar12);" (assignment_expression "pcVar18 = Curl_conncache_extract_oldest(pCVar12)" identifier = (call_expression "Curl_conncache_extract_oldest(pCVar12)" identifier (argument_list "(pCVar12)" ( identifier )))) ;) (if_statement "if (pcVar18 != (connectdata *)0x0) {\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }" if (parenthesized_expression "(pcVar18 != (connectdata *)0x0)" ( (binary_expression "pcVar18 != (connectdata *)0x0" identifier != (cast_expression "(connectdata *)0x0" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);\n          }" { (expression_statement "(**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0);" (call_expression "(**(code **)(pcVar22 + 0x42670))(pCVar12,pcVar18,0)" (parenthesized_expression "(**(code **)(pcVar22 + 0x42670))" ( (pointer_expression "**(code **)(pcVar22 + 0x42670)" * (pointer_expression "*(code **)(pcVar22 + 0x42670)" * (cast_expression "(code **)(pcVar22 + 0x42670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42670)" ( (binary_expression "pcVar22 + 0x42670" identifier + number_literal) ))))) )) (argument_list "(pCVar12,pcVar18,0)" ( identifier , identifier , number_literal ))) ;) })) }) (else_clause "else {\n          pcVar18 = (connectdata *)0x0;\n        }" else (compound_statement "{\n          pcVar18 = (connectdata *)0x0;\n        }" { (expression_statement "pcVar18 = (connectdata *)0x0;" (assignment_expression "pcVar18 = (connectdata *)0x0" identifier = (cast_expression "(connectdata *)0x0" ( (type_descriptor "connectdata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (return_statement "return (connectbundle *)(uint)(pcVar18 != pcVar20);" return (cast_expression "(connectbundle *)(uint)(pcVar18 != pcVar20)" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pcVar18 != pcVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar18 != pcVar20)" ( (binary_expression "pcVar18 != pcVar20" identifier != identifier) )))) ;) })) (return_statement "return (connectbundle *)pcVar20;" return (cast_expression "(connectbundle *)pcVar20" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (return_statement "return (connectbundle *)pCVar19;" return (cast_expression "(connectbundle *)pCVar19" ( (type_descriptor "connectbundle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })))
(translation_unit "code * FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)\n\n{\n  code *pcVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  undefined1 *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  code *pcVar18;\n  int iVar19;\n  int *piVar20;\n  code *unaff_s1;\n  int iVar21;\n  code *unaff_s4;\n  code *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  undefined4 uVar25;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  int *piStack_29c;\n  undefined4 uStack_298;\n  code *pcStack_294;\n  code *pcStack_290;\n  int iStack_28c;\n  undefined1 *puStack_288;\n  int iStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  int iStack_24c;\n  undefined1 *puStack_244;\n  code *pcStack_240;\n  code *pcStack_23c;\n  code *pcStack_238;\n  code *pcStack_234;\n  code *pcStack_230;\n  undefined4 uStack_22c;\n  code *pcStack_218;\n  undefined1 auStack_210 [12];\n  int iStack_204;\n  code *pcStack_200;\n  code *pcStack_1fc;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  int iStack_1d4;\n  code *pcStack_1d0;\n  code *pcStack_1cc;\n  code *pcStack_1c8;\n  code *pcStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  undefined1 auStack_198 [12];\n  code *pcStack_18c;\n  code *pcStack_184;\n  code *pcStack_180;\n  int iStack_17c;\n  code *pcStack_178;\n  code *pcStack_174;\n  undefined1 auStack_14c [128];\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  int *local_c0;\n  undefined1 local_94 [128];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;\n  pcVar11 = param_2;\n  if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }\n  pcVar15 = (code *)0x80;\n  if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }\n  iVar19 = local_14;\n  puVar22 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  local_c0 = param_1;\n  local_c4 = unaff_s1;\n  local_c8 = param_2;\n  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);\n  pcVar1 = *(code **)pcVar11;\n  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));\n  if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }\n  pcVar12 = (code *)&DAT_00000005;\n  if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }\n  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }\n  pcVar23 = *(code **)(puVar22 + 0x439ec);\n  pcVar9 = local_cc;\n  (*pcVar23)();\n  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);\n  pcVar18 = *(code **)(pcVar12 + 0x59c);\n  pcVar10 = pcVar9;\n  pcVar13 = pcVar12;\n  pcVar16 = pcVar15;\n  pcStack_184 = pcVar17;\n  pcStack_180 = pcVar11;\n  iStack_17c = iVar19;\n  pcStack_178 = pcVar1;\n  pcStack_174 = unaff_s4;\n  if (pcVar18 == (code *)0x0) goto LAB_0006e510;\n  pcVar1 = *(code **)(pcVar9 + 0xc78);\n  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }\n  pcVar10 = pcVar18;\n  FUN_0006dd58();\n  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }\n  *(int *)pcVar12 = 0;\n  pcVar11 = pcVar12;\n  unaff_s4 = pcVar15;\n  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }\nLAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }\n  pcVar15 = *(code **)(pcVar23 + 0x43814);\n  (*pcVar15)();\n  pcStack_1bc = unaff_s5;\n  pcStack_1c0 = unaff_s4;\n  pcStack_1c4 = pcVar1;\n  pcStack_1c8 = pcVar9;\n  pcStack_1cc = pcVar11;\n  pcStack_1d0 = pcVar18;\n  pcStack_1e8 = pcVar15 + 0x4ab28;\n  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);\n  if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar17 = FUN_0006e79c;\n  (*pcVar15)();\n  pcStack_218 = pcVar15 + 0x4a974;\n  iStack_204 = **(int **)(pcVar15 + 0x43838);\n  puVar14 = auStack_210;\n  pcStack_200 = pcVar18;\n  pcStack_1fc = pcVar17;\n  (**(code **)(pcVar15 + 0x4304c))();\n  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n  if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }\nLAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_218 + -0x74c8);\n  uVar25 = 0x6e860;\n  iVar19 = iStack_204;\n  (*pcVar15)();\n  iStack_24c = **(int **)(pcVar15 + 0x43774);\n  puStack_244 = auStack_210;\n  pcStack_240 = pcVar11;\n  pcStack_23c = pcVar9;\n  pcStack_238 = pcVar1;\n  pcStack_234 = unaff_s4;\n  pcStack_230 = pcVar10;\n  uStack_22c = uVar25;\n  (**(code **)(pcVar15 + 0x42914))(&uStack_254);\n  puVar2 = *(undefined4 **)(puVar14 + 8);\n  iVar3 = -1;\n  if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }\n  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }\n  return pcVar1;\n}\n\n" (function_definition "code * FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)\n\n{\n  code *pcVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  undefined1 *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  code *pcVar18;\n  int iVar19;\n  int *piVar20;\n  code *unaff_s1;\n  int iVar21;\n  code *unaff_s4;\n  code *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  undefined4 uVar25;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  int *piStack_29c;\n  undefined4 uStack_298;\n  code *pcStack_294;\n  code *pcStack_290;\n  int iStack_28c;\n  undefined1 *puStack_288;\n  int iStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  int iStack_24c;\n  undefined1 *puStack_244;\n  code *pcStack_240;\n  code *pcStack_23c;\n  code *pcStack_238;\n  code *pcStack_234;\n  code *pcStack_230;\n  undefined4 uStack_22c;\n  code *pcStack_218;\n  undefined1 auStack_210 [12];\n  int iStack_204;\n  code *pcStack_200;\n  code *pcStack_1fc;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  int iStack_1d4;\n  code *pcStack_1d0;\n  code *pcStack_1cc;\n  code *pcStack_1c8;\n  code *pcStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  undefined1 auStack_198 [12];\n  code *pcStack_18c;\n  code *pcStack_184;\n  code *pcStack_180;\n  int iStack_17c;\n  code *pcStack_178;\n  code *pcStack_174;\n  undefined1 auStack_14c [128];\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  int *local_c0;\n  undefined1 local_94 [128];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;\n  pcVar11 = param_2;\n  if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }\n  pcVar15 = (code *)0x80;\n  if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }\n  iVar19 = local_14;\n  puVar22 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  local_c0 = param_1;\n  local_c4 = unaff_s1;\n  local_c8 = param_2;\n  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);\n  pcVar1 = *(code **)pcVar11;\n  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));\n  if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }\n  pcVar12 = (code *)&DAT_00000005;\n  if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }\n  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }\n  pcVar23 = *(code **)(puVar22 + 0x439ec);\n  pcVar9 = local_cc;\n  (*pcVar23)();\n  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);\n  pcVar18 = *(code **)(pcVar12 + 0x59c);\n  pcVar10 = pcVar9;\n  pcVar13 = pcVar12;\n  pcVar16 = pcVar15;\n  pcStack_184 = pcVar17;\n  pcStack_180 = pcVar11;\n  iStack_17c = iVar19;\n  pcStack_178 = pcVar1;\n  pcStack_174 = unaff_s4;\n  if (pcVar18 == (code *)0x0) goto LAB_0006e510;\n  pcVar1 = *(code **)(pcVar9 + 0xc78);\n  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }\n  pcVar10 = pcVar18;\n  FUN_0006dd58();\n  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }\n  *(int *)pcVar12 = 0;\n  pcVar11 = pcVar12;\n  unaff_s4 = pcVar15;\n  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }\nLAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }\n  pcVar15 = *(code **)(pcVar23 + 0x43814);\n  (*pcVar15)();\n  pcStack_1bc = unaff_s5;\n  pcStack_1c0 = unaff_s4;\n  pcStack_1c4 = pcVar1;\n  pcStack_1c8 = pcVar9;\n  pcStack_1cc = pcVar11;\n  pcStack_1d0 = pcVar18;\n  pcStack_1e8 = pcVar15 + 0x4ab28;\n  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);\n  if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar17 = FUN_0006e79c;\n  (*pcVar15)();\n  pcStack_218 = pcVar15 + 0x4a974;\n  iStack_204 = **(int **)(pcVar15 + 0x43838);\n  puVar14 = auStack_210;\n  pcStack_200 = pcVar18;\n  pcStack_1fc = pcVar17;\n  (**(code **)(pcVar15 + 0x4304c))();\n  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n  if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }\nLAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_218 + -0x74c8);\n  uVar25 = 0x6e860;\n  iVar19 = iStack_204;\n  (*pcVar15)();\n  iStack_24c = **(int **)(pcVar15 + 0x43774);\n  puStack_244 = auStack_210;\n  pcStack_240 = pcVar11;\n  pcStack_23c = pcVar9;\n  pcStack_238 = pcVar1;\n  pcStack_234 = unaff_s4;\n  pcStack_230 = pcVar10;\n  uStack_22c = uVar25;\n  (**(code **)(pcVar15 + 0x42914))(&uStack_254);\n  puVar2 = *(undefined4 **)(puVar14 + 8);\n  iVar3 = -1;\n  if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }\n  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }\n  return pcVar1;\n}" type_identifier (pointer_declarator "* FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)" * (function_declarator "FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)" identifier (parameter_list "(int *param_1,code *param_2,undefined4 param_3,code *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  code *pcVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  undefined1 *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  code *pcVar18;\n  int iVar19;\n  int *piVar20;\n  code *unaff_s1;\n  int iVar21;\n  code *unaff_s4;\n  code *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  undefined4 uVar25;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  int *piStack_29c;\n  undefined4 uStack_298;\n  code *pcStack_294;\n  code *pcStack_290;\n  int iStack_28c;\n  undefined1 *puStack_288;\n  int iStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  int iStack_24c;\n  undefined1 *puStack_244;\n  code *pcStack_240;\n  code *pcStack_23c;\n  code *pcStack_238;\n  code *pcStack_234;\n  code *pcStack_230;\n  undefined4 uStack_22c;\n  code *pcStack_218;\n  undefined1 auStack_210 [12];\n  int iStack_204;\n  code *pcStack_200;\n  code *pcStack_1fc;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  int iStack_1d4;\n  code *pcStack_1d0;\n  code *pcStack_1cc;\n  code *pcStack_1c8;\n  code *pcStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  undefined1 auStack_198 [12];\n  code *pcStack_18c;\n  code *pcStack_184;\n  code *pcStack_180;\n  int iStack_17c;\n  code *pcStack_178;\n  code *pcStack_174;\n  undefined1 auStack_14c [128];\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  int *local_c0;\n  undefined1 local_94 [128];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;\n  pcVar11 = param_2;\n  if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }\n  pcVar15 = (code *)0x80;\n  if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }\n  iVar19 = local_14;\n  puVar22 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  local_c0 = param_1;\n  local_c4 = unaff_s1;\n  local_c8 = param_2;\n  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);\n  pcVar1 = *(code **)pcVar11;\n  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));\n  if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }\n  pcVar12 = (code *)&DAT_00000005;\n  if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }\n  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }\n  pcVar23 = *(code **)(puVar22 + 0x439ec);\n  pcVar9 = local_cc;\n  (*pcVar23)();\n  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);\n  pcVar18 = *(code **)(pcVar12 + 0x59c);\n  pcVar10 = pcVar9;\n  pcVar13 = pcVar12;\n  pcVar16 = pcVar15;\n  pcStack_184 = pcVar17;\n  pcStack_180 = pcVar11;\n  iStack_17c = iVar19;\n  pcStack_178 = pcVar1;\n  pcStack_174 = unaff_s4;\n  if (pcVar18 == (code *)0x0) goto LAB_0006e510;\n  pcVar1 = *(code **)(pcVar9 + 0xc78);\n  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }\n  pcVar10 = pcVar18;\n  FUN_0006dd58();\n  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }\n  *(int *)pcVar12 = 0;\n  pcVar11 = pcVar12;\n  unaff_s4 = pcVar15;\n  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }\nLAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }\n  pcVar15 = *(code **)(pcVar23 + 0x43814);\n  (*pcVar15)();\n  pcStack_1bc = unaff_s5;\n  pcStack_1c0 = unaff_s4;\n  pcStack_1c4 = pcVar1;\n  pcStack_1c8 = pcVar9;\n  pcStack_1cc = pcVar11;\n  pcStack_1d0 = pcVar18;\n  pcStack_1e8 = pcVar15 + 0x4ab28;\n  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);\n  if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar17 = FUN_0006e79c;\n  (*pcVar15)();\n  pcStack_218 = pcVar15 + 0x4a974;\n  iStack_204 = **(int **)(pcVar15 + 0x43838);\n  puVar14 = auStack_210;\n  pcStack_200 = pcVar18;\n  pcStack_1fc = pcVar17;\n  (**(code **)(pcVar15 + 0x4304c))();\n  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n  if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }\nLAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_218 + -0x74c8);\n  uVar25 = 0x6e860;\n  iVar19 = iStack_204;\n  (*pcVar15)();\n  iStack_24c = **(int **)(pcVar15 + 0x43774);\n  puStack_244 = auStack_210;\n  pcStack_240 = pcVar11;\n  pcStack_23c = pcVar9;\n  pcStack_238 = pcVar1;\n  pcStack_234 = unaff_s4;\n  pcStack_230 = pcVar10;\n  uStack_22c = uVar25;\n  (**(code **)(pcVar15 + 0x42914))(&uStack_254);\n  puVar2 = *(undefined4 **)(puVar14 + 8);\n  iVar3 = -1;\n  if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }\n  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }\n  return pcVar1;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "code *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "code *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "code *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "undefined4 uStack_2b0;" type_identifier identifier ;) (declaration "undefined4 uStack_2ac;" type_identifier identifier ;) (declaration "undefined1 auStack_2a8 [12];" type_identifier (array_declarator "auStack_2a8 [12]" identifier [ number_literal ]) ;) (declaration "int *piStack_29c;" primitive_type (pointer_declarator "*piStack_29c" * identifier) ;) (declaration "undefined4 uStack_298;" type_identifier identifier ;) (declaration "code *pcStack_294;" type_identifier (pointer_declarator "*pcStack_294" * identifier) ;) (declaration "code *pcStack_290;" type_identifier (pointer_declarator "*pcStack_290" * identifier) ;) (declaration "int iStack_28c;" primitive_type identifier ;) (declaration "undefined1 *puStack_288;" type_identifier (pointer_declarator "*puStack_288" * identifier) ;) (declaration "int iStack_284;" primitive_type identifier ;) (declaration "undefined1 *puStack_280;" type_identifier (pointer_declarator "*puStack_280" * identifier) ;) (declaration "undefined4 uStack_254;" type_identifier identifier ;) (declaration "undefined4 uStack_250;" type_identifier identifier ;) (declaration "int iStack_24c;" primitive_type identifier ;) (declaration "undefined1 *puStack_244;" type_identifier (pointer_declarator "*puStack_244" * identifier) ;) (declaration "code *pcStack_240;" type_identifier (pointer_declarator "*pcStack_240" * identifier) ;) (declaration "code *pcStack_23c;" type_identifier (pointer_declarator "*pcStack_23c" * identifier) ;) (declaration "code *pcStack_238;" type_identifier (pointer_declarator "*pcStack_238" * identifier) ;) (declaration "code *pcStack_234;" type_identifier (pointer_declarator "*pcStack_234" * identifier) ;) (declaration "code *pcStack_230;" type_identifier (pointer_declarator "*pcStack_230" * identifier) ;) (declaration "undefined4 uStack_22c;" type_identifier identifier ;) (declaration "code *pcStack_218;" type_identifier (pointer_declarator "*pcStack_218" * identifier) ;) (declaration "undefined1 auStack_210 [12];" type_identifier (array_declarator "auStack_210 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_204;" primitive_type identifier ;) (declaration "code *pcStack_200;" type_identifier (pointer_declarator "*pcStack_200" * identifier) ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "code *pcStack_1e8;" type_identifier (pointer_declarator "*pcStack_1e8" * identifier) ;) (declaration "undefined1 auStack_1e0 [12];" type_identifier (array_declarator "auStack_1e0 [12]" identifier [ number_literal ]) ;) (declaration "int iStack_1d4;" primitive_type identifier ;) (declaration "code *pcStack_1d0;" type_identifier (pointer_declarator "*pcStack_1d0" * identifier) ;) (declaration "code *pcStack_1cc;" type_identifier (pointer_declarator "*pcStack_1cc" * identifier) ;) (declaration "code *pcStack_1c8;" type_identifier (pointer_declarator "*pcStack_1c8" * identifier) ;) (declaration "code *pcStack_1c4;" type_identifier (pointer_declarator "*pcStack_1c4" * identifier) ;) (declaration "code *pcStack_1c0;" type_identifier (pointer_declarator "*pcStack_1c0" * identifier) ;) (declaration "code *pcStack_1bc;" type_identifier (pointer_declarator "*pcStack_1bc" * identifier) ;) (declaration "undefined1 auStack_198 [12];" type_identifier (array_declarator "auStack_198 [12]" identifier [ number_literal ]) ;) (declaration "code *pcStack_18c;" type_identifier (pointer_declarator "*pcStack_18c" * identifier) ;) (declaration "code *pcStack_184;" type_identifier (pointer_declarator "*pcStack_184" * identifier) ;) (declaration "code *pcStack_180;" type_identifier (pointer_declarator "*pcStack_180" * identifier) ;) (declaration "int iStack_17c;" primitive_type identifier ;) (declaration "code *pcStack_178;" type_identifier (pointer_declarator "*pcStack_178" * identifier) ;) (declaration "code *pcStack_174;" type_identifier (pointer_declarator "*pcStack_174" * identifier) ;) (declaration "undefined1 auStack_14c [128];" type_identifier (array_declarator "auStack_14c [128]" identifier [ number_literal ]) ;) (declaration "code *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "code *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "code *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "int *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "undefined1 local_94 [128];" type_identifier (array_declarator "local_94 [128]" identifier [ number_literal ]) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000b1fd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(int *)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar11 = param_2;" (assignment_expression "pcVar11 = param_2" identifier = identifier) ;) (if_statement "if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }" if (parenthesized_expression "(*(int *)(*param_1 + 0x8c) != 0)" ( (binary_expression "*(int *)(*param_1 + 0x8c) != 0" (pointer_expression "*(int *)(*param_1 + 0x8c)" * (cast_expression "(int *)(*param_1 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x8c)" ( (binary_expression "*param_1 + 0x8c" (pointer_expression "*param_1" * identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }" { (expression_statement "pcVar11 = (code *)&DAT_00000005;" (assignment_expression "pcVar11 = (code *)&DAT_00000005" identifier = (cast_expression "(code *)&DAT_00000005" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (expression_statement "FUN_0004e860(*param_1,5,2);" (call_expression "FUN_0004e860(*param_1,5,2)" identifier (argument_list "(*param_1,5,2)" ( (pointer_expression "*param_1" * identifier) , number_literal , number_literal ))) ;) })) (expression_statement "pcVar15 = (code *)0x80;" (assignment_expression "pcVar15 = (code *)0x80" identifier = (cast_expression "(code *)0x80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" if (parenthesized_expression "(param_2 == (code *)0x0)" ( (binary_expression "param_2 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar1 = (code *)0x0;\n  }" { (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" else (compound_statement "{\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" { (expression_statement "unaff_s1 = (code *)local_94;" (assignment_expression "unaff_s1 = (code *)local_94" identifier = (cast_expression "(code *)local_94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0006dccc(param_1,unaff_s1);" (call_expression "FUN_0006dccc(param_1,unaff_s1)" identifier (argument_list "(param_1,unaff_s1)" ( identifier , identifier ))) ;) (expression_statement "pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);" (assignment_expression "pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" identifier = (cast_expression "(code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_strlen_000b1e9c)" ( (pointer_expression "*(code *)PTR_strlen_000b1e9c" * (cast_expression "(code *)PTR_strlen_000b1e9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))))) ;) (expression_statement "pcVar11 = unaff_s1;" (assignment_expression "pcVar11 = unaff_s1" identifier = identifier) ;) (expression_statement "pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);" (assignment_expression "pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2)" identifier = (cast_expression "(code *)(*(code *)PTR_FUN_000b11a8)(param_2)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_000b11a8)(param_2)" (parenthesized_expression "(*(code *)PTR_FUN_000b11a8)" ( (pointer_expression "*(code *)PTR_FUN_000b11a8" * (cast_expression "(code *)PTR_FUN_000b11a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) }))) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000b1fd4)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000b1fd4" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b1fd4" * (cast_expression "(int *)PTR___stack_chk_guard_000b1fd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar1;\n  }" { (return_statement "return pcVar1;" return identifier ;) })) (expression_statement "iVar19 = local_14;" (assignment_expression "iVar19 = local_14" identifier = identifier) ;) (expression_statement "puVar22 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar22 = PTR___stack_chk_fail_000b1c48" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" * (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_c0 = param_1;" (assignment_expression "local_c0 = param_1" identifier = identifier) ;) (expression_statement "local_c4 = unaff_s1;" (assignment_expression "local_c4 = unaff_s1" identifier = identifier) ;) (expression_statement "local_c8 = param_2;" (assignment_expression "local_c8 = param_2" identifier = identifier) ;) (expression_statement "local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);" (assignment_expression "local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78)" identifier = (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x43d78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar22 + 0x43d78)" * (pointer_expression "*(undefined4 **)(puVar22 + 0x43d78)" * (cast_expression "(undefined4 **)(puVar22 + 0x43d78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43d78)" ( (binary_expression "puVar22 + 0x43d78" identifier + number_literal) ))))))) ;) (expression_statement "pcVar1 = *(code **)pcVar11;" (assignment_expression "pcVar1 = *(code **)pcVar11" identifier = (pointer_expression "*(code **)pcVar11" * (cast_expression "(code **)pcVar11" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));" (assignment_expression "puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" identifier = (cast_expression "(undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" identifier (argument_list "(pcVar11,*(int *)(pcVar1 + 0xc78))" ( identifier , (pointer_expression "*(int *)(pcVar1 + 0xc78)" * (cast_expression "(int *)(pcVar1 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc78)" ( (binary_expression "pcVar1 + 0xc78" identifier + number_literal) )))) ))))) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }" { (expression_statement "puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" identifier = (cast_expression "(undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" (parenthesized_expression "(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))" ( (pointer_expression "*(code *)**(undefined4 **)(puVar22 + 0x42f3c)" * (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x42f3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar22 + 0x42f3c)" * (pointer_expression "*(undefined4 **)(puVar22 + 0x42f3c)" * (cast_expression "(undefined4 **)(puVar22 + 0x42f3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x42f3c)" ( (binary_expression "puVar22 + 0x42f3c" identifier + number_literal) ))))))) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }" { (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "(**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);" (call_expression "(**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0)" (parenthesized_expression "(**(code **)(puVar22 + 0x43254))" ( (pointer_expression "**(code **)(puVar22 + 0x43254)" * (pointer_expression "*(code **)(puVar22 + 0x43254)" * (cast_expression "(code **)(puVar22 + 0x43254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43254)" ( (binary_expression "puVar22 + 0x43254" identifier + number_literal) ))))) )) (argument_list "(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0)" ( (binary_expression "puVar2 + 2" identifier + number_literal) , (binary_expression "*(int *)(puVar22 + 0x4351c) + -0x23e0" (pointer_expression "*(int *)(puVar22 + 0x4351c)" * (cast_expression "(int *)(puVar22 + 0x4351c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x4351c)" ( (binary_expression "puVar22 + 0x4351c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s4 = (code *)auStack_14c;" (assignment_expression "unaff_s4 = (code *)auStack_14c" identifier = (cast_expression "(code *)auStack_14c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0006dccc(pcVar11,unaff_s4,0x80);" (call_expression "FUN_0006dccc(pcVar11,unaff_s4,0x80)" identifier (argument_list "(pcVar11,unaff_s4,0x80)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);" (assignment_expression "pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4)" identifier = (cast_expression "(code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + 0x43c40))(unaff_s4)" (parenthesized_expression "(**(code **)(puVar22 + 0x43c40))" ( (pointer_expression "**(code **)(puVar22 + 0x43c40)" * (pointer_expression "*(code **)(puVar22 + 0x43c40)" * (cast_expression "(code **)(puVar22 + 0x43c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43c40)" ( (binary_expression "puVar22 + 0x43c40" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier ))))) ;) (expression_statement "iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);" (assignment_expression "iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" identifier = (call_expression "(**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" (parenthesized_expression "(**(code **)(puVar22 + 0x42f80))" ( (pointer_expression "**(code **)(puVar22 + 0x42f80)" * (pointer_expression "*(code **)(puVar22 + 0x42f80)" * (cast_expression "(code **)(puVar22 + 0x42f80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x42f80)" ( (binary_expression "puVar22 + 0x42f80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" ( (pointer_expression "*(int *)(pcVar1 + 0xc78)" * (cast_expression "(int *)(pcVar1 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc78)" ( (binary_expression "pcVar1 + 0xc78" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (expression_statement "param_4 = pcVar11 + 4;" (assignment_expression "param_4 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;) (if_statement "if (iVar3 != 0) goto LAB_0006e2c4;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006e2c4;" goto statement_identifier ;)) (expression_statement "FUN_0006dc28(puVar2);" (call_expression "FUN_0006dc28(puVar2)" identifier (argument_list "(puVar2)" ( identifier ))) ;) })) (expression_statement "pcVar17 = (code *)0x1b;" (assignment_expression "pcVar17 = (code *)0x1b" identifier = (cast_expression "(code *)0x1b" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" else (compound_statement "{\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" { (labeled_statement "LAB_0006e2c4:\n    param_4 = pcVar11 + 4;" statement_identifier : (expression_statement "param_4 = pcVar11 + 4;" (assignment_expression "param_4 = pcVar11 + 4" identifier = (binary_expression "pcVar11 + 4" identifier + number_literal)) ;)) (expression_statement "pcVar15 = pcVar11;" (assignment_expression "pcVar15 = pcVar11" identifier = identifier) ;) (expression_statement "(**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);" (call_expression "(**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3])" (parenthesized_expression "(**(code **)(puVar22 + 0x43390))" ( (pointer_expression "**(code **)(puVar22 + 0x43390)" * (pointer_expression "*(code **)(puVar22 + 0x43390)" * (cast_expression "(code **)(puVar22 + 0x43390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43390)" ( (binary_expression "puVar22 + 0x43390" identifier + number_literal) ))))) )) (argument_list "(puVar2 + 2,puVar2[3])" ( (binary_expression "puVar2 + 2" identifier + number_literal) , (subscript_expression "puVar2[3]" identifier [ number_literal ]) ))) ;) (expression_statement "*(undefined4 **)(pcVar11 + 0x59c) = puVar2;" (assignment_expression "*(undefined4 **)(pcVar11 + 0x59c) = puVar2" (pointer_expression "*(undefined4 **)(pcVar11 + 0x59c)" * (cast_expression "(undefined4 **)(pcVar11 + 0x59c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x59c)" ( (binary_expression "pcVar11 + 0x59c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[1] = puVar2[1] + 1;" (assignment_expression "puVar2[1] = puVar2[1] + 1" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "puVar2[1] + 1" (subscript_expression "puVar2[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar3 = *(int *)(iVar19 + 0x1c);" (assignment_expression "iVar3 = *(int *)(iVar19 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x1c)" * (cast_expression "(int *)(iVar19 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x1c)" ( (binary_expression "iVar19 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar19 + 0x1c) = iVar3 + 1;" (assignment_expression "*(int *)(iVar19 + 0x1c) = iVar3 + 1" (pointer_expression "*(int *)(iVar19 + 0x1c)" * (cast_expression "(int *)(iVar19 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x1c)" ( (binary_expression "iVar19 + 0x1c" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(pcVar11 + 0x48) = iVar3;" (assignment_expression "*(int *)(pcVar11 + 0x48) = iVar3" (pointer_expression "*(int *)(pcVar11 + 0x48)" * (cast_expression "(int *)(pcVar11 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x48)" ( (binary_expression "pcVar11 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;" (assignment_expression "*(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1" (pointer_expression "*(int *)(iVar19 + 0x18)" * (cast_expression "(int *)(iVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar19 + 0x18) + 1" (pointer_expression "*(int *)(iVar19 + 0x18)" * (cast_expression "(int *)(iVar19 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x18)" ( (binary_expression "iVar19 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar17 = (code *)0x0;" (assignment_expression "pcVar17 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pcVar12 = (code *)&DAT_00000005;" (assignment_expression "pcVar12 = (code *)&DAT_00000005" identifier = (cast_expression "(code *)&DAT_00000005" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (if_statement "if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }" if (parenthesized_expression "(*(int *)(pcVar1 + 0x8c) != 0)" ( (binary_expression "*(int *)(pcVar1 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar1 + 0x8c)" * (cast_expression "(int *)(pcVar1 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x8c)" ( (binary_expression "pcVar1 + 0x8c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0004e8cc(pcVar1);\n  }" { (expression_statement "FUN_0004e8cc(pcVar1);" (call_expression "FUN_0004e8cc(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })) (if_statement "if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }" if (parenthesized_expression "(local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78))" ( (binary_expression "local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)" identifier == (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x43d78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar22 + 0x43d78)" * (pointer_expression "*(undefined4 **)(puVar22 + 0x43d78)" * (cast_expression "(undefined4 **)(puVar22 + 0x43d78)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x43d78)" ( (binary_expression "puVar22 + 0x43d78" identifier + number_literal) ))))))) )) (compound_statement "{\n    return pcVar17;\n  }" { (return_statement "return pcVar17;" return identifier ;) })) (expression_statement "pcVar23 = *(code **)(puVar22 + 0x439ec);" (assignment_expression "pcVar23 = *(code **)(puVar22 + 0x439ec)" identifier = (pointer_expression "*(code **)(puVar22 + 0x439ec)" * (cast_expression "(code **)(puVar22 + 0x439ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x439ec)" ( (binary_expression "puVar22 + 0x439ec" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = local_cc;" (assignment_expression "pcVar9 = local_cc" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);" (assignment_expression "pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0)" identifier = (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" * (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" * (cast_expression "(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x43ba0)" ( (binary_expression "pcVar23 + 0x43ba0" identifier + number_literal) ))))))) ;) (expression_statement "pcVar18 = *(code **)(pcVar12 + 0x59c);" (assignment_expression "pcVar18 = *(code **)(pcVar12 + 0x59c)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x59c)" * (cast_expression "(code **)(pcVar12 + 0x59c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x59c)" ( (binary_expression "pcVar12 + 0x59c" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" identifier = identifier) ;) (expression_statement "pcVar13 = pcVar12;" (assignment_expression "pcVar13 = pcVar12" identifier = identifier) ;) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" identifier = identifier) ;) (expression_statement "pcStack_184 = pcVar17;" (assignment_expression "pcStack_184 = pcVar17" identifier = identifier) ;) (expression_statement "pcStack_180 = pcVar11;" (assignment_expression "pcStack_180 = pcVar11" identifier = identifier) ;) (expression_statement "iStack_17c = iVar19;" (assignment_expression "iStack_17c = iVar19" identifier = identifier) ;) (expression_statement "pcStack_178 = pcVar1;" (assignment_expression "pcStack_178 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_174 = unaff_s4;" (assignment_expression "pcStack_174 = unaff_s4" identifier = identifier) ;) (if_statement "if (pcVar18 == (code *)0x0) goto LAB_0006e510;" if (parenthesized_expression "(pcVar18 == (code *)0x0)" ( (binary_expression "pcVar18 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e510;" goto statement_identifier ;)) (expression_statement "pcVar1 = *(code **)(pcVar9 + 0xc78);" (assignment_expression "pcVar1 = *(code **)(pcVar9 + 0xc78)" identifier = (pointer_expression "*(code **)(pcVar9 + 0xc78)" * (cast_expression "(code **)(pcVar9 + 0xc78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar9 + 0xc78)" ( (binary_expression "pcVar9 + 0xc78" identifier + number_literal) ))))) ;) (if_statement "if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }" if (parenthesized_expression "((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0))" ( (binary_expression "(pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)" (parenthesized_expression "(pcVar15 != (code *)0x0)" ( (binary_expression "pcVar15 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)" ( (comma_expression "pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0" (assignment_expression "pcVar16 = (code *)0x2" identifier = (cast_expression "(code *)0x2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "*(int *)(pcVar9 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar9 + 0x8c)" * (cast_expression "(int *)(pcVar9 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x8c)" ( (binary_expression "pcVar9 + 0x8c" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n    FUN_0004e860();\n  }" { (expression_statement "FUN_0004e860();" (call_expression "FUN_0004e860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar10 = pcVar18;" (assignment_expression "pcVar10 = pcVar18" identifier = identifier) ;) (expression_statement "FUN_0006dd58();" (call_expression "FUN_0006dd58()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" if (parenthesized_expression "((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0))" ( (binary_expression "(*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)" (parenthesized_expression "(*(int *)(pcVar18 + 4) == 0)" ( (binary_expression "*(int *)(pcVar18 + 4) == 0" (pointer_expression "*(int *)(pcVar18 + 4)" * (cast_expression "(int *)(pcVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 4)" ( (binary_expression "pcVar18 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)" ( (comma_expression "unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0" (assignment_expression "unaff_s5 = (code *)auStack_198" identifier = (cast_expression "(code *)auStack_198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "pcVar1 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }" { (expression_statement "pcVar13 = unaff_s5;" (assignment_expression "pcVar13 = unaff_s5" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar23 + 0x433b4))(pcVar1);" (call_expression "(**(code **)(pcVar23 + 0x433b4))(pcVar1)" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b4))" ( (pointer_expression "**(code **)(pcVar23 + 0x433b4)" * (pointer_expression "*(code **)(pcVar23 + 0x433b4)" * (cast_expression "(code **)(pcVar23 + 0x433b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x433b4)" ( (binary_expression "pcVar23 + 0x433b4" identifier + number_literal) ))))) )) (argument_list "(pcVar1)" ( identifier ))) ;) (expression_statement "pcVar10 = unaff_s5;" (assignment_expression "pcVar10 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar19 = (**(code **)(pcVar23 + 0x433b8))();" (assignment_expression "iVar19 = (**(code **)(pcVar23 + 0x433b8))()" identifier = (call_expression "(**(code **)(pcVar23 + 0x433b8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b8))" ( (pointer_expression "**(code **)(pcVar23 + 0x433b8)" * (pointer_expression "*(code **)(pcVar23 + 0x433b8)" * (cast_expression "(code **)(pcVar23 + 0x433b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x433b8)" ( (binary_expression "pcVar23 + 0x433b8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }" { (expression_statement "pcVar11 = *(code **)(iVar19 + 0xc);" (assignment_expression "pcVar11 = *(code **)(iVar19 + 0xc)" identifier = (pointer_expression "*(code **)(iVar19 + 0xc)" * (cast_expression "(code **)(iVar19 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) ))))) ;) (while_statement "while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }" while (parenthesized_expression "(pcVar18 != pcVar11)" ( (binary_expression "pcVar18 != pcVar11" identifier != identifier) )) (compound_statement "{\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }" { (expression_statement "pcVar10 = unaff_s5;" (assignment_expression "pcVar10 = unaff_s5" identifier = identifier) ;) (expression_statement "iVar19 = (**(code **)(pcVar23 + 0x433b8))();" (assignment_expression "iVar19 = (**(code **)(pcVar23 + 0x433b8))()" identifier = (call_expression "(**(code **)(pcVar23 + 0x433b8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b8))" ( (pointer_expression "**(code **)(pcVar23 + 0x433b8)" * (pointer_expression "*(code **)(pcVar23 + 0x433b8)" * (cast_expression "(code **)(pcVar23 + 0x433b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x433b8)" ( (binary_expression "pcVar23 + 0x433b8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar19 == 0) goto LAB_0006e5d4;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0006e5d4;" goto statement_identifier ;)) (expression_statement "pcVar11 = *(code **)(iVar19 + 0xc);" (assignment_expression "pcVar11 = *(code **)(iVar19 + 0xc)" identifier = (pointer_expression "*(code **)(iVar19 + 0xc)" * (cast_expression "(code **)(iVar19 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar16 = *(code **)(iVar19 + 0x10);" (assignment_expression "pcVar16 = *(code **)(iVar19 + 0x10)" identifier = (pointer_expression "*(code **)(iVar19 + 0x10)" * (cast_expression "(code **)(iVar19 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0x10)" ( (binary_expression "iVar19 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (code *)(iVar19 + 0x14);" (assignment_expression "pcVar13 = (code *)(iVar19 + 0x14)" identifier = (cast_expression "(code *)(iVar19 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x14)" ( (binary_expression "iVar19 + 0x14" identifier + number_literal) )))) ;) (expression_statement "pcVar10 = pcVar1;" (assignment_expression "pcVar10 = pcVar1" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar23 + 0x42d7c))();" (call_expression "(**(code **)(pcVar23 + 0x42d7c))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x42d7c))" ( (pointer_expression "**(code **)(pcVar23 + 0x42d7c)" * (pointer_expression "*(code **)(pcVar23 + 0x42d7c)" * (cast_expression "(code **)(pcVar23 + 0x42d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x42d7c)" ( (binary_expression "pcVar23 + 0x42d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0006e4d4;" goto statement_identifier ;) })) (labeled_statement "LAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;" statement_identifier : (expression_statement "*(int *)(pcVar12 + 0x59c) = 0;" (assignment_expression "*(int *)(pcVar12 + 0x59c) = 0" (pointer_expression "*(int *)(pcVar12 + 0x59c)" * (cast_expression "(int *)(pcVar12 + 0x59c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x59c)" ( (binary_expression "pcVar12 + 0x59c" identifier + number_literal) )))) = number_literal) ;)) (labeled_statement "LAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;" statement_identifier : (expression_statement "*(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;" (assignment_expression "*(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1" (pointer_expression "*(int *)(pcVar1 + 0x18)" * (cast_expression "(int *)(pcVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18)" ( (binary_expression "pcVar1 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar1 + 0x18) + -1" (pointer_expression "*(int *)(pcVar1 + 0x18)" * (cast_expression "(int *)(pcVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18)" ( (binary_expression "pcVar1 + 0x18" identifier + number_literal) )))) + number_literal)) ;)) }) (else_clause "else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" else (compound_statement "{\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" { (labeled_statement "LAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;" statement_identifier : (expression_statement "*(int *)(pcVar12 + 0x59c) = 0;" (assignment_expression "*(int *)(pcVar12 + 0x59c) = 0" (pointer_expression "*(int *)(pcVar12 + 0x59c)" * (cast_expression "(int *)(pcVar12 + 0x59c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x59c)" ( (binary_expression "pcVar12 + 0x59c" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;" if (parenthesized_expression "(pcVar1 != (code *)0x0)" ( (binary_expression "pcVar1 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e4dc;" goto statement_identifier ;)) }))) (expression_statement "*(int *)pcVar12 = 0;" (assignment_expression "*(int *)pcVar12 = 0" (pointer_expression "*(int *)pcVar12" * (cast_expression "(int *)pcVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar11 = pcVar12;" (assignment_expression "pcVar11 = pcVar12" identifier = identifier) ;) (expression_statement "unaff_s4 = pcVar15;" (assignment_expression "unaff_s4 = pcVar15" identifier = identifier) ;) (if_statement "if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }" if (parenthesized_expression "((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0))" ( (binary_expression "(pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)" (parenthesized_expression "(pcVar15 != (code *)0x0)" ( (binary_expression "pcVar15 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)" ( (comma_expression "pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0" (assignment_expression "pcVar13 = (code *)&DAT_00000005" identifier = (cast_expression "(code *)&DAT_00000005" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) , (binary_expression "*(int *)(pcVar9 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar9 + 0x8c)" * (cast_expression "(int *)(pcVar9 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0x8c)" ( (binary_expression "pcVar9 + 0x8c" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }" { (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" identifier = identifier) ;) (expression_statement "FUN_0004e8cc();" (call_expression "FUN_0004e8cc()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" statement_identifier : (if_statement "if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" if (parenthesized_expression "(pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0))" ( (binary_expression "pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)" identifier == (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" * (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" * (cast_expression "(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x43ba0)" ( (binary_expression "pcVar23 + 0x43ba0" identifier + number_literal) ))))))) )) (compound_statement "{\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" { (return_statement "return (code *)**(int **)(pcVar23 + 0x43ba0);" return (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" * (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" * (cast_expression "(int **)(pcVar23 + 0x43ba0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x43ba0)" ( (binary_expression "pcVar23 + 0x43ba0" identifier + number_literal) )))))) ;) }))) (expression_statement "pcVar15 = *(code **)(pcVar23 + 0x43814);" (assignment_expression "pcVar15 = *(code **)(pcVar23 + 0x43814)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x43814)" * (cast_expression "(code **)(pcVar23 + 0x43814)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x43814)" ( (binary_expression "pcVar23 + 0x43814" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_1bc = unaff_s5;" (assignment_expression "pcStack_1bc = unaff_s5" identifier = identifier) ;) (expression_statement "pcStack_1c0 = unaff_s4;" (assignment_expression "pcStack_1c0 = unaff_s4" identifier = identifier) ;) (expression_statement "pcStack_1c4 = pcVar1;" (assignment_expression "pcStack_1c4 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_1c8 = pcVar9;" (assignment_expression "pcStack_1c8 = pcVar9" identifier = identifier) ;) (expression_statement "pcStack_1cc = pcVar11;" (assignment_expression "pcStack_1cc = pcVar11" identifier = identifier) ;) (expression_statement "pcStack_1d0 = pcVar18;" (assignment_expression "pcStack_1d0 = pcVar18" identifier = identifier) ;) (expression_statement "pcStack_1e8 = pcVar15 + 0x4ab28;" (assignment_expression "pcStack_1e8 = pcVar15 + 0x4ab28" identifier = (binary_expression "pcVar15 + 0x4ab28" identifier + number_literal)) ;) (expression_statement "iStack_1d4 = **(int **)(pcVar15 + 0x439ec);" (assignment_expression "iStack_1d4 = **(int **)(pcVar15 + 0x439ec)" identifier = (pointer_expression "**(int **)(pcVar15 + 0x439ec)" * (pointer_expression "*(int **)(pcVar15 + 0x439ec)" * (cast_expression "(int **)(pcVar15 + 0x439ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x439ec)" ( (binary_expression "pcVar15 + 0x439ec" identifier + number_literal) )))))) ;) (if_statement "if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" if (parenthesized_expression "(pcVar13 == (code *)0x0)" ( (binary_expression "pcVar13 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar15 = (code *)0x0;\n  }" { (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" else (compound_statement "{\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" { (if_statement "if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }" if (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) != 0)" ( (binary_expression "*(int *)(pcVar10 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" * (cast_expression "(int *)(pcVar10 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x8c)" ( (binary_expression "pcVar10 + 0x8c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      FUN_0004e860();\n    }" { (expression_statement "FUN_0004e860();" (call_expression "FUN_0004e860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar1 = (code *)auStack_1e0;" (assignment_expression "pcVar1 = (code *)auStack_1e0" identifier = (cast_expression "(code *)auStack_1e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);" (call_expression "(**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7928))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7928)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7928)" * (cast_expression "(code **)(pcStack_1e8 + -0x7928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7928)" ( (binary_expression "pcStack_1e8 + -0x7928" identifier + number_literal) ))))) )) (argument_list "(pcVar13,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);" (assignment_expression "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" identifier = (cast_expression "(code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7924)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7924)" * (cast_expression "(code **)(pcStack_1e8 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7924)" ( (binary_expression "pcStack_1e8 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(pcVar1)" ( identifier ))))) ;) (expression_statement "pcVar18 = pcVar13;" (assignment_expression "pcVar18 = pcVar13" identifier = identifier) ;) (expression_statement "pcVar9 = param_4;" (assignment_expression "pcVar9 = param_4" identifier = identifier) ;) (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) (if_statement "if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }" if (parenthesized_expression "(unaff_s4 != (code *)0x0)" ( (binary_expression "unaff_s4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }" { (expression_statement "unaff_s6 = auStack_1e0;" (assignment_expression "unaff_s6 = auStack_1e0" identifier = identifier) ;) (expression_statement "pcVar1 = (code *)0x1;" (assignment_expression "pcVar1 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);" do (compound_statement "{\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      }" { (expression_statement "iVar19 = *(int *)(unaff_s4 + 0xc);" (assignment_expression "iVar19 = *(int *)(unaff_s4 + 0xc)" identifier = (pointer_expression "*(int *)(unaff_s4 + 0xc)" * (cast_expression "(int *)(unaff_s4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 0xc)" ( (binary_expression "unaff_s4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);" (assignment_expression "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" identifier = (cast_expression "(code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_1e8 + -0x7924)" * (pointer_expression "*(code **)(pcStack_1e8 + -0x7924)" * (cast_expression "(code **)(pcStack_1e8 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x7924)" ( (binary_expression "pcStack_1e8 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(unaff_s6)" ( identifier ))))) ;) (expression_statement "pcVar18 = *(code **)(iVar19 + 8);" (assignment_expression "pcVar18 = *(code **)(iVar19 + 8)" identifier = (pointer_expression "*(code **)(iVar19 + 8)" * (cast_expression "(code **)(iVar19 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 8)" ( (binary_expression "iVar19 + 8" identifier + number_literal) ))))) ;) (while_statement "while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }" while (parenthesized_expression "(pcVar18 != (code *)0x0)" ( (binary_expression "pcVar18 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }" { (expression_statement "iVar19 = *(int *)pcVar18;" (assignment_expression "iVar19 = *(int *)pcVar18" identifier = (pointer_expression "*(int *)pcVar18" * (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar18 = *(code **)(pcVar18 + 8);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 8)" identifier = (pointer_expression "*(code **)(pcVar18 + 8)" * (cast_expression "(code **)(pcVar18 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 8)" ( (binary_expression "pcVar18 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = (*param_4)(iVar19,pcVar16);" (assignment_expression "iVar19 = (*param_4)(iVar19,pcVar16)" identifier = (call_expression "(*param_4)(iVar19,pcVar16)" (parenthesized_expression "(*param_4)" ( (pointer_expression "*param_4" * identifier) )) (argument_list "(iVar19,pcVar16)" ( identifier , identifier )))) ;) (if_statement "if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }" if (parenthesized_expression "(iVar19 == 1)" ( (binary_expression "iVar19 == 1" identifier == number_literal) )) (compound_statement "{\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }" { (if_statement "if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" if (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) == 0)" ( (binary_expression "*(int *)(pcVar10 + 0x8c) == 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" * (cast_expression "(int *)(pcVar10 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x8c)" ( (binary_expression "pcVar10 + 0x8c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              pcVar15 = (code *)0x1;\n            }" { (expression_statement "pcVar15 = (code *)0x1;" (assignment_expression "pcVar15 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" else (compound_statement "{\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" { (expression_statement "FUN_0004e8cc(pcVar10,5);" (call_expression "FUN_0004e8cc(pcVar10,5)" identifier (argument_list "(pcVar10,5)" ( identifier , number_literal ))) ;) (expression_statement "pcVar15 = (code *)0x1;" (assignment_expression "pcVar15 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0006e740;" goto statement_identifier ;) })) })) (expression_statement "pcVar18 = (code *)0x0;" (assignment_expression "pcVar18 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) while (parenthesized_expression "(unaff_s4 != (code *)0x0)" ( (binary_expression "unaff_s4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" if (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) == 0)" ( (binary_expression "*(int *)(pcVar10 + 0x8c) == 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" * (cast_expression "(int *)(pcVar10 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x8c)" ( (binary_expression "pcVar10 + 0x8c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar15 = (code *)0x0;\n    }" { (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" else (compound_statement "{\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" { (expression_statement "FUN_0004e8cc(pcVar10,5);" (call_expression "FUN_0004e8cc(pcVar10,5)" identifier (argument_list "(pcVar10,5)" ( identifier , number_literal ))) ;) (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }" statement_identifier : (if_statement "if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }" if (parenthesized_expression "(iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c))" ( (binary_expression "iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)" identifier == (pointer_expression "**(int **)(pcStack_1e8 + -0x713c)" * (pointer_expression "*(int **)(pcStack_1e8 + -0x713c)" * (cast_expression "(int **)(pcStack_1e8 + -0x713c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x713c)" ( (binary_expression "pcStack_1e8 + -0x713c" identifier + number_literal) )))))) )) (compound_statement "{\n    return pcVar15;\n  }" { (return_statement "return pcVar15;" return identifier ;) }))) (expression_statement "pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);" (assignment_expression "pcVar15 = *(code **)(pcStack_1e8 + -0x74c8)" identifier = (pointer_expression "*(code **)(pcStack_1e8 + -0x74c8)" * (cast_expression "(code **)(pcStack_1e8 + -0x74c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1e8 + -0x74c8)" ( (binary_expression "pcStack_1e8 + -0x74c8" identifier + number_literal) ))))) ;) (expression_statement "pcVar17 = FUN_0006e79c;" (assignment_expression "pcVar17 = FUN_0006e79c" identifier = identifier) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_218 = pcVar15 + 0x4a974;" (assignment_expression "pcStack_218 = pcVar15 + 0x4a974" identifier = (binary_expression "pcVar15 + 0x4a974" identifier + number_literal)) ;) (expression_statement "iStack_204 = **(int **)(pcVar15 + 0x43838);" (assignment_expression "iStack_204 = **(int **)(pcVar15 + 0x43838)" identifier = (pointer_expression "**(int **)(pcVar15 + 0x43838)" * (pointer_expression "*(int **)(pcVar15 + 0x43838)" * (cast_expression "(int **)(pcVar15 + 0x43838)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43838)" ( (binary_expression "pcVar15 + 0x43838" identifier + number_literal) )))))) ;) (expression_statement "puVar14 = auStack_210;" (assignment_expression "puVar14 = auStack_210" identifier = identifier) ;) (expression_statement "pcStack_200 = pcVar18;" (assignment_expression "pcStack_200 = pcVar18" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar17;" (assignment_expression "pcStack_1fc = pcVar17" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar15 + 0x4304c))();" (call_expression "(**(code **)(pcVar15 + 0x4304c))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x4304c))" ( (pointer_expression "**(code **)(pcVar15 + 0x4304c)" * (pointer_expression "*(code **)(pcVar15 + 0x4304c)" * (cast_expression "(code **)(pcVar15 + 0x4304c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x4304c)" ( (binary_expression "pcVar15 + 0x4304c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);" (assignment_expression "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" identifier = (cast_expression "(code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (parenthesized_expression "(**(code **)(pcStack_218 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_218 + -0x7924)" * (pointer_expression "*(code **)(pcStack_218 + -0x7924)" * (cast_expression "(code **)(pcStack_218 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x7924)" ( (binary_expression "pcStack_218 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(auStack_210)" ( identifier ))))) ;) (if_statement "if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }" if (parenthesized_expression "(pcVar15 != (code *)0x0)" ( (binary_expression "pcVar15 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }" { (expression_statement "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);" (assignment_expression "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8)" identifier = (pointer_expression "*(int **)(*(int *)(pcVar15 + 0xc) + 8)" * (cast_expression "(int **)(*(int *)(pcVar15 + 0xc) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar15 + 0xc) + 8)" ( (binary_expression "*(int *)(pcVar15 + 0xc) + 8" (pointer_expression "*(int *)(pcVar15 + 0xc)" * (cast_expression "(int *)(pcVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }" while (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }" { (expression_statement "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);" (assignment_expression "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" identifier = (cast_expression "(code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (parenthesized_expression "(**(code **)(pcStack_218 + -0x7924))" ( (pointer_expression "**(code **)(pcStack_218 + -0x7924)" * (pointer_expression "*(code **)(pcStack_218 + -0x7924)" * (cast_expression "(code **)(pcStack_218 + -0x7924)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x7924)" ( (binary_expression "pcStack_218 + -0x7924" identifier + number_literal) ))))) )) (argument_list "(auStack_210)" ( identifier ))))) ;) (if_statement "if (pcVar15 == (code *)0x0) goto LAB_0006e834;" if (parenthesized_expression "(pcVar15 == (code *)0x0)" ( (binary_expression "pcVar15 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0006e834;" goto statement_identifier ;)) (expression_statement "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);" (assignment_expression "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8)" identifier = (pointer_expression "*(int **)(*(int *)(pcVar15 + 0xc) + 8)" * (cast_expression "(int **)(*(int *)(pcVar15 + 0xc) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar15 + 0xc) + 8)" ( (binary_expression "*(int *)(pcVar15 + 0xc) + 8" (pointer_expression "*(int *)(pcVar15 + 0xc)" * (cast_expression "(int *)(pcVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0xc)" ( (binary_expression "pcVar15 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "pcVar15 = (code *)*piVar4;" (assignment_expression "pcVar15 = (code *)*piVar4" identifier = (cast_expression "(code *)*piVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) })) (labeled_statement "LAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }" statement_identifier : (if_statement "if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }" if (parenthesized_expression "(iStack_204 == **(int **)(pcStack_218 + -0x713c))" ( (binary_expression "iStack_204 == **(int **)(pcStack_218 + -0x713c)" identifier == (pointer_expression "**(int **)(pcStack_218 + -0x713c)" * (pointer_expression "*(int **)(pcStack_218 + -0x713c)" * (cast_expression "(int **)(pcStack_218 + -0x713c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x713c)" ( (binary_expression "pcStack_218 + -0x713c" identifier + number_literal) )))))) )) (compound_statement "{\n    return pcVar15;\n  }" { (return_statement "return pcVar15;" return identifier ;) }))) (expression_statement "pcVar15 = *(code **)(pcStack_218 + -0x74c8);" (assignment_expression "pcVar15 = *(code **)(pcStack_218 + -0x74c8)" identifier = (pointer_expression "*(code **)(pcStack_218 + -0x74c8)" * (cast_expression "(code **)(pcStack_218 + -0x74c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_218 + -0x74c8)" ( (binary_expression "pcStack_218 + -0x74c8" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = 0x6e860;" (assignment_expression "uVar25 = 0x6e860" identifier = number_literal) ;) (expression_statement "iVar19 = iStack_204;" (assignment_expression "iVar19 = iStack_204" identifier = identifier) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_24c = **(int **)(pcVar15 + 0x43774);" (assignment_expression "iStack_24c = **(int **)(pcVar15 + 0x43774)" identifier = (pointer_expression "**(int **)(pcVar15 + 0x43774)" * (pointer_expression "*(int **)(pcVar15 + 0x43774)" * (cast_expression "(int **)(pcVar15 + 0x43774)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43774)" ( (binary_expression "pcVar15 + 0x43774" identifier + number_literal) )))))) ;) (expression_statement "puStack_244 = auStack_210;" (assignment_expression "puStack_244 = auStack_210" identifier = identifier) ;) (expression_statement "pcStack_240 = pcVar11;" (assignment_expression "pcStack_240 = pcVar11" identifier = identifier) ;) (expression_statement "pcStack_23c = pcVar9;" (assignment_expression "pcStack_23c = pcVar9" identifier = identifier) ;) (expression_statement "pcStack_238 = pcVar1;" (assignment_expression "pcStack_238 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_234 = unaff_s4;" (assignment_expression "pcStack_234 = unaff_s4" identifier = identifier) ;) (expression_statement "pcStack_230 = pcVar10;" (assignment_expression "pcStack_230 = pcVar10" identifier = identifier) ;) (expression_statement "uStack_22c = uVar25;" (assignment_expression "uStack_22c = uVar25" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar15 + 0x42914))(&uStack_254);" (call_expression "(**(code **)(pcVar15 + 0x42914))(&uStack_254)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42914))" ( (pointer_expression "**(code **)(pcVar15 + 0x42914)" * (pointer_expression "*(code **)(pcVar15 + 0x42914)" * (cast_expression "(code **)(pcVar15 + 0x42914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42914)" ( (binary_expression "pcVar15 + 0x42914" identifier + number_literal) ))))) )) (argument_list "(&uStack_254)" ( (pointer_expression "&uStack_254" & identifier) ))) ;) (expression_statement "puVar2 = *(undefined4 **)(puVar14 + 8);" (assignment_expression "puVar2 = *(undefined4 **)(puVar14 + 8)" identifier = (pointer_expression "*(undefined4 **)(puVar14 + 8)" * (cast_expression "(undefined4 **)(puVar14 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 8)" ( (binary_expression "puVar14 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar1 = (code *)0x0;\n  }" { (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" else (compound_statement "{\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" { (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);" do (compound_statement "{\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    }" { (expression_statement "pcVar11 = (code *)*puVar2;" (assignment_expression "pcVar11 = (code *)*puVar2" identifier = (cast_expression "(code *)*puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }" if (parenthesized_expression "((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5))" ( (binary_expression "(*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)" (parenthesized_expression "(*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0)" ( (binary_expression "*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0" (binary_expression "*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330)" (pointer_expression "*(int *)(pcVar11 + 800)" * (cast_expression "(int *)(pcVar11 + 800)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 800)" ( (binary_expression "pcVar11 + 800" identifier + number_literal) )))) + (pointer_expression "*(int *)(pcVar11 + 0x330)" * (cast_expression "(int *)(pcVar11 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x330)" ( (binary_expression "pcVar11 + 0x330" identifier + number_literal) ))))) == number_literal) )) && (parenthesized_expression "(iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)" ( (comma_expression "iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5" (assignment_expression "iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" identifier = (call_expression "(**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" (parenthesized_expression "(**(code **)(pcVar15 + 0x429c0))" ( (pointer_expression "**(code **)(pcVar15 + 0x429c0)" * (pointer_expression "*(code **)(pcVar15 + 0x429c0)" * (cast_expression "(code **)(pcVar15 + 0x429c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x429c0)" ( (binary_expression "pcVar15 + 0x429c0" identifier + number_literal) ))))) )) (argument_list "(uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" ( identifier , identifier , (pointer_expression "*(int *)(pcVar11 + 0x188)" * (cast_expression "(int *)(pcVar11 + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x188)" ( (binary_expression "pcVar11 + 0x188" identifier + number_literal) )))) , (pointer_expression "*(int *)(pcVar11 + 0x18c)" * (cast_expression "(int *)(pcVar11 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x18c)" ( (binary_expression "pcVar11 + 0x18c" identifier + number_literal) )))) )))) , (binary_expression "iVar3 < iVar5" identifier < identifier)) ))) )) (compound_statement "{\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }" { (expression_statement "pcVar1 = pcVar11;" (assignment_expression "pcVar1 = pcVar11" identifier = identifier) ;) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" identifier = identifier) ;) })) (expression_statement "puVar2 = (undefined4 *)puVar2[2];" (assignment_expression "puVar2 = (undefined4 *)puVar2[2]" identifier = (cast_expression "(undefined4 *)puVar2[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }" if (parenthesized_expression "(pcVar1 != (code *)0x0)" ( (binary_expression "pcVar1 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }" { (expression_statement "FUN_0006dd58(puVar14,pcVar1);" (call_expression "FUN_0006dd58(puVar14,pcVar1)" identifier (argument_list "(puVar14,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;" (assignment_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1" (pointer_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" * (cast_expression "(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xc78) + 0x18)" ( (binary_expression "*(int *)(iVar19 + 0xc78) + 0x18" (pointer_expression "*(int *)(iVar19 + 0xc78)" * (cast_expression "(int *)(iVar19 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc78)" ( (binary_expression "iVar19 + 0xc78" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1" (pointer_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" * (cast_expression "(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xc78) + 0x18)" ( (binary_expression "*(int *)(iVar19 + 0xc78) + 0x18" (pointer_expression "*(int *)(iVar19 + 0xc78)" * (cast_expression "(int *)(iVar19 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xc78)" ( (binary_expression "iVar19 + 0xc78" identifier + number_literal) )))) + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)pcVar1 = iVar19;" (assignment_expression "*(int *)pcVar1 = iVar19" (pointer_expression "*(int *)pcVar1" * (cast_expression "(int *)pcVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) }))) (if_statement "if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }" if (parenthesized_expression "(iStack_24c != **(int **)(pcVar15 + 0x43774))" ( (binary_expression "iStack_24c != **(int **)(pcVar15 + 0x43774)" identifier != (pointer_expression "**(int **)(pcVar15 + 0x43774)" * (pointer_expression "*(int **)(pcVar15 + 0x43774)" * (cast_expression "(int **)(pcVar15 + 0x43774)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43774)" ( (binary_expression "pcVar15 + 0x43774" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }" { (expression_statement "pcVar15 = *(code **)(pcVar15 + 0x433e8);" (assignment_expression "pcVar15 = *(code **)(pcVar15 + 0x433e8)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x433e8)" * (cast_expression "(code **)(pcVar15 + 0x433e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x433e8)" ( (binary_expression "pcVar15 + 0x433e8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iStack_24c;" (assignment_expression "iVar5 = iStack_24c" identifier = identifier) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);" (assignment_expression "piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634)" identifier = (cast_expression "(int *)**(undefined4 **)(pcVar15 + 0x43634)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar15 + 0x43634)" * (pointer_expression "*(undefined4 **)(pcVar15 + 0x43634)" * (cast_expression "(undefined4 **)(pcVar15 + 0x43634)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43634)" ( (binary_expression "pcVar15 + 0x43634" identifier + number_literal) ))))))) ;) (expression_statement "iVar24 = *(int *)(iVar5 + 0xc78);" (assignment_expression "iVar24 = *(int *)(iVar5 + 0xc78)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc78)" * (cast_expression "(int *)(iVar5 + 0xc78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc78)" ( (binary_expression "iVar5 + 0xc78" identifier + number_literal) ))))) ;) (expression_statement "uStack_298 = 0;" (assignment_expression "uStack_298 = 0" identifier = number_literal) ;) (expression_statement "pcStack_294 = pcVar11;" (assignment_expression "pcStack_294 = pcVar11" identifier = identifier) ;) (expression_statement "pcStack_290 = pcVar1;" (assignment_expression "pcStack_290 = pcVar1" identifier = identifier) ;) (expression_statement "iStack_28c = iVar3;" (assignment_expression "iStack_28c = iVar3" identifier = identifier) ;) (expression_statement "puStack_288 = puVar14;" (assignment_expression "puStack_288 = puVar14" identifier = identifier) ;) (expression_statement "iStack_284 = iVar19;" (assignment_expression "iStack_284 = iVar19" identifier = identifier) ;) (expression_statement "puStack_280 = unaff_s6;" (assignment_expression "puStack_280 = unaff_s6" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);" (call_expression "(**(code **)(pcVar15 + 0x427d4))(&uStack_2b0)" (parenthesized_expression "(**(code **)(pcVar15 + 0x427d4))" ( (pointer_expression "**(code **)(pcVar15 + 0x427d4)" * (pointer_expression "*(code **)(pcVar15 + 0x427d4)" * (cast_expression "(code **)(pcVar15 + 0x427d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x427d4)" ( (binary_expression "pcVar15 + 0x427d4" identifier + number_literal) ))))) )) (argument_list "(&uStack_2b0)" ( (pointer_expression "&uStack_2b0" & identifier) ))) ;) (if_statement "if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }" if (parenthesized_expression "(*(int *)(iVar5 + 0x8c) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x8c) != 0" (pointer_expression "*(int *)(iVar5 + 0x8c)" * (cast_expression "(int *)(iVar5 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x8c)" ( (binary_expression "iVar5 + 0x8c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }" { (expression_statement "(**(code **)(pcVar15 + 0x42824))(iVar5,5,2);" (call_expression "(**(code **)(pcVar15 + 0x42824))(iVar5,5,2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42824))" ( (pointer_expression "**(code **)(pcVar15 + 0x42824)" * (pointer_expression "*(code **)(pcVar15 + 0x42824)" * (cast_expression "(code **)(pcVar15 + 0x42824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42824)" ( (binary_expression "pcVar15 + 0x42824" identifier + number_literal) ))))) )) (argument_list "(iVar5,5,2)" ( identifier , number_literal , number_literal ))) ;) })) (expression_statement "(**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);" (call_expression "(**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42e48))" ( (pointer_expression "**(code **)(pcVar15 + 0x42e48)" * (pointer_expression "*(code **)(pcVar15 + 0x42e48)" * (cast_expression "(code **)(pcVar15 + 0x42e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42e48)" ( (binary_expression "pcVar15 + 0x42e48" identifier + number_literal) ))))) )) (argument_list "(iVar24,auStack_2a8)" ( identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);" (assignment_expression "iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8)" identifier = (call_expression "(**(code **)(pcVar15 + 0x42e4c))(auStack_2a8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42e4c))" ( (pointer_expression "**(code **)(pcVar15 + 0x42e4c)" * (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" * (cast_expression "(code **)(pcVar15 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42e4c)" ( (binary_expression "pcVar15 + 0x42e4c" identifier + number_literal) ))))) )) (argument_list "(auStack_2a8)" ( identifier )))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = (code *)0x0;\n    }" { (expression_statement "pcVar11 = (code *)0x0;" (assignment_expression "pcVar11 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" else (compound_statement "{\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" { (expression_statement "pcVar11 = (code *)0x0;" (assignment_expression "pcVar11 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar21 = -1;" (assignment_expression "iVar21 = -1" identifier = number_literal) ;) (do_statement "do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);" do (compound_statement "{\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      }" { (expression_statement "iVar3 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = *(undefined4 **)(iVar3 + 8);" (assignment_expression "puVar2 = *(undefined4 **)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 **)(iVar3 + 8)" * (cast_expression "(undefined4 **)(iVar3 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" { (expression_statement "pcVar1 = *(code **)(pcVar15 + 0x42e4c);" (assignment_expression "pcVar1 = *(code **)(pcVar15 + 0x42e4c)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" * (cast_expression "(code **)(pcVar15 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42e4c)" ( (binary_expression "pcVar15 + 0x42e4c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" else (compound_statement "{\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" { (do_statement "do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);" do (compound_statement "{\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          }" { (expression_statement "pcVar1 = (code *)*puVar2;" (assignment_expression "pcVar1 = (code *)*puVar2" identifier = (cast_expression "(code *)*puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (if_statement "if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }" if (parenthesized_expression "((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6))" ( (binary_expression "(*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)" (parenthesized_expression "(*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0)" ( (binary_expression "*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0" (binary_expression "*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330)" (pointer_expression "*(int *)(pcVar1 + 800)" * (cast_expression "(int *)(pcVar1 + 800)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 800)" ( (binary_expression "pcVar1 + 800" identifier + number_literal) )))) + (pointer_expression "*(int *)(pcVar1 + 0x330)" * (cast_expression "(int *)(pcVar1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x330)" ( (binary_expression "pcVar1 + 0x330" identifier + number_literal) ))))) == number_literal) )) && (parenthesized_expression "(iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)" ( (comma_expression "iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6" (assignment_expression "iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" identifier = (call_expression "(**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" (parenthesized_expression "(**(code **)(pcVar15 + 0x42880))" ( (pointer_expression "**(code **)(pcVar15 + 0x42880)" * (pointer_expression "*(code **)(pcVar15 + 0x42880)" * (cast_expression "(code **)(pcVar15 + 0x42880)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42880)" ( (binary_expression "pcVar15 + 0x42880" identifier + number_literal) ))))) )) (argument_list "(uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" ( identifier , identifier , (pointer_expression "*(int *)(pcVar1 + 0x188)" * (cast_expression "(int *)(pcVar1 + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x188)" ( (binary_expression "pcVar1 + 0x188" identifier + number_literal) )))) , (pointer_expression "*(int *)(pcVar1 + 0x18c)" * (cast_expression "(int *)(pcVar1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18c)" ( (binary_expression "pcVar1 + 0x18c" identifier + number_literal) )))) )))) , (binary_expression "iVar21 < iVar6" identifier < identifier)) ))) )) (compound_statement "{\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }" { (expression_statement "iVar21 = iVar6;" (assignment_expression "iVar21 = iVar6" identifier = identifier) ;) (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" identifier = identifier) ;) (expression_statement "iVar19 = iVar3;" (assignment_expression "iVar19 = iVar3" identifier = identifier) ;) })) (expression_statement "puVar2 = (undefined4 *)puVar2[2];" (assignment_expression "puVar2 = (undefined4 *)puVar2[2]" identifier = (cast_expression "(undefined4 *)puVar2[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[2]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar1 = *(code **)(pcVar15 + 0x42e4c);" (assignment_expression "pcVar1 = *(code **)(pcVar15 + 0x42e4c)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" * (cast_expression "(code **)(pcVar15 + 0x42e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x42e4c)" ( (binary_expression "pcVar15 + 0x42e4c" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar3 = (*pcVar1)(auStack_2a8);" (assignment_expression "iVar3 = (*pcVar1)(auStack_2a8)" identifier = (call_expression "(*pcVar1)(auStack_2a8)" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "(auStack_2a8)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (if_statement "if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }" if (parenthesized_expression "(pcVar11 != (code *)0x0)" ( (binary_expression "pcVar11 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }" { (expression_statement "FUN_0006dd58(iVar19,pcVar11);" (call_expression "FUN_0006dd58(iVar19,pcVar11)" identifier (argument_list "(iVar19,pcVar11)" ( identifier , identifier ))) ;) (expression_statement "*(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;" (assignment_expression "*(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar24 + 0x18) + -1" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)pcVar11 = iVar5;" (assignment_expression "*(int *)pcVar11 = iVar5" (pointer_expression "*(int *)pcVar11" * (cast_expression "(int *)pcVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) }))) (if_statement "if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }" if (parenthesized_expression "(*(int *)(iVar5 + 0x8c) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x8c) != 0" (pointer_expression "*(int *)(iVar5 + 0x8c)" * (cast_expression "(int *)(iVar5 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x8c)" ( (binary_expression "iVar5 + 0x8c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }" { (expression_statement "(**(code **)(pcVar15 + 0x4282c))(iVar5,5);" (call_expression "(**(code **)(pcVar15 + 0x4282c))(iVar5,5)" (parenthesized_expression "(**(code **)(pcVar15 + 0x4282c))" ( (pointer_expression "**(code **)(pcVar15 + 0x4282c)" * (pointer_expression "*(code **)(pcVar15 + 0x4282c)" * (cast_expression "(code **)(pcVar15 + 0x4282c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x4282c)" ( (binary_expression "pcVar15 + 0x4282c" identifier + number_literal) ))))) )) (argument_list "(iVar5,5)" ( identifier , number_literal ))) ;) })) (if_statement "if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }" if (parenthesized_expression "(piStack_29c != (int *)**(int **)(pcVar15 + 0x43634))" ( (binary_expression "piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)" identifier != (cast_expression "(int *)**(int **)(pcVar15 + 0x43634)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar15 + 0x43634)" * (pointer_expression "*(int **)(pcVar15 + 0x43634)" * (cast_expression "(int **)(pcVar15 + 0x43634)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x43634)" ( (binary_expression "pcVar15 + 0x43634" identifier + number_literal) ))))))) )) (compound_statement "{\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }" { (expression_statement "pcVar11 = *(code **)(pcVar15 + 0x432a8);" (assignment_expression "pcVar11 = *(code **)(pcVar15 + 0x432a8)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x432a8)" * (cast_expression "(code **)(pcVar15 + 0x432a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x432a8)" ( (binary_expression "pcVar15 + 0x432a8" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = piStack_29c;" (assignment_expression "piVar4 = piStack_29c" identifier = identifier) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar19 = *piVar4;" (assignment_expression "iVar19 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);" (assignment_expression "uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" * (cast_expression "(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x84) + 0xb8)" ( (binary_expression "*(int *)(iVar19 + 0x84) + 0xb8" (pointer_expression "*(int *)(iVar19 + 0x84)" * (cast_expression "(int *)(iVar19 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x84)" ( (binary_expression "iVar19 + 0x84" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }" if (parenthesized_expression "((int)uVar7 < 0)" ( (binary_expression "(int)uVar7 < 0" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }" { (expression_statement "uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;" (assignment_expression "uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2" identifier = (binary_expression "*(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x84) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar19 + 0x84) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0x84) + 0xc)" ( (binary_expression "*(int *)(iVar19 + 0x84) + 0xc" (pointer_expression "*(int *)(iVar19 + 0x84)" * (cast_expression "(int *)(iVar19 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x84)" ( (binary_expression "iVar19 + 0x84" identifier + number_literal) )))) + number_literal) )))) << number_literal)) ;) })) (if_statement "if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar20 = (int *)0x0;\n      }" { (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" else (compound_statement "{\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" { (expression_statement "uVar8 = FUN_0006e044(iVar19);" (assignment_expression "uVar8 = FUN_0006e044(iVar19)" identifier = (call_expression "FUN_0006e044(iVar19)" identifier (argument_list "(iVar19)" ( identifier )))) ;) (if_statement "if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }" if (parenthesized_expression "(uVar7 < uVar8)" ( (binary_expression "uVar7 < uVar8" identifier < identifier) )) (compound_statement "{\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }" { (expression_statement "(**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);" (call_expression "(**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8)" (parenthesized_expression "(**(code **)(pcVar11 + 0x42608))" ( (pointer_expression "**(code **)(pcVar11 + 0x42608)" * (pointer_expression "*(code **)(pcVar11 + 0x42608)" * (cast_expression "(code **)(pcVar11 + 0x42608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x42608)" ( (binary_expression "pcVar11 + 0x42608" identifier + number_literal) ))))) )) (argument_list "(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8)" ( identifier , (binary_expression "*(int *)(pcVar11 + 0x425e0) + -0x39a8" (pointer_expression "*(int *)(pcVar11 + 0x425e0)" * (cast_expression "(int *)(pcVar11 + 0x425e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x425e0)" ( (binary_expression "pcVar11 + 0x425e0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "piVar20 = (int *)FUN_0006e9a0(iVar19);" (assignment_expression "piVar20 = (int *)FUN_0006e9a0(iVar19)" identifier = (cast_expression "(int *)FUN_0006e9a0(iVar19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0006e9a0(iVar19)" identifier (argument_list "(iVar19)" ( identifier ))))) ;) (if_statement "if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }" if (parenthesized_expression "(piVar20 != (int *)0x0)" ( (binary_expression "piVar20 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }" { (expression_statement "(**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);" (call_expression "(**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0)" (parenthesized_expression "(**(code **)(pcVar11 + 0x42670))" ( (pointer_expression "**(code **)(pcVar11 + 0x42670)" * (pointer_expression "*(code **)(pcVar11 + 0x42670)" * (cast_expression "(code **)(pcVar11 + 0x42670)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x42670)" ( (binary_expression "pcVar11 + 0x42670" identifier + number_literal) ))))) )) (argument_list "(iVar19,piVar20,0)" ( identifier , identifier , number_literal ))) ;) })) }) (else_clause "else {\n          piVar20 = (int *)0x0;\n        }" else (compound_statement "{\n          piVar20 = (int *)0x0;\n        }" { (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (return_statement "return (code *)(uint)(piVar20 != piVar4);" return (cast_expression "(code *)(uint)(piVar20 != piVar4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(piVar20 != piVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar20 != piVar4)" ( (binary_expression "piVar20 != piVar4" identifier != identifier) )))) ;) })) (return_statement "return pcVar11;" return identifier ;) })) (return_statement "return pcVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression IDENT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression IDENT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) << LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }))) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != IDENT) )))) ;) })) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "code * FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)\n\n{\n  code *pcVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  undefined1 *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  code *pcVar18;\n  int iVar19;\n  int *piVar20;\n  code *unaff_s1;\n  int iVar21;\n  code *unaff_s4;\n  code *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  undefined4 uVar25;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  int *piStack_29c;\n  undefined4 uStack_298;\n  code *pcStack_294;\n  code *pcStack_290;\n  int iStack_28c;\n  undefined1 *puStack_288;\n  int iStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  int iStack_24c;\n  undefined1 *puStack_244;\n  code *pcStack_240;\n  code *pcStack_23c;\n  code *pcStack_238;\n  code *pcStack_234;\n  code *pcStack_230;\n  undefined4 uStack_22c;\n  code *pcStack_218;\n  undefined1 auStack_210 [12];\n  int iStack_204;\n  code *pcStack_200;\n  code *pcStack_1fc;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  int iStack_1d4;\n  code *pcStack_1d0;\n  code *pcStack_1cc;\n  code *pcStack_1c8;\n  code *pcStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  undefined1 auStack_198 [12];\n  code *pcStack_18c;\n  code *pcStack_184;\n  code *pcStack_180;\n  int iStack_17c;\n  code *pcStack_178;\n  code *pcStack_174;\n  undefined1 auStack_14c [128];\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  int *local_c0;\n  undefined1 local_94 [128];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;\n  pcVar11 = param_2;\n  if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }\n  pcVar15 = (code *)0x80;\n  if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }\n  iVar19 = local_14;\n  puVar22 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  local_c0 = param_1;\n  local_c4 = unaff_s1;\n  local_c8 = param_2;\n  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);\n  pcVar1 = *(code **)pcVar11;\n  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));\n  if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }\n  pcVar12 = (code *)&DAT_00000005;\n  if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }\n  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }\n  pcVar23 = *(code **)(puVar22 + 0x439ec);\n  pcVar9 = local_cc;\n  (*pcVar23)();\n  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);\n  pcVar18 = *(code **)(pcVar12 + 0x59c);\n  pcVar10 = pcVar9;\n  pcVar13 = pcVar12;\n  pcVar16 = pcVar15;\n  pcStack_184 = pcVar17;\n  pcStack_180 = pcVar11;\n  iStack_17c = iVar19;\n  pcStack_178 = pcVar1;\n  pcStack_174 = unaff_s4;\n  if (pcVar18 == (code *)0x0) goto LAB_0006e510;\n  pcVar1 = *(code **)(pcVar9 + 0xc78);\n  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }\n  pcVar10 = pcVar18;\n  FUN_0006dd58();\n  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }\n  *(int *)pcVar12 = 0;\n  pcVar11 = pcVar12;\n  unaff_s4 = pcVar15;\n  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }\nLAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }\n  pcVar15 = *(code **)(pcVar23 + 0x43814);\n  (*pcVar15)();\n  pcStack_1bc = unaff_s5;\n  pcStack_1c0 = unaff_s4;\n  pcStack_1c4 = pcVar1;\n  pcStack_1c8 = pcVar9;\n  pcStack_1cc = pcVar11;\n  pcStack_1d0 = pcVar18;\n  pcStack_1e8 = pcVar15 + 0x4ab28;\n  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);\n  if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar17 = FUN_0006e79c;\n  (*pcVar15)();\n  pcStack_218 = pcVar15 + 0x4a974;\n  iStack_204 = **(int **)(pcVar15 + 0x43838);\n  puVar14 = auStack_210;\n  pcStack_200 = pcVar18;\n  pcStack_1fc = pcVar17;\n  (**(code **)(pcVar15 + 0x4304c))();\n  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n  if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }\nLAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_218 + -0x74c8);\n  uVar25 = 0x6e860;\n  iVar19 = iStack_204;\n  (*pcVar15)();\n  iStack_24c = **(int **)(pcVar15 + 0x43774);\n  puStack_244 = auStack_210;\n  pcStack_240 = pcVar11;\n  pcStack_23c = pcVar9;\n  pcStack_238 = pcVar1;\n  pcStack_234 = unaff_s4;\n  pcStack_230 = pcVar10;\n  uStack_22c = uVar25;\n  (**(code **)(pcVar15 + 0x42914))(&uStack_254);\n  puVar2 = *(undefined4 **)(puVar14 + 8);\n  iVar3 = -1;\n  if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }\n  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }\n  return pcVar1;\n}" (type_identifier "code") (pointer_declarator "* FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)" (* "*") (function_declarator "FUN_0006e16c(int *param_1,code *param_2,undefined4 param_3,code *param_4)" (identifier "FUN_0006e16c") (parameter_list "(int *param_1,code *param_2,undefined4 param_3,code *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "code *param_2" (type_identifier "code") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "code *param_4" (type_identifier "code") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  code *pcVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  code *pcVar9;\n  code *pcVar10;\n  code *pcVar11;\n  code *pcVar12;\n  code *pcVar13;\n  undefined1 *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  code *pcVar17;\n  code *pcVar18;\n  int iVar19;\n  int *piVar20;\n  code *unaff_s1;\n  int iVar21;\n  code *unaff_s4;\n  code *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  undefined4 uVar25;\n  undefined4 uStack_2b0;\n  undefined4 uStack_2ac;\n  undefined1 auStack_2a8 [12];\n  int *piStack_29c;\n  undefined4 uStack_298;\n  code *pcStack_294;\n  code *pcStack_290;\n  int iStack_28c;\n  undefined1 *puStack_288;\n  int iStack_284;\n  undefined1 *puStack_280;\n  undefined4 uStack_254;\n  undefined4 uStack_250;\n  int iStack_24c;\n  undefined1 *puStack_244;\n  code *pcStack_240;\n  code *pcStack_23c;\n  code *pcStack_238;\n  code *pcStack_234;\n  code *pcStack_230;\n  undefined4 uStack_22c;\n  code *pcStack_218;\n  undefined1 auStack_210 [12];\n  int iStack_204;\n  code *pcStack_200;\n  code *pcStack_1fc;\n  code *pcStack_1e8;\n  undefined1 auStack_1e0 [12];\n  int iStack_1d4;\n  code *pcStack_1d0;\n  code *pcStack_1cc;\n  code *pcStack_1c8;\n  code *pcStack_1c4;\n  code *pcStack_1c0;\n  code *pcStack_1bc;\n  undefined1 auStack_198 [12];\n  code *pcStack_18c;\n  code *pcStack_184;\n  code *pcStack_180;\n  int iStack_17c;\n  code *pcStack_178;\n  code *pcStack_174;\n  undefined1 auStack_14c [128];\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  int *local_c0;\n  undefined1 local_94 [128];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;\n  pcVar11 = param_2;\n  if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }\n  pcVar15 = (code *)0x80;\n  if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }\n  iVar19 = local_14;\n  puVar22 = PTR___stack_chk_fail_000b1c48;\n  (*(code *)PTR___stack_chk_fail_000b1c48)();\n  local_c0 = param_1;\n  local_c4 = unaff_s1;\n  local_c8 = param_2;\n  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);\n  pcVar1 = *(code **)pcVar11;\n  puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));\n  if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }\n  pcVar12 = (code *)&DAT_00000005;\n  if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }\n  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }\n  pcVar23 = *(code **)(puVar22 + 0x439ec);\n  pcVar9 = local_cc;\n  (*pcVar23)();\n  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);\n  pcVar18 = *(code **)(pcVar12 + 0x59c);\n  pcVar10 = pcVar9;\n  pcVar13 = pcVar12;\n  pcVar16 = pcVar15;\n  pcStack_184 = pcVar17;\n  pcStack_180 = pcVar11;\n  iStack_17c = iVar19;\n  pcStack_178 = pcVar1;\n  pcStack_174 = unaff_s4;\n  if (pcVar18 == (code *)0x0) goto LAB_0006e510;\n  pcVar1 = *(code **)(pcVar9 + 0xc78);\n  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }\n  pcVar10 = pcVar18;\n  FUN_0006dd58();\n  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }\n  *(int *)pcVar12 = 0;\n  pcVar11 = pcVar12;\n  unaff_s4 = pcVar15;\n  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }\nLAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }\n  pcVar15 = *(code **)(pcVar23 + 0x43814);\n  (*pcVar15)();\n  pcStack_1bc = unaff_s5;\n  pcStack_1c0 = unaff_s4;\n  pcStack_1c4 = pcVar1;\n  pcStack_1c8 = pcVar9;\n  pcStack_1cc = pcVar11;\n  pcStack_1d0 = pcVar18;\n  pcStack_1e8 = pcVar15 + 0x4ab28;\n  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);\n  if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }\nLAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);\n  pcVar17 = FUN_0006e79c;\n  (*pcVar15)();\n  pcStack_218 = pcVar15 + 0x4a974;\n  iStack_204 = **(int **)(pcVar15 + 0x43838);\n  puVar14 = auStack_210;\n  pcStack_200 = pcVar18;\n  pcStack_1fc = pcVar17;\n  (**(code **)(pcVar15 + 0x4304c))();\n  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n  if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }\nLAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }\n  pcVar15 = *(code **)(pcStack_218 + -0x74c8);\n  uVar25 = 0x6e860;\n  iVar19 = iStack_204;\n  (*pcVar15)();\n  iStack_24c = **(int **)(pcVar15 + 0x43774);\n  puStack_244 = auStack_210;\n  pcStack_240 = pcVar11;\n  pcStack_23c = pcVar9;\n  pcStack_238 = pcVar1;\n  pcStack_234 = unaff_s4;\n  pcStack_230 = pcVar10;\n  uStack_22c = uVar25;\n  (**(code **)(pcVar15 + 0x42914))(&uStack_254);\n  puVar2 = *(undefined4 **)(puVar14 + 8);\n  iVar3 = -1;\n  if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }\n  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }\n  return pcVar1;\n}" ({ "{") (declaration "code *pcVar1;" (type_identifier "code") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "code *pcVar13;" (type_identifier "code") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "code *pcVar18;" (type_identifier "code") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "code *unaff_s1;" (type_identifier "code") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "code *unaff_s4;" (type_identifier "code") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "code *unaff_s5;" (type_identifier "code") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined1 *unaff_s6;" (type_identifier "undefined1") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "undefined *puVar22;" (type_identifier "undefined") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "undefined4 uStack_2b0;" (type_identifier "undefined4") (identifier "uStack_2b0") (; ";")) (declaration "undefined4 uStack_2ac;" (type_identifier "undefined4") (identifier "uStack_2ac") (; ";")) (declaration "undefined1 auStack_2a8 [12];" (type_identifier "undefined1") (array_declarator "auStack_2a8 [12]" (identifier "auStack_2a8") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "int *piStack_29c;" (primitive_type "int") (pointer_declarator "*piStack_29c" (* "*") (identifier "piStack_29c")) (; ";")) (declaration "undefined4 uStack_298;" (type_identifier "undefined4") (identifier "uStack_298") (; ";")) (declaration "code *pcStack_294;" (type_identifier "code") (pointer_declarator "*pcStack_294" (* "*") (identifier "pcStack_294")) (; ";")) (declaration "code *pcStack_290;" (type_identifier "code") (pointer_declarator "*pcStack_290" (* "*") (identifier "pcStack_290")) (; ";")) (declaration "int iStack_28c;" (primitive_type "int") (identifier "iStack_28c") (; ";")) (declaration "undefined1 *puStack_288;" (type_identifier "undefined1") (pointer_declarator "*puStack_288" (* "*") (identifier "puStack_288")) (; ";")) (declaration "int iStack_284;" (primitive_type "int") (identifier "iStack_284") (; ";")) (declaration "undefined1 *puStack_280;" (type_identifier "undefined1") (pointer_declarator "*puStack_280" (* "*") (identifier "puStack_280")) (; ";")) (declaration "undefined4 uStack_254;" (type_identifier "undefined4") (identifier "uStack_254") (; ";")) (declaration "undefined4 uStack_250;" (type_identifier "undefined4") (identifier "uStack_250") (; ";")) (declaration "int iStack_24c;" (primitive_type "int") (identifier "iStack_24c") (; ";")) (declaration "undefined1 *puStack_244;" (type_identifier "undefined1") (pointer_declarator "*puStack_244" (* "*") (identifier "puStack_244")) (; ";")) (declaration "code *pcStack_240;" (type_identifier "code") (pointer_declarator "*pcStack_240" (* "*") (identifier "pcStack_240")) (; ";")) (declaration "code *pcStack_23c;" (type_identifier "code") (pointer_declarator "*pcStack_23c" (* "*") (identifier "pcStack_23c")) (; ";")) (declaration "code *pcStack_238;" (type_identifier "code") (pointer_declarator "*pcStack_238" (* "*") (identifier "pcStack_238")) (; ";")) (declaration "code *pcStack_234;" (type_identifier "code") (pointer_declarator "*pcStack_234" (* "*") (identifier "pcStack_234")) (; ";")) (declaration "code *pcStack_230;" (type_identifier "code") (pointer_declarator "*pcStack_230" (* "*") (identifier "pcStack_230")) (; ";")) (declaration "undefined4 uStack_22c;" (type_identifier "undefined4") (identifier "uStack_22c") (; ";")) (declaration "code *pcStack_218;" (type_identifier "code") (pointer_declarator "*pcStack_218" (* "*") (identifier "pcStack_218")) (; ";")) (declaration "undefined1 auStack_210 [12];" (type_identifier "undefined1") (array_declarator "auStack_210 [12]" (identifier "auStack_210") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "int iStack_204;" (primitive_type "int") (identifier "iStack_204") (; ";")) (declaration "code *pcStack_200;" (type_identifier "code") (pointer_declarator "*pcStack_200" (* "*") (identifier "pcStack_200")) (; ";")) (declaration "code *pcStack_1fc;" (type_identifier "code") (pointer_declarator "*pcStack_1fc" (* "*") (identifier "pcStack_1fc")) (; ";")) (declaration "code *pcStack_1e8;" (type_identifier "code") (pointer_declarator "*pcStack_1e8" (* "*") (identifier "pcStack_1e8")) (; ";")) (declaration "undefined1 auStack_1e0 [12];" (type_identifier "undefined1") (array_declarator "auStack_1e0 [12]" (identifier "auStack_1e0") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "int iStack_1d4;" (primitive_type "int") (identifier "iStack_1d4") (; ";")) (declaration "code *pcStack_1d0;" (type_identifier "code") (pointer_declarator "*pcStack_1d0" (* "*") (identifier "pcStack_1d0")) (; ";")) (declaration "code *pcStack_1cc;" (type_identifier "code") (pointer_declarator "*pcStack_1cc" (* "*") (identifier "pcStack_1cc")) (; ";")) (declaration "code *pcStack_1c8;" (type_identifier "code") (pointer_declarator "*pcStack_1c8" (* "*") (identifier "pcStack_1c8")) (; ";")) (declaration "code *pcStack_1c4;" (type_identifier "code") (pointer_declarator "*pcStack_1c4" (* "*") (identifier "pcStack_1c4")) (; ";")) (declaration "code *pcStack_1c0;" (type_identifier "code") (pointer_declarator "*pcStack_1c0" (* "*") (identifier "pcStack_1c0")) (; ";")) (declaration "code *pcStack_1bc;" (type_identifier "code") (pointer_declarator "*pcStack_1bc" (* "*") (identifier "pcStack_1bc")) (; ";")) (declaration "undefined1 auStack_198 [12];" (type_identifier "undefined1") (array_declarator "auStack_198 [12]" (identifier "auStack_198") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "code *pcStack_18c;" (type_identifier "code") (pointer_declarator "*pcStack_18c" (* "*") (identifier "pcStack_18c")) (; ";")) (declaration "code *pcStack_184;" (type_identifier "code") (pointer_declarator "*pcStack_184" (* "*") (identifier "pcStack_184")) (; ";")) (declaration "code *pcStack_180;" (type_identifier "code") (pointer_declarator "*pcStack_180" (* "*") (identifier "pcStack_180")) (; ";")) (declaration "int iStack_17c;" (primitive_type "int") (identifier "iStack_17c") (; ";")) (declaration "code *pcStack_178;" (type_identifier "code") (pointer_declarator "*pcStack_178" (* "*") (identifier "pcStack_178")) (; ";")) (declaration "code *pcStack_174;" (type_identifier "code") (pointer_declarator "*pcStack_174" (* "*") (identifier "pcStack_174")) (; ";")) (declaration "undefined1 auStack_14c [128];" (type_identifier "undefined1") (array_declarator "auStack_14c [128]" (identifier "auStack_14c") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "code *local_cc;" (type_identifier "code") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc")) (; ";")) (declaration "code *local_c8;" (type_identifier "code") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8")) (; ";")) (declaration "code *local_c4;" (type_identifier "code") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "int *local_c0;" (primitive_type "int") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "undefined1 local_94 [128];" (type_identifier "undefined1") (array_declarator "local_94 [128]" (identifier "local_94") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000b1fd4" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000b1fd4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b1fd4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b1fd4")))) (; ";")) (expression_statement "pcVar11 = param_2;" (assignment_expression "pcVar11 = param_2" (identifier "pcVar11") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (*(int *)(*param_1 + 0x8c) != 0) {\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }" (if "if") (parenthesized_expression "(*(int *)(*param_1 + 0x8c) != 0)" (( "(") (binary_expression "*(int *)(*param_1 + 0x8c) != 0" (pointer_expression "*(int *)(*param_1 + 0x8c)" (* "*") (cast_expression "(int *)(*param_1 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x8c)" (( "(") (binary_expression "*param_1 + 0x8c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar11 = (code *)&DAT_00000005;\n    FUN_0004e860(*param_1,5,2);\n  }" ({ "{") (expression_statement "pcVar11 = (code *)&DAT_00000005;" (assignment_expression "pcVar11 = (code *)&DAT_00000005" (identifier "pcVar11") (= "=") (cast_expression "(code *)&DAT_00000005" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000005" (& "&") (identifier "DAT_00000005")))) (; ";")) (expression_statement "FUN_0004e860(*param_1,5,2);" (call_expression "FUN_0004e860(*param_1,5,2)" (identifier "FUN_0004e860") (argument_list "(*param_1,5,2)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "5") (, ",") (number_literal "2") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar15 = (code *)0x80;" (assignment_expression "pcVar15 = (code *)0x80" (identifier "pcVar15") (= "=") (cast_expression "(code *)0x80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x80"))) (; ";")) (if_statement "if (param_2 == (code *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" (if "if") (parenthesized_expression "(param_2 == (code *)0x0)" (( "(") (binary_expression "param_2 == (code *)0x0" (identifier "param_2") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar1 = (code *)0x0;\n  }" ({ "{") (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" (identifier "pcVar1") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" (else "else") (compound_statement "{\n    unaff_s1 = (code *)local_94;\n    FUN_0006dccc(param_1,unaff_s1);\n    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);\n    pcVar11 = unaff_s1;\n    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);\n  }" ({ "{") (expression_statement "unaff_s1 = (code *)local_94;" (assignment_expression "unaff_s1 = (code *)local_94" (identifier "unaff_s1") (= "=") (cast_expression "(code *)local_94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_94"))) (; ";")) (expression_statement "FUN_0006dccc(param_1,unaff_s1);" (call_expression "FUN_0006dccc(param_1,unaff_s1)" (identifier "FUN_0006dccc") (argument_list "(param_1,unaff_s1)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);" (assignment_expression "pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_000b1e9c)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_strlen_000b1e9c)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b1e9c" (* "*") (cast_expression "(code *)PTR_strlen_000b1e9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b1e9c"))) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))))) (; ";")) (expression_statement "pcVar11 = unaff_s1;" (assignment_expression "pcVar11 = unaff_s1" (identifier "pcVar11") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);" (assignment_expression "pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2)" (identifier "pcVar1") (= "=") (cast_expression "(code *)(*(code *)PTR_FUN_000b11a8)(param_2)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_000b11a8)(param_2)" (parenthesized_expression "(*(code *)PTR_FUN_000b11a8)" (( "(") (pointer_expression "*(code *)PTR_FUN_000b11a8" (* "*") (cast_expression "(code *)PTR_FUN_000b11a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000b11a8"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (} "}")))) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {\n    return pcVar1;\n  }" (if "if") (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000b1fd4)" (( "(") (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000b1fd4" (identifier "local_14") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000b1fd4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b1fd4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b1fd4")))) () ")")) (compound_statement "{\n    return pcVar1;\n  }" ({ "{") (return_statement "return pcVar1;" (return "return") (identifier "pcVar1") (; ";")) (} "}"))) (expression_statement "iVar19 = local_14;" (assignment_expression "iVar19 = local_14" (identifier "iVar19") (= "=") (identifier "local_14")) (; ";")) (expression_statement "puVar22 = PTR___stack_chk_fail_000b1c48;" (assignment_expression "puVar22 = PTR___stack_chk_fail_000b1c48" (identifier "puVar22") (= "=") (identifier "PTR___stack_chk_fail_000b1c48")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b1c48)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b1c48)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b1c48)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b1c48" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b1c48" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b1c48"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_c0 = param_1;" (assignment_expression "local_c0 = param_1" (identifier "local_c0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_c4 = unaff_s1;" (assignment_expression "local_c4 = unaff_s1" (identifier "local_c4") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "local_c8 = param_2;" (assignment_expression "local_c8 = param_2" (identifier "local_c8") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);" (assignment_expression "local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78)" (identifier "local_cc") (= "=") (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x43d78)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar22 + 0x43d78)" (* "*") (pointer_expression "*(undefined4 **)(puVar22 + 0x43d78)" (* "*") (cast_expression "(undefined4 **)(puVar22 + 0x43d78)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x43d78)" (( "(") (binary_expression "puVar22 + 0x43d78" (identifier "puVar22") (+ "+") (number_literal "0x43d78")) () ")"))))))) (; ";")) (expression_statement "pcVar1 = *(code **)pcVar11;" (assignment_expression "pcVar1 = *(code **)pcVar11" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)pcVar11" (* "*") (cast_expression "(code **)pcVar11" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar11")))) (; ";")) (expression_statement "puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78));" (assignment_expression "puVar2 = (undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0006e16c(pcVar11,*(int *)(pcVar1 + 0xc78))" (identifier "FUN_0006e16c") (argument_list "(pcVar11,*(int *)(pcVar1 + 0xc78))" (( "(") (identifier "pcVar11") (, ",") (pointer_expression "*(int *)(pcVar1 + 0xc78)" (* "*") (cast_expression "(int *)(pcVar1 + 0xc78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0xc78)" (( "(") (binary_expression "pcVar1 + 0xc78" (identifier "pcVar1") (+ "+") (number_literal "0xc78")) () ")")))) () ")"))))) (; ";")) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }\n  else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" (if "if") (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 == (undefined4 *)0x0" (identifier "puVar2") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);\n    if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }\n    pcVar17 = (code *)0x1b;\n  }" ({ "{") (expression_statement "puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18)" (parenthesized_expression "(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))" (( "(") (pointer_expression "*(code *)**(undefined4 **)(puVar22 + 0x42f3c)" (* "*") (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x42f3c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar22 + 0x42f3c)" (* "*") (pointer_expression "*(undefined4 **)(puVar22 + 0x42f3c)" (* "*") (cast_expression "(undefined4 **)(puVar22 + 0x42f3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x42f3c)" (( "(") (binary_expression "puVar22 + 0x42f3c" (identifier "puVar22") (+ "+") (number_literal "0x42f3c")) () ")"))))))) () ")")) (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }" (if "if") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar2[1] = 0;\n      *puVar2 = 0;\n      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);\n      unaff_s4 = (code *)auStack_14c;\n      FUN_0006dccc(pcVar11,unaff_s4,0x80);\n      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);\n      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);\n      param_4 = pcVar11 + 4;\n      if (iVar3 != 0) goto LAB_0006e2c4;\n      FUN_0006dc28(puVar2);\n    }" ({ "{") (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);" (call_expression "(**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0)" (parenthesized_expression "(**(code **)(puVar22 + 0x43254))" (( "(") (pointer_expression "**(code **)(puVar22 + 0x43254)" (* "*") (pointer_expression "*(code **)(puVar22 + 0x43254)" (* "*") (cast_expression "(code **)(puVar22 + 0x43254)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x43254)" (( "(") (binary_expression "puVar22 + 0x43254" (identifier "puVar22") (+ "+") (number_literal "0x43254")) () ")"))))) () ")")) (argument_list "(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0)" (( "(") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2")) (, ",") (binary_expression "*(int *)(puVar22 + 0x4351c) + -0x23e0" (pointer_expression "*(int *)(puVar22 + 0x4351c)" (* "*") (cast_expression "(int *)(puVar22 + 0x4351c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x4351c)" (( "(") (binary_expression "puVar22 + 0x4351c" (identifier "puVar22") (+ "+") (number_literal "0x4351c")) () ")")))) (+ "+") (number_literal "-0x23e0")) () ")"))) (; ";")) (expression_statement "unaff_s4 = (code *)auStack_14c;" (assignment_expression "unaff_s4 = (code *)auStack_14c" (identifier "unaff_s4") (= "=") (cast_expression "(code *)auStack_14c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_14c"))) (; ";")) (expression_statement "FUN_0006dccc(pcVar11,unaff_s4,0x80);" (call_expression "FUN_0006dccc(pcVar11,unaff_s4,0x80)" (identifier "FUN_0006dccc") (argument_list "(pcVar11,unaff_s4,0x80)" (( "(") (identifier "pcVar11") (, ",") (identifier "unaff_s4") (, ",") (number_literal "0x80") () ")"))) (; ";")) (expression_statement "pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);" (assignment_expression "pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar22 + 0x43c40))(unaff_s4)" (parenthesized_expression "(**(code **)(puVar22 + 0x43c40))" (( "(") (pointer_expression "**(code **)(puVar22 + 0x43c40)" (* "*") (pointer_expression "*(code **)(puVar22 + 0x43c40)" (* "*") (cast_expression "(code **)(puVar22 + 0x43c40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x43c40)" (( "(") (binary_expression "puVar22 + 0x43c40" (identifier "puVar22") (+ "+") (number_literal "0x43c40")) () ")"))))) () ")")) (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")"))))) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);" (assignment_expression "iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" (parenthesized_expression "(**(code **)(puVar22 + 0x42f80))" (( "(") (pointer_expression "**(code **)(puVar22 + 0x42f80)" (* "*") (pointer_expression "*(code **)(puVar22 + 0x42f80)" (* "*") (cast_expression "(code **)(puVar22 + 0x42f80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x42f80)" (( "(") (binary_expression "puVar22 + 0x42f80" (identifier "puVar22") (+ "+") (number_literal "0x42f80")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2)" (( "(") (pointer_expression "*(int *)(pcVar1 + 0xc78)" (* "*") (cast_expression "(int *)(pcVar1 + 0xc78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0xc78)" (( "(") (binary_expression "pcVar1 + 0xc78" (identifier "pcVar1") (+ "+") (number_literal "0xc78")) () ")")))) (, ",") (identifier "unaff_s4") (, ",") (identifier "pcVar15") (, ",") (identifier "puVar2") () ")")))) (; ";")) (expression_statement "param_4 = pcVar11 + 4;" (assignment_expression "param_4 = pcVar11 + 4" (identifier "param_4") (= "=") (binary_expression "pcVar11 + 4" (identifier "pcVar11") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0006e2c4;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006e2c4;" (goto "goto") (statement_identifier "LAB_0006e2c4") (; ";"))) (expression_statement "FUN_0006dc28(puVar2);" (call_expression "FUN_0006dc28(puVar2)" (identifier "FUN_0006dc28") (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar17 = (code *)0x1b;" (assignment_expression "pcVar17 = (code *)0x1b" (identifier "pcVar17") (= "=") (cast_expression "(code *)0x1b" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1b"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" (else "else") (compound_statement "{\nLAB_0006e2c4:\n    param_4 = pcVar11 + 4;\n    pcVar15 = pcVar11;\n    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);\n    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;\n    puVar2[1] = puVar2[1] + 1;\n    iVar3 = *(int *)(iVar19 + 0x1c);\n    *(int *)(iVar19 + 0x1c) = iVar3 + 1;\n    *(int *)(pcVar11 + 0x48) = iVar3;\n    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;\n    pcVar17 = (code *)0x0;\n  }" ({ "{") (labeled_statement "LAB_0006e2c4:\n    param_4 = pcVar11 + 4;" (statement_identifier "LAB_0006e2c4") (: ":") (expression_statement "param_4 = pcVar11 + 4;" (assignment_expression "param_4 = pcVar11 + 4" (identifier "param_4") (= "=") (binary_expression "pcVar11 + 4" (identifier "pcVar11") (+ "+") (number_literal "4"))) (; ";"))) (expression_statement "pcVar15 = pcVar11;" (assignment_expression "pcVar15 = pcVar11" (identifier "pcVar15") (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "(**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);" (call_expression "(**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3])" (parenthesized_expression "(**(code **)(puVar22 + 0x43390))" (( "(") (pointer_expression "**(code **)(puVar22 + 0x43390)" (* "*") (pointer_expression "*(code **)(puVar22 + 0x43390)" (* "*") (cast_expression "(code **)(puVar22 + 0x43390)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x43390)" (( "(") (binary_expression "puVar22 + 0x43390" (identifier "puVar22") (+ "+") (number_literal "0x43390")) () ")"))))) () ")")) (argument_list "(puVar2 + 2,puVar2[3])" (( "(") (binary_expression "puVar2 + 2" (identifier "puVar2") (+ "+") (number_literal "2")) (, ",") (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (expression_statement "*(undefined4 **)(pcVar11 + 0x59c) = puVar2;" (assignment_expression "*(undefined4 **)(pcVar11 + 0x59c) = puVar2" (pointer_expression "*(undefined4 **)(pcVar11 + 0x59c)" (* "*") (cast_expression "(undefined4 **)(pcVar11 + 0x59c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x59c)" (( "(") (binary_expression "pcVar11 + 0x59c" (identifier "pcVar11") (+ "+") (number_literal "0x59c")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "puVar2[1] = puVar2[1] + 1;" (assignment_expression "puVar2[1] = puVar2[1] + 1" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "puVar2[1] + 1" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar19 + 0x1c);" (assignment_expression "iVar3 = *(int *)(iVar19 + 0x1c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar19 + 0x1c)" (* "*") (cast_expression "(int *)(iVar19 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x1c)" (( "(") (binary_expression "iVar19 + 0x1c" (identifier "iVar19") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar19 + 0x1c) = iVar3 + 1;" (assignment_expression "*(int *)(iVar19 + 0x1c) = iVar3 + 1" (pointer_expression "*(int *)(iVar19 + 0x1c)" (* "*") (cast_expression "(int *)(iVar19 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x1c)" (( "(") (binary_expression "iVar19 + 0x1c" (identifier "iVar19") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(pcVar11 + 0x48) = iVar3;" (assignment_expression "*(int *)(pcVar11 + 0x48) = iVar3" (pointer_expression "*(int *)(pcVar11 + 0x48)" (* "*") (cast_expression "(int *)(pcVar11 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x48)" (( "(") (binary_expression "pcVar11 + 0x48" (identifier "pcVar11") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;" (assignment_expression "*(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1" (pointer_expression "*(int *)(iVar19 + 0x18)" (* "*") (cast_expression "(int *)(iVar19 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x18)" (( "(") (binary_expression "iVar19 + 0x18" (identifier "iVar19") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(int *)(iVar19 + 0x18) + 1" (pointer_expression "*(int *)(iVar19 + 0x18)" (* "*") (cast_expression "(int *)(iVar19 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x18)" (( "(") (binary_expression "iVar19 + 0x18" (identifier "iVar19") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar17 = (code *)0x0;" (assignment_expression "pcVar17 = (code *)0x0" (identifier "pcVar17") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "pcVar12 = (code *)&DAT_00000005;" (assignment_expression "pcVar12 = (code *)&DAT_00000005" (identifier "pcVar12") (= "=") (cast_expression "(code *)&DAT_00000005" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000005" (& "&") (identifier "DAT_00000005")))) (; ";")) (if_statement "if (*(int *)(pcVar1 + 0x8c) != 0) {\n    FUN_0004e8cc(pcVar1);\n  }" (if "if") (parenthesized_expression "(*(int *)(pcVar1 + 0x8c) != 0)" (( "(") (binary_expression "*(int *)(pcVar1 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar1 + 0x8c)" (* "*") (cast_expression "(int *)(pcVar1 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x8c)" (( "(") (binary_expression "pcVar1 + 0x8c" (identifier "pcVar1") (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0004e8cc(pcVar1);\n  }" ({ "{") (expression_statement "FUN_0004e8cc(pcVar1);" (call_expression "FUN_0004e8cc(pcVar1)" (identifier "FUN_0004e8cc") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {\n    return pcVar17;\n  }" (if "if") (parenthesized_expression "(local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78))" (( "(") (binary_expression "local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)" (identifier "local_cc") (== "==") (cast_expression "(code *)**(undefined4 **)(puVar22 + 0x43d78)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar22 + 0x43d78)" (* "*") (pointer_expression "*(undefined4 **)(puVar22 + 0x43d78)" (* "*") (cast_expression "(undefined4 **)(puVar22 + 0x43d78)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x43d78)" (( "(") (binary_expression "puVar22 + 0x43d78" (identifier "puVar22") (+ "+") (number_literal "0x43d78")) () ")"))))))) () ")")) (compound_statement "{\n    return pcVar17;\n  }" ({ "{") (return_statement "return pcVar17;" (return "return") (identifier "pcVar17") (; ";")) (} "}"))) (expression_statement "pcVar23 = *(code **)(puVar22 + 0x439ec);" (assignment_expression "pcVar23 = *(code **)(puVar22 + 0x439ec)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar22 + 0x439ec)" (* "*") (cast_expression "(code **)(puVar22 + 0x439ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x439ec)" (( "(") (binary_expression "puVar22 + 0x439ec" (identifier "puVar22") (+ "+") (number_literal "0x439ec")) () ")"))))) (; ";")) (expression_statement "pcVar9 = local_cc;" (assignment_expression "pcVar9 = local_cc" (identifier "pcVar9") (= "=") (identifier "local_cc")) (; ";")) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);" (assignment_expression "pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0)" (identifier "pcStack_18c") (= "=") (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" (* "*") (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" (* "*") (cast_expression "(int **)(pcVar23 + 0x43ba0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x43ba0)" (( "(") (binary_expression "pcVar23 + 0x43ba0" (identifier "pcVar23") (+ "+") (number_literal "0x43ba0")) () ")"))))))) (; ";")) (expression_statement "pcVar18 = *(code **)(pcVar12 + 0x59c);" (assignment_expression "pcVar18 = *(code **)(pcVar12 + 0x59c)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcVar12 + 0x59c)" (* "*") (cast_expression "(code **)(pcVar12 + 0x59c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x59c)" (( "(") (binary_expression "pcVar12 + 0x59c" (identifier "pcVar12") (+ "+") (number_literal "0x59c")) () ")"))))) (; ";")) (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" (identifier "pcVar10") (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "pcVar13 = pcVar12;" (assignment_expression "pcVar13 = pcVar12" (identifier "pcVar13") (= "=") (identifier "pcVar12")) (; ";")) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" (identifier "pcVar16") (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "pcStack_184 = pcVar17;" (assignment_expression "pcStack_184 = pcVar17" (identifier "pcStack_184") (= "=") (identifier "pcVar17")) (; ";")) (expression_statement "pcStack_180 = pcVar11;" (assignment_expression "pcStack_180 = pcVar11" (identifier "pcStack_180") (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "iStack_17c = iVar19;" (assignment_expression "iStack_17c = iVar19" (identifier "iStack_17c") (= "=") (identifier "iVar19")) (; ";")) (expression_statement "pcStack_178 = pcVar1;" (assignment_expression "pcStack_178 = pcVar1" (identifier "pcStack_178") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "pcStack_174 = unaff_s4;" (assignment_expression "pcStack_174 = unaff_s4" (identifier "pcStack_174") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (pcVar18 == (code *)0x0) goto LAB_0006e510;" (if "if") (parenthesized_expression "(pcVar18 == (code *)0x0)" (( "(") (binary_expression "pcVar18 == (code *)0x0" (identifier "pcVar18") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0006e510;" (goto "goto") (statement_identifier "LAB_0006e510") (; ";"))) (expression_statement "pcVar1 = *(code **)(pcVar9 + 0xc78);" (assignment_expression "pcVar1 = *(code **)(pcVar9 + 0xc78)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(pcVar9 + 0xc78)" (* "*") (cast_expression "(code **)(pcVar9 + 0xc78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar9 + 0xc78)" (( "(") (binary_expression "pcVar9 + 0xc78" (identifier "pcVar9") (+ "+") (number_literal "0xc78")) () ")"))))) (; ";")) (if_statement "if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {\n    FUN_0004e860();\n  }" (if "if") (parenthesized_expression "((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0))" (( "(") (binary_expression "(pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)" (parenthesized_expression "(pcVar15 != (code *)0x0)" (( "(") (binary_expression "pcVar15 != (code *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)" (( "(") (comma_expression "pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0" (assignment_expression "pcVar16 = (code *)0x2" (identifier "pcVar16") (= "=") (cast_expression "(code *)0x2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (, ",") (binary_expression "*(int *)(pcVar9 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar9 + 0x8c)" (* "*") (cast_expression "(int *)(pcVar9 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x8c)" (( "(") (binary_expression "pcVar9 + 0x8c" (identifier "pcVar9") (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    FUN_0004e860();\n  }" ({ "{") (expression_statement "FUN_0004e860();" (call_expression "FUN_0004e860()" (identifier "FUN_0004e860") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = pcVar18;" (assignment_expression "pcVar10 = pcVar18" (identifier "pcVar10") (= "=") (identifier "pcVar18")) (; ";")) (expression_statement "FUN_0006dd58();" (call_expression "FUN_0006dd58()" (identifier "FUN_0006dd58") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }\n  else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" (if "if") (parenthesized_expression "((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0))" (( "(") (binary_expression "(*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)" (parenthesized_expression "(*(int *)(pcVar18 + 4) == 0)" (( "(") (binary_expression "*(int *)(pcVar18 + 4) == 0" (pointer_expression "*(int *)(pcVar18 + 4)" (* "*") (cast_expression "(int *)(pcVar18 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 4)" (( "(") (binary_expression "pcVar18 + 4" (identifier "pcVar18") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)" (( "(") (comma_expression "unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0" (assignment_expression "unaff_s5 = (code *)auStack_198" (identifier "unaff_s5") (= "=") (cast_expression "(code *)auStack_198" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_198"))) (, ",") (binary_expression "pcVar1 != (code *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    pcVar13 = unaff_s5;\n    (**(code **)(pcVar23 + 0x433b4))(pcVar1);\n    pcVar10 = unaff_s5;\n    iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n    if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }\nLAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\nLAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;\n  }" ({ "{") (expression_statement "pcVar13 = unaff_s5;" (assignment_expression "pcVar13 = unaff_s5" (identifier "pcVar13") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "(**(code **)(pcVar23 + 0x433b4))(pcVar1);" (call_expression "(**(code **)(pcVar23 + 0x433b4))(pcVar1)" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b4))" (( "(") (pointer_expression "**(code **)(pcVar23 + 0x433b4)" (* "*") (pointer_expression "*(code **)(pcVar23 + 0x433b4)" (* "*") (cast_expression "(code **)(pcVar23 + 0x433b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x433b4)" (( "(") (binary_expression "pcVar23 + 0x433b4" (identifier "pcVar23") (+ "+") (number_literal "0x433b4")) () ")"))))) () ")")) (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "pcVar10 = unaff_s5;" (assignment_expression "pcVar10 = unaff_s5" (identifier "pcVar10") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "iVar19 = (**(code **)(pcVar23 + 0x433b8))();" (assignment_expression "iVar19 = (**(code **)(pcVar23 + 0x433b8))()" (identifier "iVar19") (= "=") (call_expression "(**(code **)(pcVar23 + 0x433b8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b8))" (( "(") (pointer_expression "**(code **)(pcVar23 + 0x433b8)" (* "*") (pointer_expression "*(code **)(pcVar23 + 0x433b8)" (* "*") (cast_expression "(code **)(pcVar23 + 0x433b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x433b8)" (( "(") (binary_expression "pcVar23 + 0x433b8" (identifier "pcVar23") (+ "+") (number_literal "0x433b8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar19 != 0) {\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar11 = *(code **)(iVar19 + 0xc);\n      while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }\n      pcVar16 = *(code **)(iVar19 + 0x10);\n      pcVar13 = (code *)(iVar19 + 0x14);\n      pcVar10 = pcVar1;\n      (**(code **)(pcVar23 + 0x42d7c))();\n      goto LAB_0006e4d4;\n    }" ({ "{") (expression_statement "pcVar11 = *(code **)(iVar19 + 0xc);" (assignment_expression "pcVar11 = *(code **)(iVar19 + 0xc)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(iVar19 + 0xc)" (* "*") (cast_expression "(code **)(iVar19 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 0xc)" (( "(") (binary_expression "iVar19 + 0xc" (identifier "iVar19") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (while_statement "while (pcVar18 != pcVar11) {\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }" (while "while") (parenthesized_expression "(pcVar18 != pcVar11)" (( "(") (binary_expression "pcVar18 != pcVar11" (identifier "pcVar18") (!= "!=") (identifier "pcVar11")) () ")")) (compound_statement "{\n        pcVar10 = unaff_s5;\n        iVar19 = (**(code **)(pcVar23 + 0x433b8))();\n        if (iVar19 == 0) goto LAB_0006e5d4;\n        pcVar11 = *(code **)(iVar19 + 0xc);\n      }" ({ "{") (expression_statement "pcVar10 = unaff_s5;" (assignment_expression "pcVar10 = unaff_s5" (identifier "pcVar10") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "iVar19 = (**(code **)(pcVar23 + 0x433b8))();" (assignment_expression "iVar19 = (**(code **)(pcVar23 + 0x433b8))()" (identifier "iVar19") (= "=") (call_expression "(**(code **)(pcVar23 + 0x433b8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x433b8))" (( "(") (pointer_expression "**(code **)(pcVar23 + 0x433b8)" (* "*") (pointer_expression "*(code **)(pcVar23 + 0x433b8)" (* "*") (cast_expression "(code **)(pcVar23 + 0x433b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x433b8)" (( "(") (binary_expression "pcVar23 + 0x433b8" (identifier "pcVar23") (+ "+") (number_literal "0x433b8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar19 == 0) goto LAB_0006e5d4;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006e5d4;" (goto "goto") (statement_identifier "LAB_0006e5d4") (; ";"))) (expression_statement "pcVar11 = *(code **)(iVar19 + 0xc);" (assignment_expression "pcVar11 = *(code **)(iVar19 + 0xc)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(iVar19 + 0xc)" (* "*") (cast_expression "(code **)(iVar19 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 0xc)" (( "(") (binary_expression "iVar19 + 0xc" (identifier "iVar19") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar16 = *(code **)(iVar19 + 0x10);" (assignment_expression "pcVar16 = *(code **)(iVar19 + 0x10)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(iVar19 + 0x10)" (* "*") (cast_expression "(code **)(iVar19 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 0x10)" (( "(") (binary_expression "iVar19 + 0x10" (identifier "iVar19") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pcVar13 = (code *)(iVar19 + 0x14);" (assignment_expression "pcVar13 = (code *)(iVar19 + 0x14)" (identifier "pcVar13") (= "=") (cast_expression "(code *)(iVar19 + 0x14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x14)" (( "(") (binary_expression "iVar19 + 0x14" (identifier "iVar19") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (expression_statement "pcVar10 = pcVar1;" (assignment_expression "pcVar10 = pcVar1" (identifier "pcVar10") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "(**(code **)(pcVar23 + 0x42d7c))();" (call_expression "(**(code **)(pcVar23 + 0x42d7c))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x42d7c))" (( "(") (pointer_expression "**(code **)(pcVar23 + 0x42d7c)" (* "*") (pointer_expression "*(code **)(pcVar23 + 0x42d7c)" (* "*") (cast_expression "(code **)(pcVar23 + 0x42d7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x42d7c)" (( "(") (binary_expression "pcVar23 + 0x42d7c" (identifier "pcVar23") (+ "+") (number_literal "0x42d7c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0006e4d4;" (goto "goto") (statement_identifier "LAB_0006e4d4") (; ";")) (} "}"))) (labeled_statement "LAB_0006e5d4:\n    *(int *)(pcVar12 + 0x59c) = 0;" (statement_identifier "LAB_0006e5d4") (: ":") (expression_statement "*(int *)(pcVar12 + 0x59c) = 0;" (assignment_expression "*(int *)(pcVar12 + 0x59c) = 0" (pointer_expression "*(int *)(pcVar12 + 0x59c)" (* "*") (cast_expression "(int *)(pcVar12 + 0x59c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x59c)" (( "(") (binary_expression "pcVar12 + 0x59c" (identifier "pcVar12") (+ "+") (number_literal "0x59c")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0006e4dc:\n    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;" (statement_identifier "LAB_0006e4dc") (: ":") (expression_statement "*(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;" (assignment_expression "*(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1" (pointer_expression "*(int *)(pcVar1 + 0x18)" (* "*") (cast_expression "(int *)(pcVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x18)" (( "(") (binary_expression "pcVar1 + 0x18" (identifier "pcVar1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar1 + 0x18) + -1" (pointer_expression "*(int *)(pcVar1 + 0x18)" (* "*") (cast_expression "(int *)(pcVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x18)" (( "(") (binary_expression "pcVar1 + 0x18" (identifier "pcVar1") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "-1"))) (; ";"))) (} "}")) (else_clause "else {\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" (else "else") (compound_statement "{\nLAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;\n    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;\n  }" ({ "{") (labeled_statement "LAB_0006e4d4:\n    *(int *)(pcVar12 + 0x59c) = 0;" (statement_identifier "LAB_0006e4d4") (: ":") (expression_statement "*(int *)(pcVar12 + 0x59c) = 0;" (assignment_expression "*(int *)(pcVar12 + 0x59c) = 0" (pointer_expression "*(int *)(pcVar12 + 0x59c)" (* "*") (cast_expression "(int *)(pcVar12 + 0x59c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x59c)" (( "(") (binary_expression "pcVar12 + 0x59c" (identifier "pcVar12") (+ "+") (number_literal "0x59c")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;" (if "if") (parenthesized_expression "(pcVar1 != (code *)0x0)" (( "(") (binary_expression "pcVar1 != (code *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0006e4dc;" (goto "goto") (statement_identifier "LAB_0006e4dc") (; ";"))) (} "}")))) (expression_statement "*(int *)pcVar12 = 0;" (assignment_expression "*(int *)pcVar12 = 0" (pointer_expression "*(int *)pcVar12" (* "*") (cast_expression "(int *)pcVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar12"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar11 = pcVar12;" (assignment_expression "pcVar11 = pcVar12" (identifier "pcVar11") (= "=") (identifier "pcVar12")) (; ";")) (expression_statement "unaff_s4 = pcVar15;" (assignment_expression "unaff_s4 = pcVar15" (identifier "unaff_s4") (= "=") (identifier "pcVar15")) (; ";")) (if_statement "if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }" (if "if") (parenthesized_expression "((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0))" (( "(") (binary_expression "(pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)" (parenthesized_expression "(pcVar15 != (code *)0x0)" (( "(") (binary_expression "pcVar15 != (code *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)" (( "(") (comma_expression "pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0" (assignment_expression "pcVar13 = (code *)&DAT_00000005" (identifier "pcVar13") (= "=") (cast_expression "(code *)&DAT_00000005" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000005" (& "&") (identifier "DAT_00000005")))) (, ",") (binary_expression "*(int *)(pcVar9 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar9 + 0x8c)" (* "*") (cast_expression "(int *)(pcVar9 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar9 + 0x8c)" (( "(") (binary_expression "pcVar9 + 0x8c" (identifier "pcVar9") (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    pcVar10 = pcVar9;\n    FUN_0004e8cc();\n  }" ({ "{") (expression_statement "pcVar10 = pcVar9;" (assignment_expression "pcVar10 = pcVar9" (identifier "pcVar10") (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "FUN_0004e8cc();" (call_expression "FUN_0004e8cc()" (identifier "FUN_0004e8cc") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0006e510:\n  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" (statement_identifier "LAB_0006e510") (: ":") (if_statement "if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" (if "if") (parenthesized_expression "(pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0))" (( "(") (binary_expression "pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)" (identifier "pcStack_18c") (== "==") (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" (* "*") (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" (* "*") (cast_expression "(int **)(pcVar23 + 0x43ba0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x43ba0)" (( "(") (binary_expression "pcVar23 + 0x43ba0" (identifier "pcVar23") (+ "+") (number_literal "0x43ba0")) () ")"))))))) () ")")) (compound_statement "{\n    return (code *)**(int **)(pcVar23 + 0x43ba0);\n  }" ({ "{") (return_statement "return (code *)**(int **)(pcVar23 + 0x43ba0);" (return "return") (cast_expression "(code *)**(int **)(pcVar23 + 0x43ba0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar23 + 0x43ba0)" (* "*") (pointer_expression "*(int **)(pcVar23 + 0x43ba0)" (* "*") (cast_expression "(int **)(pcVar23 + 0x43ba0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x43ba0)" (( "(") (binary_expression "pcVar23 + 0x43ba0" (identifier "pcVar23") (+ "+") (number_literal "0x43ba0")) () ")")))))) (; ";")) (} "}")))) (expression_statement "pcVar15 = *(code **)(pcVar23 + 0x43814);" (assignment_expression "pcVar15 = *(code **)(pcVar23 + 0x43814)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar23 + 0x43814)" (* "*") (cast_expression "(code **)(pcVar23 + 0x43814)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x43814)" (( "(") (binary_expression "pcVar23 + 0x43814" (identifier "pcVar23") (+ "+") (number_literal "0x43814")) () ")"))))) (; ";")) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_1bc = unaff_s5;" (assignment_expression "pcStack_1bc = unaff_s5" (identifier "pcStack_1bc") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pcStack_1c0 = unaff_s4;" (assignment_expression "pcStack_1c0 = unaff_s4" (identifier "pcStack_1c0") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "pcStack_1c4 = pcVar1;" (assignment_expression "pcStack_1c4 = pcVar1" (identifier "pcStack_1c4") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "pcStack_1c8 = pcVar9;" (assignment_expression "pcStack_1c8 = pcVar9" (identifier "pcStack_1c8") (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "pcStack_1cc = pcVar11;" (assignment_expression "pcStack_1cc = pcVar11" (identifier "pcStack_1cc") (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "pcStack_1d0 = pcVar18;" (assignment_expression "pcStack_1d0 = pcVar18" (identifier "pcStack_1d0") (= "=") (identifier "pcVar18")) (; ";")) (expression_statement "pcStack_1e8 = pcVar15 + 0x4ab28;" (assignment_expression "pcStack_1e8 = pcVar15 + 0x4ab28" (identifier "pcStack_1e8") (= "=") (binary_expression "pcVar15 + 0x4ab28" (identifier "pcVar15") (+ "+") (number_literal "0x4ab28"))) (; ";")) (expression_statement "iStack_1d4 = **(int **)(pcVar15 + 0x439ec);" (assignment_expression "iStack_1d4 = **(int **)(pcVar15 + 0x439ec)" (identifier "iStack_1d4") (= "=") (pointer_expression "**(int **)(pcVar15 + 0x439ec)" (* "*") (pointer_expression "*(int **)(pcVar15 + 0x439ec)" (* "*") (cast_expression "(int **)(pcVar15 + 0x439ec)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x439ec)" (( "(") (binary_expression "pcVar15 + 0x439ec" (identifier "pcVar15") (+ "+") (number_literal "0x439ec")) () ")")))))) (; ";")) (if_statement "if (pcVar13 == (code *)0x0) {\n    pcVar15 = (code *)0x0;\n  }\n  else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" (if "if") (parenthesized_expression "(pcVar13 == (code *)0x0)" (( "(") (binary_expression "pcVar13 == (code *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar15 = (code *)0x0;\n  }" ({ "{") (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" (identifier "pcVar15") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" (else "else") (compound_statement "{\n    if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }\n    pcVar1 = (code *)auStack_1e0;\n    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);\n    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);\n    pcVar18 = pcVar13;\n    pcVar9 = param_4;\n    pcVar11 = pcVar16;\n    if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }\n    if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(pcVar10 + 0x8c) != 0) {\n      FUN_0004e860();\n    }" (if "if") (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) != 0)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x8c) != 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x8c)" (( "(") (binary_expression "pcVar10 + 0x8c" (identifier "pcVar10") (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0004e860();\n    }" ({ "{") (expression_statement "FUN_0004e860();" (call_expression "FUN_0004e860()" (identifier "FUN_0004e860") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar1 = (code *)auStack_1e0;" (assignment_expression "pcVar1 = (code *)auStack_1e0" (identifier "pcVar1") (= "=") (cast_expression "(code *)auStack_1e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_1e0"))) (; ";")) (expression_statement "(**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);" (call_expression "(**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7928))" (( "(") (pointer_expression "**(code **)(pcStack_1e8 + -0x7928)" (* "*") (pointer_expression "*(code **)(pcStack_1e8 + -0x7928)" (* "*") (cast_expression "(code **)(pcStack_1e8 + -0x7928)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e8 + -0x7928)" (( "(") (binary_expression "pcStack_1e8 + -0x7928" (identifier "pcStack_1e8") (+ "+") (number_literal "-0x7928")) () ")"))))) () ")")) (argument_list "(pcVar13,pcVar1)" (( "(") (identifier "pcVar13") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);" (assignment_expression "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" (identifier "unaff_s4") (= "=") (cast_expression "(code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_1e8 + -0x7924))(pcVar1)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7924))" (( "(") (pointer_expression "**(code **)(pcStack_1e8 + -0x7924)" (* "*") (pointer_expression "*(code **)(pcStack_1e8 + -0x7924)" (* "*") (cast_expression "(code **)(pcStack_1e8 + -0x7924)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e8 + -0x7924)" (( "(") (binary_expression "pcStack_1e8 + -0x7924" (identifier "pcStack_1e8") (+ "+") (number_literal "-0x7924")) () ")"))))) () ")")) (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))))) (; ";")) (expression_statement "pcVar18 = pcVar13;" (assignment_expression "pcVar18 = pcVar13" (identifier "pcVar18") (= "=") (identifier "pcVar13")) (; ";")) (expression_statement "pcVar9 = param_4;" (assignment_expression "pcVar9 = param_4" (identifier "pcVar9") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" (identifier "pcVar11") (= "=") (identifier "pcVar16")) (; ";")) (if_statement "if (unaff_s4 != (code *)0x0) {\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }" (if "if") (parenthesized_expression "(unaff_s4 != (code *)0x0)" (( "(") (binary_expression "unaff_s4 != (code *)0x0" (identifier "unaff_s4") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      unaff_s6 = auStack_1e0;\n      pcVar1 = (code *)0x1;\n      do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);\n    }" ({ "{") (expression_statement "unaff_s6 = auStack_1e0;" (assignment_expression "unaff_s6 = auStack_1e0" (identifier "unaff_s6") (= "=") (identifier "auStack_1e0")) (; ";")) (expression_statement "pcVar1 = (code *)0x1;" (assignment_expression "pcVar1 = (code *)0x1" (identifier "pcVar1") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (do_statement "do {\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      } while (unaff_s4 != (code *)0x0);" (do "do") (compound_statement "{\n        iVar19 = *(int *)(unaff_s4 + 0xc);\n        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);\n        pcVar18 = *(code **)(iVar19 + 8);\n        while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }\n        pcVar18 = (code *)0x0;\n      }" ({ "{") (expression_statement "iVar19 = *(int *)(unaff_s4 + 0xc);" (assignment_expression "iVar19 = *(int *)(unaff_s4 + 0xc)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(unaff_s4 + 0xc)" (* "*") (cast_expression "(int *)(unaff_s4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s4 + 0xc)" (( "(") (binary_expression "unaff_s4 + 0xc" (identifier "unaff_s4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);" (assignment_expression "unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" (identifier "unaff_s4") (= "=") (cast_expression "(code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6)" (parenthesized_expression "(**(code **)(pcStack_1e8 + -0x7924))" (( "(") (pointer_expression "**(code **)(pcStack_1e8 + -0x7924)" (* "*") (pointer_expression "*(code **)(pcStack_1e8 + -0x7924)" (* "*") (cast_expression "(code **)(pcStack_1e8 + -0x7924)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e8 + -0x7924)" (( "(") (binary_expression "pcStack_1e8 + -0x7924" (identifier "pcStack_1e8") (+ "+") (number_literal "-0x7924")) () ")"))))) () ")")) (argument_list "(unaff_s6)" (( "(") (identifier "unaff_s6") () ")"))))) (; ";")) (expression_statement "pcVar18 = *(code **)(iVar19 + 8);" (assignment_expression "pcVar18 = *(code **)(iVar19 + 8)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(iVar19 + 8)" (* "*") (cast_expression "(code **)(iVar19 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 8)" (( "(") (binary_expression "iVar19 + 8" (identifier "iVar19") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (while_statement "while (pcVar18 != (code *)0x0) {\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }" (while "while") (parenthesized_expression "(pcVar18 != (code *)0x0)" (( "(") (binary_expression "pcVar18 != (code *)0x0" (identifier "pcVar18") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar19 = *(int *)pcVar18;\n          pcVar18 = *(code **)(pcVar18 + 8);\n          iVar19 = (*param_4)(iVar19,pcVar16);\n          if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }\n        }" ({ "{") (expression_statement "iVar19 = *(int *)pcVar18;" (assignment_expression "iVar19 = *(int *)pcVar18" (identifier "iVar19") (= "=") (pointer_expression "*(int *)pcVar18" (* "*") (cast_expression "(int *)pcVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar18")))) (; ";")) (expression_statement "pcVar18 = *(code **)(pcVar18 + 8);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 8)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcVar18 + 8)" (* "*") (cast_expression "(code **)(pcVar18 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 8)" (( "(") (binary_expression "pcVar18 + 8" (identifier "pcVar18") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar19 = (*param_4)(iVar19,pcVar16);" (assignment_expression "iVar19 = (*param_4)(iVar19,pcVar16)" (identifier "iVar19") (= "=") (call_expression "(*param_4)(iVar19,pcVar16)" (parenthesized_expression "(*param_4)" (( "(") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")")) (argument_list "(iVar19,pcVar16)" (( "(") (identifier "iVar19") (, ",") (identifier "pcVar16") () ")")))) (; ";")) (if_statement "if (iVar19 == 1) {\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }" (if "if") (parenthesized_expression "(iVar19 == 1)" (( "(") (binary_expression "iVar19 == 1" (identifier "iVar19") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }\n            goto LAB_0006e740;\n          }" ({ "{") (if_statement "if (*(int *)(pcVar10 + 0x8c) == 0) {\n              pcVar15 = (code *)0x1;\n            }\n            else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" (if "if") (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) == 0)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x8c) == 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x8c)" (( "(") (binary_expression "pcVar10 + 0x8c" (identifier "pcVar10") (+ "+") (number_literal "0x8c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pcVar15 = (code *)0x1;\n            }" ({ "{") (expression_statement "pcVar15 = (code *)0x1;" (assignment_expression "pcVar15 = (code *)0x1" (identifier "pcVar15") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" (else "else") (compound_statement "{\n              FUN_0004e8cc(pcVar10,5);\n              pcVar15 = (code *)0x1;\n            }" ({ "{") (expression_statement "FUN_0004e8cc(pcVar10,5);" (call_expression "FUN_0004e8cc(pcVar10,5)" (identifier "FUN_0004e8cc") (argument_list "(pcVar10,5)" (( "(") (identifier "pcVar10") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "pcVar15 = (code *)0x1;" (assignment_expression "pcVar15 = (code *)0x1" (identifier "pcVar15") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0006e740;" (goto "goto") (statement_identifier "LAB_0006e740") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar18 = (code *)0x0;" (assignment_expression "pcVar18 = (code *)0x0" (identifier "pcVar18") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s4 != (code *)0x0)" (( "(") (binary_expression "unaff_s4 != (code *)0x0" (identifier "unaff_s4") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if (*(int *)(pcVar10 + 0x8c) == 0) {\n      pcVar15 = (code *)0x0;\n    }\n    else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" (if "if") (parenthesized_expression "(*(int *)(pcVar10 + 0x8c) == 0)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x8c) == 0" (pointer_expression "*(int *)(pcVar10 + 0x8c)" (* "*") (cast_expression "(int *)(pcVar10 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x8c)" (( "(") (binary_expression "pcVar10 + 0x8c" (identifier "pcVar10") (+ "+") (number_literal "0x8c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar15 = (code *)0x0;\n    }" ({ "{") (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" (identifier "pcVar15") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" (else "else") (compound_statement "{\n      FUN_0004e8cc(pcVar10,5);\n      pcVar15 = (code *)0x0;\n    }" ({ "{") (expression_statement "FUN_0004e8cc(pcVar10,5);" (call_expression "FUN_0004e8cc(pcVar10,5)" (identifier "FUN_0004e8cc") (argument_list "(pcVar10,5)" (( "(") (identifier "pcVar10") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "pcVar15 = (code *)0x0;" (assignment_expression "pcVar15 = (code *)0x0" (identifier "pcVar15") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0006e740:\n  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }" (statement_identifier "LAB_0006e740") (: ":") (if_statement "if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {\n    return pcVar15;\n  }" (if "if") (parenthesized_expression "(iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c))" (( "(") (binary_expression "iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)" (identifier "iStack_1d4") (== "==") (pointer_expression "**(int **)(pcStack_1e8 + -0x713c)" (* "*") (pointer_expression "*(int **)(pcStack_1e8 + -0x713c)" (* "*") (cast_expression "(int **)(pcStack_1e8 + -0x713c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e8 + -0x713c)" (( "(") (binary_expression "pcStack_1e8 + -0x713c" (identifier "pcStack_1e8") (+ "+") (number_literal "-0x713c")) () ")")))))) () ")")) (compound_statement "{\n    return pcVar15;\n  }" ({ "{") (return_statement "return pcVar15;" (return "return") (identifier "pcVar15") (; ";")) (} "}")))) (expression_statement "pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);" (assignment_expression "pcVar15 = *(code **)(pcStack_1e8 + -0x74c8)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcStack_1e8 + -0x74c8)" (* "*") (cast_expression "(code **)(pcStack_1e8 + -0x74c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1e8 + -0x74c8)" (( "(") (binary_expression "pcStack_1e8 + -0x74c8" (identifier "pcStack_1e8") (+ "+") (number_literal "-0x74c8")) () ")"))))) (; ";")) (expression_statement "pcVar17 = FUN_0006e79c;" (assignment_expression "pcVar17 = FUN_0006e79c" (identifier "pcVar17") (= "=") (identifier "FUN_0006e79c")) (; ";")) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_218 = pcVar15 + 0x4a974;" (assignment_expression "pcStack_218 = pcVar15 + 0x4a974" (identifier "pcStack_218") (= "=") (binary_expression "pcVar15 + 0x4a974" (identifier "pcVar15") (+ "+") (number_literal "0x4a974"))) (; ";")) (expression_statement "iStack_204 = **(int **)(pcVar15 + 0x43838);" (assignment_expression "iStack_204 = **(int **)(pcVar15 + 0x43838)" (identifier "iStack_204") (= "=") (pointer_expression "**(int **)(pcVar15 + 0x43838)" (* "*") (pointer_expression "*(int **)(pcVar15 + 0x43838)" (* "*") (cast_expression "(int **)(pcVar15 + 0x43838)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x43838)" (( "(") (binary_expression "pcVar15 + 0x43838" (identifier "pcVar15") (+ "+") (number_literal "0x43838")) () ")")))))) (; ";")) (expression_statement "puVar14 = auStack_210;" (assignment_expression "puVar14 = auStack_210" (identifier "puVar14") (= "=") (identifier "auStack_210")) (; ";")) (expression_statement "pcStack_200 = pcVar18;" (assignment_expression "pcStack_200 = pcVar18" (identifier "pcStack_200") (= "=") (identifier "pcVar18")) (; ";")) (expression_statement "pcStack_1fc = pcVar17;" (assignment_expression "pcStack_1fc = pcVar17" (identifier "pcStack_1fc") (= "=") (identifier "pcVar17")) (; ";")) (expression_statement "(**(code **)(pcVar15 + 0x4304c))();" (call_expression "(**(code **)(pcVar15 + 0x4304c))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x4304c))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x4304c)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x4304c)" (* "*") (cast_expression "(code **)(pcVar15 + 0x4304c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x4304c)" (( "(") (binary_expression "pcVar15 + 0x4304c" (identifier "pcVar15") (+ "+") (number_literal "0x4304c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);" (assignment_expression "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (parenthesized_expression "(**(code **)(pcStack_218 + -0x7924))" (( "(") (pointer_expression "**(code **)(pcStack_218 + -0x7924)" (* "*") (pointer_expression "*(code **)(pcStack_218 + -0x7924)" (* "*") (cast_expression "(code **)(pcStack_218 + -0x7924)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_218 + -0x7924)" (( "(") (binary_expression "pcStack_218 + -0x7924" (identifier "pcStack_218") (+ "+") (number_literal "-0x7924")) () ")"))))) () ")")) (argument_list "(auStack_210)" (( "(") (identifier "auStack_210") () ")"))))) (; ";")) (if_statement "if (pcVar15 != (code *)0x0) {\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }" (if "if") (parenthesized_expression "(pcVar15 != (code *)0x0)" (( "(") (binary_expression "pcVar15 != (code *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }\n    pcVar15 = (code *)*piVar4;\n  }" ({ "{") (expression_statement "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);" (assignment_expression "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(*(int *)(pcVar15 + 0xc) + 8)" (* "*") (cast_expression "(int **)(*(int *)(pcVar15 + 0xc) + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar15 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(pcVar15 + 0xc) + 8" (pointer_expression "*(int *)(pcVar15 + 0xc)" (* "*") (cast_expression "(int *)(pcVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0xc)" (( "(") (binary_expression "pcVar15 + 0xc" (identifier "pcVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (while_statement "while (piVar4 == (int *)0x0) {\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }" (while "while") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);\n      if (pcVar15 == (code *)0x0) goto LAB_0006e834;\n      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);\n    }" ({ "{") (expression_statement "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);" (assignment_expression "pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (identifier "pcVar15") (= "=") (cast_expression "(code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_218 + -0x7924))(auStack_210)" (parenthesized_expression "(**(code **)(pcStack_218 + -0x7924))" (( "(") (pointer_expression "**(code **)(pcStack_218 + -0x7924)" (* "*") (pointer_expression "*(code **)(pcStack_218 + -0x7924)" (* "*") (cast_expression "(code **)(pcStack_218 + -0x7924)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_218 + -0x7924)" (( "(") (binary_expression "pcStack_218 + -0x7924" (identifier "pcStack_218") (+ "+") (number_literal "-0x7924")) () ")"))))) () ")")) (argument_list "(auStack_210)" (( "(") (identifier "auStack_210") () ")"))))) (; ";")) (if_statement "if (pcVar15 == (code *)0x0) goto LAB_0006e834;" (if "if") (parenthesized_expression "(pcVar15 == (code *)0x0)" (( "(") (binary_expression "pcVar15 == (code *)0x0" (identifier "pcVar15") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0006e834;" (goto "goto") (statement_identifier "LAB_0006e834") (; ";"))) (expression_statement "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);" (assignment_expression "piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(*(int *)(pcVar15 + 0xc) + 8)" (* "*") (cast_expression "(int **)(*(int *)(pcVar15 + 0xc) + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar15 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(pcVar15 + 0xc) + 8" (pointer_expression "*(int *)(pcVar15 + 0xc)" (* "*") (cast_expression "(int *)(pcVar15 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0xc)" (( "(") (binary_expression "pcVar15 + 0xc" (identifier "pcVar15") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar15 = (code *)*piVar4;" (assignment_expression "pcVar15 = (code *)*piVar4" (identifier "pcVar15") (= "=") (cast_expression "(code *)*piVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (} "}"))) (labeled_statement "LAB_0006e834:\n  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }" (statement_identifier "LAB_0006e834") (: ":") (if_statement "if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {\n    return pcVar15;\n  }" (if "if") (parenthesized_expression "(iStack_204 == **(int **)(pcStack_218 + -0x713c))" (( "(") (binary_expression "iStack_204 == **(int **)(pcStack_218 + -0x713c)" (identifier "iStack_204") (== "==") (pointer_expression "**(int **)(pcStack_218 + -0x713c)" (* "*") (pointer_expression "*(int **)(pcStack_218 + -0x713c)" (* "*") (cast_expression "(int **)(pcStack_218 + -0x713c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_218 + -0x713c)" (( "(") (binary_expression "pcStack_218 + -0x713c" (identifier "pcStack_218") (+ "+") (number_literal "-0x713c")) () ")")))))) () ")")) (compound_statement "{\n    return pcVar15;\n  }" ({ "{") (return_statement "return pcVar15;" (return "return") (identifier "pcVar15") (; ";")) (} "}")))) (expression_statement "pcVar15 = *(code **)(pcStack_218 + -0x74c8);" (assignment_expression "pcVar15 = *(code **)(pcStack_218 + -0x74c8)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcStack_218 + -0x74c8)" (* "*") (cast_expression "(code **)(pcStack_218 + -0x74c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_218 + -0x74c8)" (( "(") (binary_expression "pcStack_218 + -0x74c8" (identifier "pcStack_218") (+ "+") (number_literal "-0x74c8")) () ")"))))) (; ";")) (expression_statement "uVar25 = 0x6e860;" (assignment_expression "uVar25 = 0x6e860" (identifier "uVar25") (= "=") (number_literal "0x6e860")) (; ";")) (expression_statement "iVar19 = iStack_204;" (assignment_expression "iVar19 = iStack_204" (identifier "iVar19") (= "=") (identifier "iStack_204")) (; ";")) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_24c = **(int **)(pcVar15 + 0x43774);" (assignment_expression "iStack_24c = **(int **)(pcVar15 + 0x43774)" (identifier "iStack_24c") (= "=") (pointer_expression "**(int **)(pcVar15 + 0x43774)" (* "*") (pointer_expression "*(int **)(pcVar15 + 0x43774)" (* "*") (cast_expression "(int **)(pcVar15 + 0x43774)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x43774)" (( "(") (binary_expression "pcVar15 + 0x43774" (identifier "pcVar15") (+ "+") (number_literal "0x43774")) () ")")))))) (; ";")) (expression_statement "puStack_244 = auStack_210;" (assignment_expression "puStack_244 = auStack_210" (identifier "puStack_244") (= "=") (identifier "auStack_210")) (; ";")) (expression_statement "pcStack_240 = pcVar11;" (assignment_expression "pcStack_240 = pcVar11" (identifier "pcStack_240") (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "pcStack_23c = pcVar9;" (assignment_expression "pcStack_23c = pcVar9" (identifier "pcStack_23c") (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "pcStack_238 = pcVar1;" (assignment_expression "pcStack_238 = pcVar1" (identifier "pcStack_238") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "pcStack_234 = unaff_s4;" (assignment_expression "pcStack_234 = unaff_s4" (identifier "pcStack_234") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "pcStack_230 = pcVar10;" (assignment_expression "pcStack_230 = pcVar10" (identifier "pcStack_230") (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "uStack_22c = uVar25;" (assignment_expression "uStack_22c = uVar25" (identifier "uStack_22c") (= "=") (identifier "uVar25")) (; ";")) (expression_statement "(**(code **)(pcVar15 + 0x42914))(&uStack_254);" (call_expression "(**(code **)(pcVar15 + 0x42914))(&uStack_254)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42914))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x42914)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x42914)" (* "*") (cast_expression "(code **)(pcVar15 + 0x42914)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x42914)" (( "(") (binary_expression "pcVar15 + 0x42914" (identifier "pcVar15") (+ "+") (number_literal "0x42914")) () ")"))))) () ")")) (argument_list "(&uStack_254)" (( "(") (pointer_expression "&uStack_254" (& "&") (identifier "uStack_254")) () ")"))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(puVar14 + 8);" (assignment_expression "puVar2 = *(undefined4 **)(puVar14 + 8)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(puVar14 + 8)" (* "*") (cast_expression "(undefined4 **)(puVar14 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 8)" (( "(") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" (identifier "iVar3") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n    pcVar1 = (code *)0x0;\n  }\n  else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" (if "if") (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 == (undefined4 *)0x0" (identifier "puVar2") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar1 = (code *)0x0;\n  }" ({ "{") (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" (identifier "pcVar1") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" (else "else") (compound_statement "{\n    pcVar1 = (code *)0x0;\n    do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);\n    if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }\n  }" ({ "{") (expression_statement "pcVar1 = (code *)0x0;" (assignment_expression "pcVar1 = (code *)0x0" (identifier "pcVar1") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    } while (puVar2 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n      pcVar11 = (code *)*puVar2;\n      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }\n      puVar2 = (undefined4 *)puVar2[2];\n    }" ({ "{") (expression_statement "pcVar11 = (code *)*puVar2;" (assignment_expression "pcVar11 = (code *)*puVar2" (identifier "pcVar11") (= "=") (cast_expression "(code *)*puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (if_statement "if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }" (if "if") (parenthesized_expression "((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5))" (( "(") (binary_expression "(*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&\n         (iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)" (parenthesized_expression "(*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0)" (( "(") (binary_expression "*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0" (binary_expression "*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330)" (pointer_expression "*(int *)(pcVar11 + 800)" (* "*") (cast_expression "(int *)(pcVar11 + 800)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 800)" (( "(") (binary_expression "pcVar11 + 800" (identifier "pcVar11") (+ "+") (number_literal "800")) () ")")))) (+ "+") (pointer_expression "*(int *)(pcVar11 + 0x330)" (* "*") (cast_expression "(int *)(pcVar11 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x330)" (( "(") (binary_expression "pcVar11 + 0x330" (identifier "pcVar11") (+ "+") (number_literal "0x330")) () ")"))))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)" (( "(") (comma_expression "iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5" (assignment_expression "iVar5 = (**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar15 + 0x429c0))\n                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" (parenthesized_expression "(**(code **)(pcVar15 + 0x429c0))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x429c0)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x429c0)" (* "*") (cast_expression "(code **)(pcVar15 + 0x429c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x429c0)" (( "(") (binary_expression "pcVar15 + 0x429c0" (identifier "pcVar15") (+ "+") (number_literal "0x429c0")) () ")"))))) () ")")) (argument_list "(uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),\n                             *(int *)(pcVar11 + 0x18c))" (( "(") (identifier "uStack_254") (, ",") (identifier "uStack_250") (, ",") (pointer_expression "*(int *)(pcVar11 + 0x188)" (* "*") (cast_expression "(int *)(pcVar11 + 0x188)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x188)" (( "(") (binary_expression "pcVar11 + 0x188" (identifier "pcVar11") (+ "+") (number_literal "0x188")) () ")")))) (, ",") (pointer_expression "*(int *)(pcVar11 + 0x18c)" (* "*") (cast_expression "(int *)(pcVar11 + 0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x18c)" (( "(") (binary_expression "pcVar11 + 0x18c" (identifier "pcVar11") (+ "+") (number_literal "0x18c")) () ")")))) () ")")))) (, ",") (binary_expression "iVar3 < iVar5" (identifier "iVar3") (< "<") (identifier "iVar5"))) () ")"))) () ")")) (compound_statement "{\n        pcVar1 = pcVar11;\n        iVar3 = iVar5;\n      }" ({ "{") (expression_statement "pcVar1 = pcVar11;" (assignment_expression "pcVar1 = pcVar11" (identifier "pcVar1") (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "iVar3 = iVar5;" (assignment_expression "iVar3 = iVar5" (identifier "iVar3") (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)puVar2[2];" (assignment_expression "puVar2 = (undefined4 *)puVar2[2]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)puVar2[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (if_statement "if (pcVar1 != (code *)0x0) {\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }" (if "if") (parenthesized_expression "(pcVar1 != (code *)0x0)" (( "(") (binary_expression "pcVar1 != (code *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_0006dd58(puVar14,pcVar1);\n      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;\n      *(int *)pcVar1 = iVar19;\n    }" ({ "{") (expression_statement "FUN_0006dd58(puVar14,pcVar1);" (call_expression "FUN_0006dd58(puVar14,pcVar1)" (identifier "FUN_0006dd58") (argument_list "(puVar14,pcVar1)" (( "(") (identifier "puVar14") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (expression_statement "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;" (assignment_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1" (pointer_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0xc78) + 0x18)" (( "(") (binary_expression "*(int *)(iVar19 + 0xc78) + 0x18" (pointer_expression "*(int *)(iVar19 + 0xc78)" (* "*") (cast_expression "(int *)(iVar19 + 0xc78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xc78)" (( "(") (binary_expression "iVar19 + 0xc78" (identifier "iVar19") (+ "+") (number_literal "0xc78")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1" (pointer_expression "*(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 0xc78) + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0xc78) + 0x18)" (( "(") (binary_expression "*(int *)(iVar19 + 0xc78) + 0x18" (pointer_expression "*(int *)(iVar19 + 0xc78)" (* "*") (cast_expression "(int *)(iVar19 + 0xc78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xc78)" (( "(") (binary_expression "iVar19 + 0xc78" (identifier "iVar19") (+ "+") (number_literal "0xc78")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)pcVar1 = iVar19;" (assignment_expression "*(int *)pcVar1 = iVar19" (pointer_expression "*(int *)pcVar1" (* "*") (cast_expression "(int *)pcVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar1"))) (= "=") (identifier "iVar19")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }" (if "if") (parenthesized_expression "(iStack_24c != **(int **)(pcVar15 + 0x43774))" (( "(") (binary_expression "iStack_24c != **(int **)(pcVar15 + 0x43774)" (identifier "iStack_24c") (!= "!=") (pointer_expression "**(int **)(pcVar15 + 0x43774)" (* "*") (pointer_expression "*(int **)(pcVar15 + 0x43774)" (* "*") (cast_expression "(int **)(pcVar15 + 0x43774)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x43774)" (( "(") (binary_expression "pcVar15 + 0x43774" (identifier "pcVar15") (+ "+") (number_literal "0x43774")) () ")")))))) () ")")) (compound_statement "{\n    pcVar15 = *(code **)(pcVar15 + 0x433e8);\n    iVar5 = iStack_24c;\n    (*pcVar15)();\n    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);\n    iVar24 = *(int *)(iVar5 + 0xc78);\n    uStack_298 = 0;\n    pcStack_294 = pcVar11;\n    pcStack_290 = pcVar1;\n    iStack_28c = iVar3;\n    puStack_288 = puVar14;\n    iStack_284 = iVar19;\n    puStack_280 = unaff_s6;\n    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }\n    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);\n    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);\n    iVar19 = 0;\n    if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }\n    if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }\n    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }\n    return pcVar11;\n  }" ({ "{") (expression_statement "pcVar15 = *(code **)(pcVar15 + 0x433e8);" (assignment_expression "pcVar15 = *(code **)(pcVar15 + 0x433e8)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar15 + 0x433e8)" (* "*") (cast_expression "(code **)(pcVar15 + 0x433e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x433e8)" (( "(") (binary_expression "pcVar15 + 0x433e8" (identifier "pcVar15") (+ "+") (number_literal "0x433e8")) () ")"))))) (; ";")) (expression_statement "iVar5 = iStack_24c;" (assignment_expression "iVar5 = iStack_24c" (identifier "iVar5") (= "=") (identifier "iStack_24c")) (; ";")) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);" (assignment_expression "piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634)" (identifier "piStack_29c") (= "=") (cast_expression "(int *)**(undefined4 **)(pcVar15 + 0x43634)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar15 + 0x43634)" (* "*") (pointer_expression "*(undefined4 **)(pcVar15 + 0x43634)" (* "*") (cast_expression "(undefined4 **)(pcVar15 + 0x43634)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x43634)" (( "(") (binary_expression "pcVar15 + 0x43634" (identifier "pcVar15") (+ "+") (number_literal "0x43634")) () ")"))))))) (; ";")) (expression_statement "iVar24 = *(int *)(iVar5 + 0xc78);" (assignment_expression "iVar24 = *(int *)(iVar5 + 0xc78)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(iVar5 + 0xc78)" (* "*") (cast_expression "(int *)(iVar5 + 0xc78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc78)" (( "(") (binary_expression "iVar5 + 0xc78" (identifier "iVar5") (+ "+") (number_literal "0xc78")) () ")"))))) (; ";")) (expression_statement "uStack_298 = 0;" (assignment_expression "uStack_298 = 0" (identifier "uStack_298") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcStack_294 = pcVar11;" (assignment_expression "pcStack_294 = pcVar11" (identifier "pcStack_294") (= "=") (identifier "pcVar11")) (; ";")) (expression_statement "pcStack_290 = pcVar1;" (assignment_expression "pcStack_290 = pcVar1" (identifier "pcStack_290") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "iStack_28c = iVar3;" (assignment_expression "iStack_28c = iVar3" (identifier "iStack_28c") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "puStack_288 = puVar14;" (assignment_expression "puStack_288 = puVar14" (identifier "puStack_288") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "iStack_284 = iVar19;" (assignment_expression "iStack_284 = iVar19" (identifier "iStack_284") (= "=") (identifier "iVar19")) (; ";")) (expression_statement "puStack_280 = unaff_s6;" (assignment_expression "puStack_280 = unaff_s6" (identifier "puStack_280") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "(**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);" (call_expression "(**(code **)(pcVar15 + 0x427d4))(&uStack_2b0)" (parenthesized_expression "(**(code **)(pcVar15 + 0x427d4))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x427d4)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x427d4)" (* "*") (cast_expression "(code **)(pcVar15 + 0x427d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x427d4)" (( "(") (binary_expression "pcVar15 + 0x427d4" (identifier "pcVar15") (+ "+") (number_literal "0x427d4")) () ")"))))) () ")")) (argument_list "(&uStack_2b0)" (( "(") (pointer_expression "&uStack_2b0" (& "&") (identifier "uStack_2b0")) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x8c) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x8c) != 0" (pointer_expression "*(int *)(iVar5 + 0x8c)" (* "*") (cast_expression "(int *)(iVar5 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x8c)" (( "(") (binary_expression "iVar5 + 0x8c" (identifier "iVar5") (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar15 + 0x42824))(iVar5,5,2);" (call_expression "(**(code **)(pcVar15 + 0x42824))(iVar5,5,2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42824))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x42824)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x42824)" (* "*") (cast_expression "(code **)(pcVar15 + 0x42824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x42824)" (( "(") (binary_expression "pcVar15 + 0x42824" (identifier "pcVar15") (+ "+") (number_literal "0x42824")) () ")"))))) () ")")) (argument_list "(iVar5,5,2)" (( "(") (identifier "iVar5") (, ",") (number_literal "5") (, ",") (number_literal "2") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);" (call_expression "(**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42e48))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x42e48)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x42e48)" (* "*") (cast_expression "(code **)(pcVar15 + 0x42e48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x42e48)" (( "(") (binary_expression "pcVar15 + 0x42e48" (identifier "pcVar15") (+ "+") (number_literal "0x42e48")) () ")"))))) () ")")) (argument_list "(iVar24,auStack_2a8)" (( "(") (identifier "iVar24") (, ",") (identifier "auStack_2a8") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);" (assignment_expression "iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar15 + 0x42e4c))(auStack_2a8)" (parenthesized_expression "(**(code **)(pcVar15 + 0x42e4c))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x42e4c)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" (* "*") (cast_expression "(code **)(pcVar15 + 0x42e4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x42e4c)" (( "(") (binary_expression "pcVar15 + 0x42e4c" (identifier "pcVar15") (+ "+") (number_literal "0x42e4c")) () ")"))))) () ")")) (argument_list "(auStack_2a8)" (( "(") (identifier "auStack_2a8") () ")")))) (; ";")) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar3 == 0) {\n      pcVar11 = (code *)0x0;\n    }\n    else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar11 = (code *)0x0;\n    }" ({ "{") (expression_statement "pcVar11 = (code *)0x0;" (assignment_expression "pcVar11 = (code *)0x0" (identifier "pcVar11") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" (else "else") (compound_statement "{\n      pcVar11 = (code *)0x0;\n      iVar21 = -1;\n      do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);\n      if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }\n    }" ({ "{") (expression_statement "pcVar11 = (code *)0x0;" (assignment_expression "pcVar11 = (code *)0x0" (identifier "pcVar11") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar21 = -1;" (assignment_expression "iVar21 = -1" (identifier "iVar21") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      } while (iVar3 != 0);" (do "do") (compound_statement "{\n        iVar3 = *(int *)(iVar3 + 0xc);\n        puVar2 = *(undefined4 **)(iVar3 + 8);\n        if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        iVar3 = (*pcVar1)(auStack_2a8);\n      }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0xc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(iVar3 + 8);" (assignment_expression "puVar2 = *(undefined4 **)(iVar3 + 8)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 **)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar2 == (undefined4 *)0x0) {\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }\n        else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" (if "if") (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 == (undefined4 *)0x0" (identifier "puVar2") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" ({ "{") (expression_statement "pcVar1 = *(code **)(pcVar15 + 0x42e4c);" (assignment_expression "pcVar1 = *(code **)(pcVar15 + 0x42e4c)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" (* "*") (cast_expression "(code **)(pcVar15 + 0x42e4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x42e4c)" (( "(") (binary_expression "pcVar15 + 0x42e4c" (identifier "pcVar15") (+ "+") (number_literal "0x42e4c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" (else "else") (compound_statement "{\n          do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);\n          pcVar1 = *(code **)(pcVar15 + 0x42e4c);\n        }" ({ "{") (do_statement "do {\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          } while (puVar2 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n            pcVar1 = (code *)*puVar2;\n            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }\n            puVar2 = (undefined4 *)puVar2[2];\n          }" ({ "{") (expression_statement "pcVar1 = (code *)*puVar2;" (assignment_expression "pcVar1 = (code *)*puVar2" (identifier "pcVar1") (= "=") (cast_expression "(code *)*puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (if_statement "if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }" (if "if") (parenthesized_expression "((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6))" (( "(") (binary_expression "(*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&\n               (iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)" (parenthesized_expression "(*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0)" (( "(") (binary_expression "*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0" (binary_expression "*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330)" (pointer_expression "*(int *)(pcVar1 + 800)" (* "*") (cast_expression "(int *)(pcVar1 + 800)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 800)" (( "(") (binary_expression "pcVar1 + 800" (identifier "pcVar1") (+ "+") (number_literal "800")) () ")")))) (+ "+") (pointer_expression "*(int *)(pcVar1 + 0x330)" (* "*") (cast_expression "(int *)(pcVar1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x330)" (( "(") (binary_expression "pcVar1 + 0x330" (identifier "pcVar1") (+ "+") (number_literal "0x330")) () ")"))))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)" (( "(") (comma_expression "iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6" (assignment_expression "iVar6 = (**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar15 + 0x42880))\n                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" (parenthesized_expression "(**(code **)(pcVar15 + 0x42880))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x42880)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x42880)" (* "*") (cast_expression "(code **)(pcVar15 + 0x42880)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x42880)" (( "(") (binary_expression "pcVar15 + 0x42880" (identifier "pcVar15") (+ "+") (number_literal "0x42880")) () ")"))))) () ")")) (argument_list "(uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),\n                                   *(int *)(pcVar1 + 0x18c))" (( "(") (identifier "uStack_2b0") (, ",") (identifier "uStack_2ac") (, ",") (pointer_expression "*(int *)(pcVar1 + 0x188)" (* "*") (cast_expression "(int *)(pcVar1 + 0x188)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x188)" (( "(") (binary_expression "pcVar1 + 0x188" (identifier "pcVar1") (+ "+") (number_literal "0x188")) () ")")))) (, ",") (pointer_expression "*(int *)(pcVar1 + 0x18c)" (* "*") (cast_expression "(int *)(pcVar1 + 0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x18c)" (( "(") (binary_expression "pcVar1 + 0x18c" (identifier "pcVar1") (+ "+") (number_literal "0x18c")) () ")")))) () ")")))) (, ",") (binary_expression "iVar21 < iVar6" (identifier "iVar21") (< "<") (identifier "iVar6"))) () ")"))) () ")")) (compound_statement "{\n              iVar21 = iVar6;\n              pcVar11 = pcVar1;\n              iVar19 = iVar3;\n            }" ({ "{") (expression_statement "iVar21 = iVar6;" (assignment_expression "iVar21 = iVar6" (identifier "iVar21") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" (identifier "pcVar11") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "iVar19 = iVar3;" (assignment_expression "iVar19 = iVar3" (identifier "iVar19") (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)puVar2[2];" (assignment_expression "puVar2 = (undefined4 *)puVar2[2]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)puVar2[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pcVar1 = *(code **)(pcVar15 + 0x42e4c);" (assignment_expression "pcVar1 = *(code **)(pcVar15 + 0x42e4c)" (identifier "pcVar1") (= "=") (pointer_expression "*(code **)(pcVar15 + 0x42e4c)" (* "*") (cast_expression "(code **)(pcVar15 + 0x42e4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x42e4c)" (( "(") (binary_expression "pcVar15 + 0x42e4c" (identifier "pcVar15") (+ "+") (number_literal "0x42e4c")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar3 = (*pcVar1)(auStack_2a8);" (assignment_expression "iVar3 = (*pcVar1)(auStack_2a8)" (identifier "iVar3") (= "=") (call_expression "(*pcVar1)(auStack_2a8)" (parenthesized_expression "(*pcVar1)" (( "(") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) () ")")) (argument_list "(auStack_2a8)" (( "(") (identifier "auStack_2a8") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (pcVar11 != (code *)0x0) {\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }" (if "if") (parenthesized_expression "(pcVar11 != (code *)0x0)" (( "(") (binary_expression "pcVar11 != (code *)0x0" (identifier "pcVar11") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        FUN_0006dd58(iVar19,pcVar11);\n        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;\n        *(int *)pcVar11 = iVar5;\n      }" ({ "{") (expression_statement "FUN_0006dd58(iVar19,pcVar11);" (call_expression "FUN_0006dd58(iVar19,pcVar11)" (identifier "FUN_0006dd58") (argument_list "(iVar19,pcVar11)" (( "(") (identifier "iVar19") (, ",") (identifier "pcVar11") () ")"))) (; ";")) (expression_statement "*(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;" (assignment_expression "*(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1" (pointer_expression "*(int *)(iVar24 + 0x18)" (* "*") (cast_expression "(int *)(iVar24 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x18)" (( "(") (binary_expression "iVar24 + 0x18" (identifier "iVar24") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(int *)(iVar24 + 0x18) + -1" (pointer_expression "*(int *)(iVar24 + 0x18)" (* "*") (cast_expression "(int *)(iVar24 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x18)" (( "(") (binary_expression "iVar24 + 0x18" (identifier "iVar24") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)pcVar11 = iVar5;" (assignment_expression "*(int *)pcVar11 = iVar5" (pointer_expression "*(int *)pcVar11" (* "*") (cast_expression "(int *)pcVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar11"))) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(iVar5 + 0x8c) != 0) {\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x8c) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x8c) != 0" (pointer_expression "*(int *)(iVar5 + 0x8c)" (* "*") (cast_expression "(int *)(iVar5 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x8c)" (( "(") (binary_expression "iVar5 + 0x8c" (identifier "iVar5") (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar15 + 0x4282c))(iVar5,5);" (call_expression "(**(code **)(pcVar15 + 0x4282c))(iVar5,5)" (parenthesized_expression "(**(code **)(pcVar15 + 0x4282c))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x4282c)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x4282c)" (* "*") (cast_expression "(code **)(pcVar15 + 0x4282c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x4282c)" (( "(") (binary_expression "pcVar15 + 0x4282c" (identifier "pcVar15") (+ "+") (number_literal "0x4282c")) () ")"))))) () ")")) (argument_list "(iVar5,5)" (( "(") (identifier "iVar5") (, ",") (number_literal "5") () ")"))) (; ";")) (} "}"))) (if_statement "if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }" (if "if") (parenthesized_expression "(piStack_29c != (int *)**(int **)(pcVar15 + 0x43634))" (( "(") (binary_expression "piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)" (identifier "piStack_29c") (!= "!=") (cast_expression "(int *)**(int **)(pcVar15 + 0x43634)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar15 + 0x43634)" (* "*") (pointer_expression "*(int **)(pcVar15 + 0x43634)" (* "*") (cast_expression "(int **)(pcVar15 + 0x43634)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x43634)" (( "(") (binary_expression "pcVar15 + 0x43634" (identifier "pcVar15") (+ "+") (number_literal "0x43634")) () ")"))))))) () ")")) (compound_statement "{\n      pcVar11 = *(code **)(pcVar15 + 0x432a8);\n      piVar4 = piStack_29c;\n      (*pcVar11)();\n      iVar19 = *piVar4;\n      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);\n      if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }\n      if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }\n      return (code *)(uint)(piVar20 != piVar4);\n    }" ({ "{") (expression_statement "pcVar11 = *(code **)(pcVar15 + 0x432a8);" (assignment_expression "pcVar11 = *(code **)(pcVar15 + 0x432a8)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(pcVar15 + 0x432a8)" (* "*") (cast_expression "(code **)(pcVar15 + 0x432a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x432a8)" (( "(") (binary_expression "pcVar15 + 0x432a8" (identifier "pcVar15") (+ "+") (number_literal "0x432a8")) () ")"))))) (; ";")) (expression_statement "piVar4 = piStack_29c;" (assignment_expression "piVar4 = piStack_29c" (identifier "piVar4") (= "=") (identifier "piStack_29c")) (; ";")) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar19 = *piVar4;" (assignment_expression "iVar19 = *piVar4" (identifier "iVar19") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);" (assignment_expression "uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" (* "*") (cast_expression "(uint *)(*(int *)(iVar19 + 0x84) + 0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0x84) + 0xb8)" (( "(") (binary_expression "*(int *)(iVar19 + 0x84) + 0xb8" (pointer_expression "*(int *)(iVar19 + 0x84)" (* "*") (cast_expression "(int *)(iVar19 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x84)" (( "(") (binary_expression "iVar19 + 0x84" (identifier "iVar19") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (number_literal "0xb8")) () ")"))))) (; ";")) (if_statement "if ((int)uVar7 < 0) {\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }" (if "if") (parenthesized_expression "((int)uVar7 < 0)" (( "(") (binary_expression "(int)uVar7 < 0" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;\n      }" ({ "{") (expression_statement "uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;" (assignment_expression "uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2" (identifier "uVar7") (= "=") (binary_expression "*(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2" (pointer_expression "*(int *)(*(int *)(iVar19 + 0x84) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 0x84) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0x84) + 0xc)" (( "(") (binary_expression "*(int *)(iVar19 + 0x84) + 0xc" (pointer_expression "*(int *)(iVar19 + 0x84)" (* "*") (cast_expression "(int *)(iVar19 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x84)" (( "(") (binary_expression "iVar19 + 0x84" (identifier "iVar19") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (<< "<<") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (uVar7 == 0) {\n        piVar20 = (int *)0x0;\n      }\n      else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar20 = (int *)0x0;\n      }" ({ "{") (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" (identifier "piVar20") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" (else "else") (compound_statement "{\n        uVar8 = FUN_0006e044(iVar19);\n        if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }\n      }" ({ "{") (expression_statement "uVar8 = FUN_0006e044(iVar19);" (assignment_expression "uVar8 = FUN_0006e044(iVar19)" (identifier "uVar8") (= "=") (call_expression "FUN_0006e044(iVar19)" (identifier "FUN_0006e044") (argument_list "(iVar19)" (( "(") (identifier "iVar19") () ")")))) (; ";")) (if_statement "if (uVar7 < uVar8) {\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }\n        else {\n          piVar20 = (int *)0x0;\n        }" (if "if") (parenthesized_expression "(uVar7 < uVar8)" (( "(") (binary_expression "uVar7 < uVar8" (identifier "uVar7") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);\n          piVar20 = (int *)FUN_0006e9a0(iVar19);\n          if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }\n        }" ({ "{") (expression_statement "(**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);" (call_expression "(**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8)" (parenthesized_expression "(**(code **)(pcVar11 + 0x42608))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x42608)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x42608)" (* "*") (cast_expression "(code **)(pcVar11 + 0x42608)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x42608)" (( "(") (binary_expression "pcVar11 + 0x42608" (identifier "pcVar11") (+ "+") (number_literal "0x42608")) () ")"))))) () ")")) (argument_list "(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8)" (( "(") (identifier "iVar19") (, ",") (binary_expression "*(int *)(pcVar11 + 0x425e0) + -0x39a8" (pointer_expression "*(int *)(pcVar11 + 0x425e0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x425e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x425e0)" (( "(") (binary_expression "pcVar11 + 0x425e0" (identifier "pcVar11") (+ "+") (number_literal "0x425e0")) () ")")))) (+ "+") (number_literal "-0x39a8")) () ")"))) (; ";")) (expression_statement "piVar20 = (int *)FUN_0006e9a0(iVar19);" (assignment_expression "piVar20 = (int *)FUN_0006e9a0(iVar19)" (identifier "piVar20") (= "=") (cast_expression "(int *)FUN_0006e9a0(iVar19)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0006e9a0(iVar19)" (identifier "FUN_0006e9a0") (argument_list "(iVar19)" (( "(") (identifier "iVar19") () ")"))))) (; ";")) (if_statement "if (piVar20 != (int *)0x0) {\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }" (if "if") (parenthesized_expression "(piVar20 != (int *)0x0)" (( "(") (binary_expression "piVar20 != (int *)0x0" (identifier "piVar20") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);\n          }" ({ "{") (expression_statement "(**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);" (call_expression "(**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0)" (parenthesized_expression "(**(code **)(pcVar11 + 0x42670))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x42670)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x42670)" (* "*") (cast_expression "(code **)(pcVar11 + 0x42670)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x42670)" (( "(") (binary_expression "pcVar11 + 0x42670" (identifier "pcVar11") (+ "+") (number_literal "0x42670")) () ")"))))) () ")")) (argument_list "(iVar19,piVar20,0)" (( "(") (identifier "iVar19") (, ",") (identifier "piVar20") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          piVar20 = (int *)0x0;\n        }" (else "else") (compound_statement "{\n          piVar20 = (int *)0x0;\n        }" ({ "{") (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" (identifier "piVar20") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")))) (return_statement "return (code *)(uint)(piVar20 != piVar4);" (return "return") (cast_expression "(code *)(uint)(piVar20 != piVar4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(piVar20 != piVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar20 != piVar4)" (( "(") (binary_expression "piVar20 != piVar4" (identifier "piVar20") (!= "!=") (identifier "piVar4")) () ")")))) (; ";")) (} "}"))) (return_statement "return pcVar11;" (return "return") (identifier "pcVar11") (; ";")) (} "}"))) (return_statement "return pcVar1;" (return "return") (identifier "pcVar1") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) (return_statement (identifier)))) (return_statement (identifier)))))

code * MASKED(int *param_1,code *param_2,undefined4 param_3,code *param_4)

{
  code *pcVar1;
  undefined4 *puVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  code *pcVar9;
  code *pcVar10;
  code *pcVar11;
  code *pcVar12;
  code *pcVar13;
  undefined1 *puVar14;
  code *pcVar15;
  code *pcVar16;
  code *pcVar17;
  code *pcVar18;
  int iVar19;
  int *piVar20;
  code *unaff_s1;
  int iVar21;
  code *unaff_s4;
  code *unaff_s5;
  undefined1 *unaff_s6;
  undefined *puVar22;
  code *pcVar23;
  int iVar24;
  undefined4 uVar25;
  undefined4 uStack_2b0;
  undefined4 uStack_2ac;
  undefined1 auStack_2a8 [12];
  int *piStack_29c;
  undefined4 uStack_298;
  code *pcStack_294;
  code *pcStack_290;
  int iStack_28c;
  undefined1 *puStack_288;
  int iStack_284;
  undefined1 *puStack_280;
  undefined4 uStack_254;
  undefined4 uStack_250;
  int iStack_24c;
  undefined1 *puStack_244;
  code *pcStack_240;
  code *pcStack_23c;
  code *pcStack_238;
  code *pcStack_234;
  code *pcStack_230;
  undefined4 uStack_22c;
  code *pcStack_218;
  undefined1 auStack_210 [12];
  int iStack_204;
  code *pcStack_200;
  code *pcStack_1fc;
  code *pcStack_1e8;
  undefined1 auStack_1e0 [12];
  int iStack_1d4;
  code *pcStack_1d0;
  code *pcStack_1cc;
  code *pcStack_1c8;
  code *pcStack_1c4;
  code *pcStack_1c0;
  code *pcStack_1bc;
  undefined1 auStack_198 [12];
  code *pcStack_18c;
  code *pcStack_184;
  code *pcStack_180;
  int iStack_17c;
  code *pcStack_178;
  code *pcStack_174;
  undefined1 auStack_14c [128];
  code *local_cc;
  code *local_c8;
  code *local_c4;
  int *local_c0;
  undefined1 local_94 [128];
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_000b1fd4;
  pcVar11 = param_2;
  if (*(int *)(*param_1 + 0x8c) != 0) {
    pcVar11 = (code *)&DAT_00000005;
    FUN_0004e860(*param_1,5,2);
  }
  pcVar15 = (code *)0x80;
  if (param_2 == (code *)0x0) {
    pcVar1 = (code *)0x0;
  }
  else {
    unaff_s1 = (code *)local_94;
    FUN_0006dccc(param_1,unaff_s1);
    pcVar15 = (code *)(*(code *)PTR_strlen_000b1e9c)(unaff_s1);
    pcVar11 = unaff_s1;
    pcVar1 = (code *)(*(code *)PTR_FUN_000b11a8)(param_2);
  }
  if (local_14 == *(int *)PTR___stack_chk_guard_000b1fd4) {
    return pcVar1;
  }
  iVar19 = local_14;
  puVar22 = PTR___stack_chk_fail_000b1c48;
  (*(code *)PTR___stack_chk_fail_000b1c48)();
  local_c0 = param_1;
  local_c4 = unaff_s1;
  local_c8 = param_2;
  local_cc = (code *)**(undefined4 **)(puVar22 + 0x43d78);
  pcVar1 = *(code **)pcVar11;
  puVar2 = (undefined4 *)MASKED(pcVar11,*(int *)(pcVar1 + 0xc78));
  if (puVar2 == (undefined4 *)0x0) {
    puVar2 = (undefined4 *)(*(code *)**(undefined4 **)(puVar22 + 0x42f3c))(0x18);
    if (puVar2 != (undefined4 *)0x0) {
      puVar2[1] = 0;
      *puVar2 = 0;
      (**(code **)(puVar22 + 0x43254))(puVar2 + 2,*(int *)(puVar22 + 0x4351c) + -0x23e0);
      unaff_s4 = (code *)auStack_14c;
      FUN_0006dccc(pcVar11,unaff_s4,0x80);
      pcVar15 = (code *)(**(code **)(puVar22 + 0x43c40))(unaff_s4);
      iVar3 = (**(code **)(puVar22 + 0x42f80))(*(int *)(pcVar1 + 0xc78),unaff_s4,pcVar15,puVar2);
      param_4 = pcVar11 + 4;
      if (iVar3 != 0) goto LAB_0006e2c4;
      FUN_0006dc28(puVar2);
    }
    pcVar17 = (code *)0x1b;
  }
  else {
LAB_0006e2c4:
    param_4 = pcVar11 + 4;
    pcVar15 = pcVar11;
    (**(code **)(puVar22 + 0x43390))(puVar2 + 2,puVar2[3]);
    *(undefined4 **)(pcVar11 + 0x59c) = puVar2;
    puVar2[1] = puVar2[1] + 1;
    iVar3 = *(int *)(iVar19 + 0x1c);
    *(int *)(iVar19 + 0x1c) = iVar3 + 1;
    *(int *)(pcVar11 + 0x48) = iVar3;
    *(int *)(iVar19 + 0x18) = *(int *)(iVar19 + 0x18) + 1;
    pcVar17 = (code *)0x0;
  }
  pcVar12 = (code *)&DAT_00000005;
  if (*(int *)(pcVar1 + 0x8c) != 0) {
    FUN_0004e8cc(pcVar1);
  }
  if (local_cc == (code *)**(undefined4 **)(puVar22 + 0x43d78)) {
    return pcVar17;
  }
  pcVar23 = *(code **)(puVar22 + 0x439ec);
  pcVar9 = local_cc;
  (*pcVar23)();
  pcStack_18c = (code *)**(int **)(pcVar23 + 0x43ba0);
  pcVar18 = *(code **)(pcVar12 + 0x59c);
  pcVar10 = pcVar9;
  pcVar13 = pcVar12;
  pcVar16 = pcVar15;
  pcStack_184 = pcVar17;
  pcStack_180 = pcVar11;
  iStack_17c = iVar19;
  pcStack_178 = pcVar1;
  pcStack_174 = unaff_s4;
  if (pcVar18 == (code *)0x0) goto LAB_0006e510;
  pcVar1 = *(code **)(pcVar9 + 0xc78);
  if ((pcVar15 != (code *)0x0) && (pcVar16 = (code *)0x2, *(int *)(pcVar9 + 0x8c) != 0)) {
    FUN_0004e860();
  }
  pcVar10 = pcVar18;
  FUN_0006dd58();
  if ((*(int *)(pcVar18 + 4) == 0) && (unaff_s5 = (code *)auStack_198, pcVar1 != (code *)0x0)) {
    pcVar13 = unaff_s5;
    (**(code **)(pcVar23 + 0x433b4))(pcVar1);
    pcVar10 = unaff_s5;
    iVar19 = (**(code **)(pcVar23 + 0x433b8))();
    if (iVar19 != 0) {
      pcVar11 = *(code **)(iVar19 + 0xc);
      while (pcVar18 != pcVar11) {
        pcVar10 = unaff_s5;
        iVar19 = (**(code **)(pcVar23 + 0x433b8))();
        if (iVar19 == 0) goto LAB_0006e5d4;
        pcVar11 = *(code **)(iVar19 + 0xc);
      }
      pcVar16 = *(code **)(iVar19 + 0x10);
      pcVar13 = (code *)(iVar19 + 0x14);
      pcVar10 = pcVar1;
      (**(code **)(pcVar23 + 0x42d7c))();
      goto LAB_0006e4d4;
    }
LAB_0006e5d4:
    *(int *)(pcVar12 + 0x59c) = 0;
LAB_0006e4dc:
    *(int *)(pcVar1 + 0x18) = *(int *)(pcVar1 + 0x18) + -1;
  }
  else {
LAB_0006e4d4:
    *(int *)(pcVar12 + 0x59c) = 0;
    if (pcVar1 != (code *)0x0) goto LAB_0006e4dc;
  }
  *(int *)pcVar12 = 0;
  pcVar11 = pcVar12;
  unaff_s4 = pcVar15;
  if ((pcVar15 != (code *)0x0) && (pcVar13 = (code *)&DAT_00000005, *(int *)(pcVar9 + 0x8c) != 0)) {
    pcVar10 = pcVar9;
    FUN_0004e8cc();
  }
LAB_0006e510:
  if (pcStack_18c == (code *)**(int **)(pcVar23 + 0x43ba0)) {
    return (code *)**(int **)(pcVar23 + 0x43ba0);
  }
  pcVar15 = *(code **)(pcVar23 + 0x43814);
  (*pcVar15)();
  pcStack_1bc = unaff_s5;
  pcStack_1c0 = unaff_s4;
  pcStack_1c4 = pcVar1;
  pcStack_1c8 = pcVar9;
  pcStack_1cc = pcVar11;
  pcStack_1d0 = pcVar18;
  pcStack_1e8 = pcVar15 + 0x4ab28;
  iStack_1d4 = **(int **)(pcVar15 + 0x439ec);
  if (pcVar13 == (code *)0x0) {
    pcVar15 = (code *)0x0;
  }
  else {
    if (*(int *)(pcVar10 + 0x8c) != 0) {
      FUN_0004e860();
    }
    pcVar1 = (code *)auStack_1e0;
    (**(code **)(pcStack_1e8 + -0x7928))(pcVar13,pcVar1);
    unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(pcVar1);
    pcVar18 = pcVar13;
    pcVar9 = param_4;
    pcVar11 = pcVar16;
    if (unaff_s4 != (code *)0x0) {
      unaff_s6 = auStack_1e0;
      pcVar1 = (code *)0x1;
      do {
        iVar19 = *(int *)(unaff_s4 + 0xc);
        unaff_s4 = (code *)(**(code **)(pcStack_1e8 + -0x7924))(unaff_s6);
        pcVar18 = *(code **)(iVar19 + 8);
        while (pcVar18 != (code *)0x0) {
          iVar19 = *(int *)pcVar18;
          pcVar18 = *(code **)(pcVar18 + 8);
          iVar19 = (*param_4)(iVar19,pcVar16);
          if (iVar19 == 1) {
            if (*(int *)(pcVar10 + 0x8c) == 0) {
              pcVar15 = (code *)0x1;
            }
            else {
              FUN_0004e8cc(pcVar10,5);
              pcVar15 = (code *)0x1;
            }
            goto LAB_0006e740;
          }
        }
        pcVar18 = (code *)0x0;
      } while (unaff_s4 != (code *)0x0);
    }
    if (*(int *)(pcVar10 + 0x8c) == 0) {
      pcVar15 = (code *)0x0;
    }
    else {
      FUN_0004e8cc(pcVar10,5);
      pcVar15 = (code *)0x0;
    }
  }
LAB_0006e740:
  if (iStack_1d4 == **(int **)(pcStack_1e8 + -0x713c)) {
    return pcVar15;
  }
  pcVar15 = *(code **)(pcStack_1e8 + -0x74c8);
  pcVar17 = FUN_0006e79c;
  (*pcVar15)();
  pcStack_218 = pcVar15 + 0x4a974;
  iStack_204 = **(int **)(pcVar15 + 0x43838);
  puVar14 = auStack_210;
  pcStack_200 = pcVar18;
  pcStack_1fc = pcVar17;
  (**(code **)(pcVar15 + 0x4304c))();
  pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);
  if (pcVar15 != (code *)0x0) {
    piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);
    while (piVar4 == (int *)0x0) {
      pcVar15 = (code *)(**(code **)(pcStack_218 + -0x7924))(auStack_210);
      if (pcVar15 == (code *)0x0) goto LAB_0006e834;
      piVar4 = *(int **)(*(int *)(pcVar15 + 0xc) + 8);
    }
    pcVar15 = (code *)*piVar4;
  }
LAB_0006e834:
  if (iStack_204 == **(int **)(pcStack_218 + -0x713c)) {
    return pcVar15;
  }
  pcVar15 = *(code **)(pcStack_218 + -0x74c8);
  uVar25 = 0x6e860;
  iVar19 = iStack_204;
  (*pcVar15)();
  iStack_24c = **(int **)(pcVar15 + 0x43774);
  puStack_244 = auStack_210;
  pcStack_240 = pcVar11;
  pcStack_23c = pcVar9;
  pcStack_238 = pcVar1;
  pcStack_234 = unaff_s4;
  pcStack_230 = pcVar10;
  uStack_22c = uVar25;
  (**(code **)(pcVar15 + 0x42914))(&uStack_254);
  puVar2 = *(undefined4 **)(puVar14 + 8);
  iVar3 = -1;
  if (puVar2 == (undefined4 *)0x0) {
    pcVar1 = (code *)0x0;
  }
  else {
    pcVar1 = (code *)0x0;
    do {
      pcVar11 = (code *)*puVar2;
      if ((*(int *)(pcVar11 + 800) + *(int *)(pcVar11 + 0x330) == 0) &&
         (iVar5 = (**(code **)(pcVar15 + 0x429c0))
                            (uStack_254,uStack_250,*(int *)(pcVar11 + 0x188),
                             *(int *)(pcVar11 + 0x18c)), iVar3 < iVar5)) {
        pcVar1 = pcVar11;
        iVar3 = iVar5;
      }
      puVar2 = (undefined4 *)puVar2[2];
    } while (puVar2 != (undefined4 *)0x0);
    if (pcVar1 != (code *)0x0) {
      FUN_0006dd58(puVar14,pcVar1);
      *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) = *(int *)(*(int *)(iVar19 + 0xc78) + 0x18) + -1;
      *(int *)pcVar1 = iVar19;
    }
  }
  if (iStack_24c != **(int **)(pcVar15 + 0x43774)) {
    pcVar15 = *(code **)(pcVar15 + 0x433e8);
    iVar5 = iStack_24c;
    (*pcVar15)();
    piStack_29c = (int *)**(undefined4 **)(pcVar15 + 0x43634);
    iVar24 = *(int *)(iVar5 + 0xc78);
    uStack_298 = 0;
    pcStack_294 = pcVar11;
    pcStack_290 = pcVar1;
    iStack_28c = iVar3;
    puStack_288 = puVar14;
    iStack_284 = iVar19;
    puStack_280 = unaff_s6;
    (**(code **)(pcVar15 + 0x427d4))(&uStack_2b0);
    if (*(int *)(iVar5 + 0x8c) != 0) {
      (**(code **)(pcVar15 + 0x42824))(iVar5,5,2);
    }
    (**(code **)(pcVar15 + 0x42e48))(iVar24,auStack_2a8);
    iVar3 = (**(code **)(pcVar15 + 0x42e4c))(auStack_2a8);
    iVar19 = 0;
    if (iVar3 == 0) {
      pcVar11 = (code *)0x0;
    }
    else {
      pcVar11 = (code *)0x0;
      iVar21 = -1;
      do {
        iVar3 = *(int *)(iVar3 + 0xc);
        puVar2 = *(undefined4 **)(iVar3 + 8);
        if (puVar2 == (undefined4 *)0x0) {
          pcVar1 = *(code **)(pcVar15 + 0x42e4c);
        }
        else {
          do {
            pcVar1 = (code *)*puVar2;
            if ((*(int *)(pcVar1 + 800) + *(int *)(pcVar1 + 0x330) == 0) &&
               (iVar6 = (**(code **)(pcVar15 + 0x42880))
                                  (uStack_2b0,uStack_2ac,*(int *)(pcVar1 + 0x188),
                                   *(int *)(pcVar1 + 0x18c)), iVar21 < iVar6)) {
              iVar21 = iVar6;
              pcVar11 = pcVar1;
              iVar19 = iVar3;
            }
            puVar2 = (undefined4 *)puVar2[2];
          } while (puVar2 != (undefined4 *)0x0);
          pcVar1 = *(code **)(pcVar15 + 0x42e4c);
        }
        iVar3 = (*pcVar1)(auStack_2a8);
      } while (iVar3 != 0);
      if (pcVar11 != (code *)0x0) {
        FUN_0006dd58(iVar19,pcVar11);
        *(int *)(iVar24 + 0x18) = *(int *)(iVar24 + 0x18) + -1;
        *(int *)pcVar11 = iVar5;
      }
    }
    if (*(int *)(iVar5 + 0x8c) != 0) {
      (**(code **)(pcVar15 + 0x4282c))(iVar5,5);
    }
    if (piStack_29c != (int *)**(int **)(pcVar15 + 0x43634)) {
      pcVar11 = *(code **)(pcVar15 + 0x432a8);
      piVar4 = piStack_29c;
      (*pcVar11)();
      iVar19 = *piVar4;
      uVar7 = *(uint *)(*(int *)(iVar19 + 0x84) + 0xb8);
      if ((int)uVar7 < 0) {
        uVar7 = *(int *)(*(int *)(iVar19 + 0x84) + 0xc) << 2;
      }
      if (uVar7 == 0) {
        piVar20 = (int *)0x0;
      }
      else {
        uVar8 = FUN_0006e044(iVar19);
        if (uVar7 < uVar8) {
          (**(code **)(pcVar11 + 0x42608))(iVar19,*(int *)(pcVar11 + 0x425e0) + -0x39a8);
          piVar20 = (int *)FUN_0006e9a0(iVar19);
          if (piVar20 != (int *)0x0) {
            (**(code **)(pcVar11 + 0x42670))(iVar19,piVar20,0);
          }
        }
        else {
          piVar20 = (int *)0x0;
        }
      }
      return (code *)(uint)(piVar20 != piVar4);
    }
    return pcVar11;
  }
  return pcVar1;
}

