
/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */
/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */
/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */

int internal_add_connection
              (MHD_Daemon *daemon,MHD_socket client_socket,sockaddr *addr,socklen_t addrlen,
              _Bool external_add,_Bool non_blck)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  int *piVar6;
  MemoryPool *pMVar7;
  sockaddr *psVar8;
  time_t tVar9;
  MHD_Connection *pMVar10;
  undefined4 *puVar11;
  MHD_FLAG MVar12;
  MHD_Connection *pMVar13;
  MHD_Connection *extraout_v1;
  MHD_thread_ID_ MVar14;
  MHD_Daemon *pMVar15;
  uint uVar16;
  undefined4 uVar17;
  MHD_Daemon *pMVar18;
  MHD_mutex_ *pMVar19;
  MHD_Daemon *unaff_s5;
  MHD_Connection *unaff_s8;
  epoll_event event;
  
  puVar2 = PTR___stack_chk_guard_0003f2ec;
  pMVar19 = (MHD_mutex_ *)(uint)non_blck;
  iVar3 = *(int *)PTR___stack_chk_guard_0003f2ec;
  if ((external_add) && (pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {
    uVar16 = daemon->worker_pool_size;
    if (uVar16 != 0) {
      if (uVar16 == 0) {
        trap(7);
      }
      pMVar15 = pMVar18 + (uint)client_socket % uVar16;
      uVar4 = client_socket + 1;
      if (pMVar15->connection_limit <= pMVar15->connections) {
        do {
          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;
          if (uVar16 == 0) {
            trap(7);
          }
          pMVar15 = pMVar18 + uVar4 % uVar16;
          uVar4 = uVar4 + 1;
        } while (pMVar15->connection_limit <= pMVar15->connections);
      }
      unaff_s5 = (MHD_Daemon *)
                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);
      goto LAB_0001a1e8;
    }
LAB_00019ee8:
    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
    if (iVar5 == 0) goto LAB_0001a1dc;
    iVar5 = *piVar6;
    uVar17 = 0x900;
joined_r0x00019f14:
    if (iVar5 == 9) goto LAB_0001aa44;
LAB_0001a1dc:
    unaff_s5 = (MHD_Daemon *)0x0;
    *piVar6 = 0x17;
    goto LAB_0001a1e8;
  }
  if ((0x3ff < client_socket) &&
     (pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,
     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;
  unaff_s5 = daemon;
  if (daemon->connections == daemon->connection_limit) {
LAB_0001a190:
    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc);
    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
    if (iVar5 == 0) goto LAB_0001a1dc;
    iVar5 = *piVar6;
    uVar17 = 0x93d;
    goto joined_r0x00019f14;
  }
  pMVar18 = daemon->master;
  while (pMVar15 = pMVar18, pMVar15 != (MHD_Daemon *)0x0) {
    unaff_s5 = pMVar15;
    pMVar18 = pMVar15->master;
  }
  if (unaff_s5->per_ip_connection_limit != 0) {
    unaff_s8 = (MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18);
    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;
    iVar5 = MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8);
    if (iVar5 != 0) {
      pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;
      pMVar18 = pMVar15;
      iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();
      if (iVar5 != 0) goto LAB_0001ab68;
      puVar11 = (undefined4 *)
                (*(code *)PTR_tsearch_0003f214)
                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);
      if (puVar11 == (undefined4 *)0x0) {
        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);
        MHD_DLOG(unaff_s5,(char *)pMVar10);
        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();
        if (iVar5 == 0) {
          (*(code *)PTR_free_0003f2f8)(unaff_s8);
          goto LAB_0001a190;
        }
      }
      else {
        pMVar10 = (MHD_Connection *)*puVar11;
        if (unaff_s8 != pMVar10) {
          (*(code *)PTR_free_0003f2f8)(unaff_s8);
        }
        puVar1 = PTR_pthread_mutex_unlock_0003f33c;
        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {
          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);
          iVar5 = (*(code *)puVar1)();
          if (iVar5 == 0) goto LAB_00019f70;
        }
        else {
          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();
          if (iVar5 == 0) goto LAB_0001a190;
        }
      }
      MHD_ip_count_unlock(pMVar15);
LAB_0001a2ec:
      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);
      iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
      if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;
      unaff_s5 = (MHD_Daemon *)0x0;
      *piVar6 = 0x16;
      goto LAB_0001a1e8;
    }
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
  }
LAB_00019f70:
  if ((daemon->apc != (MHD_AcceptPolicyCallback)0x0) &&
     (unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),
     unaff_s5 == (MHD_Daemon *)0x0)) {
    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
    if (iVar5 != 0) {
      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
      uVar17 = 0x950;
      if (*piVar6 == 9) goto LAB_0001aa44;
    }
    MHD_ip_limit_del(daemon,addr,addrlen);
    goto LAB_0001a1e8;
  }
  unaff_s8 = (MHD_Connection *)(*(code *)PTR_calloc_0003f144)(1,0x100);
  if (unaff_s8 == (MHD_Connection *)0x0) {
    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
    pMVar19 = (MHD_mutex_ *)*piVar6;
    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);
    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);
    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
    if ((iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9)) goto LAB_0001aa44;
    unaff_s5 = (MHD_Daemon *)0x0;
    MHD_ip_limit_del(daemon,addr,addrlen);
    *piVar6 = (int)pMVar19;
    goto LAB_0001a1e8;
  }
  pMVar7 = MHD_pool_create(daemon->pool_size);
  unaff_s8->pool = pMVar7;
  puVar1 = PTR_malloc_0003f25c;
  if (pMVar7 == (MemoryPool *)0x0) {
    pMVar19 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();
    uVar17 = (*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock);
    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);
    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
    if ((iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)) goto LAB_0001aa44;
    unaff_s5 = (MHD_Daemon *)0x0;
    MHD_ip_limit_del(daemon,addr,addrlen);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    (pMVar19->__data).__lock = 0xc;
    goto LAB_0001a1e8;
  }
  unaff_s8->connection_timeout = daemon->connection_timeout;
  psVar8 = (sockaddr *)(*(code *)puVar1)(addrlen);
  unaff_s8->addr = psVar8;
  if (psVar8 == (sockaddr *)0x0) {
    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
    pMVar19 = (MHD_mutex_ *)*piVar6;
    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);
    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);
    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
    if ((iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9)) goto LAB_0001aa44;
    unaff_s5 = (MHD_Daemon *)0x0;
    MHD_ip_limit_del(daemon,addr,addrlen);
    MHD_pool_destroy(unaff_s8->pool);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    *piVar6 = (int)pMVar19;
    goto LAB_0001a1e8;
  }
  (*(code *)PTR_memcpy_0003f2f0)(psVar8,addr,addrlen);
  unaff_s8->addr_len = addrlen;
  unaff_s8->socket_fd = client_socket;
  unaff_s8->sk_nonblck = non_blck;
  unaff_s8->daemon = daemon;
  tVar9 = MHD_monotonic_sec_counter();
  MVar12 = daemon->options;
  unaff_s8->last_activity = tVar9;
  if ((MVar12 & MHD_USE_SSL) == MHD_NO_FLAG) {
    MHD_set_http_callbacks_(unaff_s8);
LAB_0001a03c:
    pMVar19 = &daemon->cleanup_connection_mutex;
    iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);
    uVar17 = 0x9e4;
    if (iVar5 != 0) goto LAB_0001ab44;
    if (daemon->connections < daemon->connection_limit) {
      daemon->connections = daemon->connections + 1;
      if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {
        pMVar10 = daemon->normal_timeout_head;
        pMVar13 = daemon->normal_timeout_tail;
        unaff_s8->prevX = (MHD_Connection *)0x0;
        unaff_s8->nextX = pMVar10;
        if (pMVar13 == (MHD_Connection *)0x0) {
          daemon->normal_timeout_tail = unaff_s8;
        }
        else {
          pMVar10->prevX = unaff_s8;
        }
        daemon->normal_timeout_head = unaff_s8;
      }
      pMVar10 = daemon->connections_head;
      pMVar13 = daemon->connections_tail;
      unaff_s8->prev = (MHD_Connection *)0x0;
      unaff_s8->next = pMVar10;
      if (pMVar13 == (MHD_Connection *)0x0) {
        daemon->connections_tail = unaff_s8;
      }
      else {
        pMVar10->prev = unaff_s8;
      }
      puVar1 = PTR_pthread_mutex_unlock_0003f33c;
      daemon->connections_head = unaff_s8;
      iVar5 = (*(code *)puVar1)(pMVar19);
      uVar17 = 0xa01;
      if (iVar5 != 0) goto LAB_0001ab1c;
      if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {
        (*daemon->notify_connection)
                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,
                   MHD_CONNECTION_NOTIFY_STARTED);
      }
      MVar12 = daemon->options;
      if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {
        MVar14 = (daemon->pid).ID;
        (unaff_s8->pid).handle = (daemon->pid).handle;
        (unaff_s8->pid).ID = MVar14;
        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {
LAB_0001a9b8:
          unaff_s5 = (MHD_Daemon *)0x1;
          if (!external_add) goto LAB_0001a1e8;
          iVar5 = (daemon->itc).fd;
          if (iVar5 == -1) goto LAB_0001a1e8;
          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);
          if ((iVar5 < 1) &&
             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {
            unaff_s5 = (MHD_Daemon *)0x1;
            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);
            goto LAB_0001a1e8;
          }
LAB_0001a8dc:
          unaff_s5 = (MHD_Daemon *)0x1;
          goto LAB_0001a1e8;
        }
      }
      else {
        iVar5 = MHD_create_named_thread_
                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,
                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);
        if (iVar5 == 0) {
          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
          unaff_s5 = (MHD_Daemon *)*piVar6;
          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);
          goto LAB_0001a72c;
        }
        MVar12 = daemon->options;
        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {
          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;
          goto LAB_0001a9b8;
        }
      }
      if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {
        pMVar10 = daemon->eready_head;
        pMVar13 = daemon->eready_tail;
        unaff_s8->prevE = (MHD_Connection *)0x0;
        unaff_s8->epoll_state =
             unaff_s8->epoll_state |
             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)
        ;
        unaff_s8->nextE = pMVar10;
        if (pMVar13 != (MHD_Connection *)0x0) {
          pMVar10->prevE = unaff_s8;
          unaff_s5 = (MHD_Daemon *)0x1;
          daemon->eready_head = unaff_s8;
          goto LAB_0001a1e8;
        }
        daemon->eready_tail = unaff_s8;
        unaff_s5 = (MHD_Daemon *)0x1;
        daemon->eready_head = unaff_s8;
        goto LAB_0001a1e8;
      }
      event.events = 0x80000007;
      event.data.fd = (int)unaff_s8;
      iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);
      if (iVar5 == 0) {
        unaff_s5 = (MHD_Daemon *)0x1;
        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;
        goto LAB_0001a1e8;
      }
      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
      unaff_s5 = (MHD_Daemon *)*piVar6;
      uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);
      goto LAB_0001a72c;
    }
  }
  else {
    pMVar19 = (MHD_mutex_ *)0x1;
    unaff_s8->tls_state = MHD_TLS_CONN_INIT;
    MHD_set_https_callbacks(unaff_s8);
    (*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49);
    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache);
    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8);
    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {
      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);
LAB_0001a950:
      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)
                (unaff_s8->tls_session,client_socket,client_socket);
      if (daemon->https_mem_trust != (char *)0x0) {
        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);
      }
      goto LAB_0001a03c;
    }
    if (daemon->cred_type == GNUTLS_CRD_PSK) {
      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);
      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)
                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);
      goto LAB_0001a950;
    }
    MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c);
    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
    if ((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))
    {
      uVar17 = 0x9c3;
      goto LAB_0001aa44;
    }
    MHD_ip_limit_del(daemon,addr,addrlen);
    (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    (**(code **)PTR_mhd_panic_0003f070)
              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,
               PTR_DAT_0003f05c + -0x383c);
  }
  iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar19);
  uVar17 = 0x9ea;
  if (iVar5 != 0) goto LAB_0001ab1c;
  unaff_s5 = (MHD_Daemon *)0x17;
  MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc,0x9ea);
LAB_0001a72c:
  if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {
    (*daemon->notify_connection)
              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,
               MHD_CONNECTION_NOTIFY_CLOSED);
  }
  if (unaff_s8->tls_session != (gnutls_session_t)0x0) {
    (*(code *)PTR_gnutls_deinit_0003f338)();
  }
  iVar5 = (*(code *)PTR_close_0003f158)(client_socket);
  if (iVar5 != 0) {
    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar17 = 0xa56;
    if (*piVar6 == 9) goto LAB_0001aa44;
  }
  MHD_ip_limit_del(daemon,addr,addrlen);
  iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);
  if (iVar5 != 0) goto LAB_0001ab40;
  if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;
  pMVar10 = unaff_s8->nextX;
  if (unaff_s8->prevX == (MHD_Connection *)0x0) {
    daemon->normal_timeout_head = pMVar10;
    pMVar13 = (MHD_Connection *)0x0;
  }
  else {
    unaff_s8->prevX->nextX = pMVar10;
    pMVar10 = unaff_s8->nextX;
    pMVar13 = unaff_s8->prevX;
  }
  if (pMVar10 == (MHD_Connection *)0x0) goto LAB_0001aa64;
  pMVar10->prevX = pMVar13;
  do {
    unaff_s8->nextX = (MHD_Connection *)0x0;
    unaff_s8->prevX = (MHD_Connection *)0x0;
LAB_0001a804:
    pMVar10 = unaff_s8->next;
    if (unaff_s8->prev == (MHD_Connection *)0x0) {
      daemon->connections_head = pMVar10;
      pMVar13 = (MHD_Connection *)0x0;
    }
    else {
      unaff_s8->prev->next = pMVar10;
      pMVar10 = unaff_s8->next;
      pMVar13 = unaff_s8->prev;
    }
    if (pMVar10 == (MHD_Connection *)0x0) {
      daemon->connections_tail = pMVar13;
    }
    else {
      pMVar10->prev = pMVar13;
    }
    puVar1 = PTR_pthread_mutex_unlock_0003f33c;
    unaff_s8->next = (MHD_Connection *)0x0;
    unaff_s8->prev = (MHD_Connection *)0x0;
    iVar5 = (*(code *)puVar1)(pMVar19);
    if (iVar5 == 0) {
      MHD_pool_destroy(unaff_s8->pool);
      (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);
      (*(code *)PTR_free_0003f2f8)(unaff_s8);
      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
      if (unaff_s5 == (MHD_Daemon *)0x0) {
        *puVar11 = 0x16;
      }
      else {
        *puVar11 = unaff_s5;
        unaff_s5 = (MHD_Daemon *)0x0;
      }
LAB_0001a1e8:
      if (iVar3 == *(int *)puVar2) {
        return (int)unaff_s5;
      }
      (*(code *)PTR___stack_chk_fail_0003f2b8)();
    }
    uVar17 = 0xa67;
LAB_0001ab1c:
    (**(code **)PTR_mhd_panic_0003f070)
              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,
               PTR_DAT_0003f05c + -0x51b8);
LAB_0001ab40:
    uVar17 = 0xa5b;
LAB_0001ab44:
    pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;
    (**(code **)PTR_mhd_panic_0003f070)
              (pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0);
LAB_0001ab68:
    MHD_ip_count_lock(pMVar18);
LAB_0001ab78:
    uVar17 = 0x912;
LAB_0001aa44:
    (**(code **)PTR_mhd_panic_0003f070)
              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,
               PTR_DAT_0003f05c + -0x3950);
    pMVar13 = extraout_v1;
LAB_0001aa64:
    daemon->normal_timeout_tail = pMVar13;
  } while( true );
}



int FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  int *piVar4;
  undefined4 *puVar5;
  int extraout_v1;
  int iVar6;
  uint uVar7;
  undefined4 uVar8;
  int iVar9;
  int *piVar10;
  int unaff_s5;
  int *unaff_s8;
  undefined4 local_40 [2];
  int *local_38;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0003f2ec;
  piVar10 = (int *)(uint)param_6;
  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;
  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {
    uVar7 = *(uint *)(param_1 + 0x88);
    if (uVar7 != 0) {
      if (uVar7 == 0) {
        trap(7);
      }
      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;
      uVar3 = param_2 + 1;
      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {
        do {
          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;
          if (uVar7 == 0) {
            trap(7);
          }
          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;
          uVar3 = uVar3 + 1;
        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));
      }
      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);
      goto LAB_0001a1e8;
    }
LAB_00019ee8:
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    if (iVar9 == 0) goto LAB_0001a1dc;
    iVar9 = *piVar4;
    uVar8 = 0x900;
joined_r0x00019f14:
    if (iVar9 == 9) goto LAB_0001aa44;
LAB_0001a1dc:
    unaff_s5 = 0;
    *piVar4 = 0x17;
    goto LAB_0001a1e8;
  }
  if ((0x3ff < (int)param_2) &&
     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))
  goto LAB_0001a2ec;
  unaff_s5 = param_1;
  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {
LAB_0001a190:
    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    if (iVar9 == 0) goto LAB_0001a1dc;
    iVar9 = *piVar4;
    uVar8 = 0x93d;
    goto joined_r0x00019f14;
  }
  iVar9 = *(int *)(param_1 + 0x70);
  while (iVar6 = iVar9, iVar6 != 0) {
    unaff_s5 = iVar6;
    iVar9 = *(int *)(iVar6 + 0x70);
  }
  if (*(int *)(unaff_s5 + 0xf4) != 0) {
    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);
    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;
    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);
    if (iVar9 != 0) {
      iVar9 = unaff_s5 + 0x94;
      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);
      if (iVar6 != 0) goto LAB_0001ab68;
      puVar5 = (undefined4 *)
               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);
      if (puVar5 == (undefined4 *)0x0) {
        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);
        FUN_00020df0(unaff_s5,piVar4);
        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);
        if (iVar9 == 0) {
          (*(code *)PTR_free_0003f2f8)(unaff_s8);
          goto LAB_0001a190;
        }
      }
      else {
        piVar4 = (int *)*puVar5;
        if (unaff_s8 != piVar4) {
          (*(code *)PTR_free_0003f2f8)(unaff_s8);
        }
        puVar1 = PTR_pthread_mutex_unlock_0003f33c;
        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {
          piVar4[5] = piVar4[5] + 1;
          iVar9 = (*(code *)puVar1)(iVar9);
          if (iVar9 == 0) goto LAB_00019f70;
        }
        else {
          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);
          if (iVar9 == 0) goto LAB_0001a190;
        }
      }
      FUN_00019c08();
LAB_0001a2ec:
      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);
      iVar9 = (*(code *)PTR_close_0003f158)(param_2);
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;
      unaff_s5 = 0;
      *piVar4 = 0x16;
      goto LAB_0001a1e8;
    }
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
  }
LAB_00019f70:
  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&
     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),
     unaff_s5 == 0)) {
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if (iVar9 != 0) {
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      uVar8 = 0x950;
      if (*piVar4 == 9) goto LAB_0001aa44;
    }
    FUN_00019c48(param_1,param_3,param_4);
    goto LAB_0001a1e8;
  }
  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);
  if (unaff_s8 == (int *)0x0) {
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    piVar10 = (int *)*piVar4;
    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);
    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;
    unaff_s5 = 0;
    FUN_00019c48(param_1,param_3,param_4);
    *piVar4 = (int)piVar10;
    goto LAB_0001a1e8;
  }
  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));
  unaff_s8[10] = iVar9;
  puVar1 = PTR_malloc_0003f25c;
  if (iVar9 == 0) {
    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);
    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;
    unaff_s5 = 0;
    FUN_00019c48(param_1,param_3,param_4);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    *piVar10 = 0xc;
    goto LAB_0001a1e8;
  }
  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);
  iVar9 = (*(code *)puVar1)(param_4);
  unaff_s8[0x15] = iVar9;
  if (iVar9 == 0) {
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    piVar10 = (int *)*piVar4;
    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);
    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;
    unaff_s5 = 0;
    FUN_00019c48(param_1,param_3,param_4);
    FUN_00021358(unaff_s8[10]);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    *piVar4 = (int)piVar10;
    goto LAB_0001a1e8;
  }
  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);
  unaff_s8[0x24] = param_4;
  unaff_s8[0x29] = param_2;
  *(byte *)(unaff_s8 + 0x2a) = param_6;
  unaff_s8[6] = param_1;
  iVar9 = FUN_0002186c();
  uVar7 = *(uint *)(param_1 + 0xf8);
  unaff_s8[0x25] = iVar9;
  if ((uVar7 & 2) == 0) {
    FUN_00015248(unaff_s8);
LAB_0001a03c:
    piVar10 = (int *)(param_1 + 0xac);
    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);
    uVar8 = 0x9e4;
    if (iVar9 != 0) goto LAB_0001ab44;
    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {
      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;
      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {
        iVar9 = *(int *)(param_1 + 0x30);
        iVar6 = *(int *)(param_1 + 0x34);
        unaff_s8[5] = 0;
        unaff_s8[4] = iVar9;
        if (iVar6 == 0) {
          *(int **)(param_1 + 0x34) = unaff_s8;
        }
        else {
          *(int **)(iVar9 + 0x14) = unaff_s8;
        }
        *(int **)(param_1 + 0x30) = unaff_s8;
      }
      iVar9 = *(int *)(param_1 + 8);
      iVar6 = *(int *)(param_1 + 0xc);
      unaff_s8[3] = 0;
      unaff_s8[2] = iVar9;
      if (iVar6 == 0) {
        *(int **)(param_1 + 0xc) = unaff_s8;
      }
      else {
        *(int **)(iVar9 + 0xc) = unaff_s8;
      }
      puVar1 = PTR_pthread_mutex_unlock_0003f33c;
      *(int **)(param_1 + 8) = unaff_s8;
      iVar9 = (*(code *)puVar1)(piVar10);
      uVar8 = 0xa01;
      if (iVar9 != 0) goto LAB_0001ab1c;
      if (*(code **)(param_1 + 0x50) != (code *)0x0) {
        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);
      }
      uVar7 = *(uint *)(param_1 + 0xf8);
      if ((uVar7 & 4) == 0) {
        iVar9 = *(int *)(param_1 + 0x90);
        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);
        unaff_s8[0x17] = iVar9;
        if ((uVar7 & 0x200) == 0) {
LAB_0001a9b8:
          unaff_s5 = 1;
          if (param_5 == '\0') goto LAB_0001a1e8;
          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;
          iVar9 = (*(code *)PTR_write_0003f220)
                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);
          if ((iVar9 < 1) &&
             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {
            unaff_s5 = 1;
            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);
            goto LAB_0001a1e8;
          }
LAB_0001a8dc:
          unaff_s5 = 1;
          goto LAB_0001a1e8;
        }
      }
      else {
        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,
                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);
        if (iVar9 == 0) {
          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
          unaff_s5 = *piVar4;
          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);
          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);
          goto LAB_0001a72c;
        }
        uVar7 = *(uint *)(param_1 + 0xf8);
        if ((uVar7 & 0x200) == 0) {
          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;
          goto LAB_0001a9b8;
        }
      }
      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {
        iVar9 = *(int *)(param_1 + 0x20);
        iVar6 = *(int *)(param_1 + 0x24);
        unaff_s8[1] = 0;
        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;
        *unaff_s8 = iVar9;
        if (iVar6 != 0) {
          *(int **)(iVar9 + 4) = unaff_s8;
          unaff_s5 = 1;
          *(int **)(param_1 + 0x20) = unaff_s8;
          goto LAB_0001a1e8;
        }
        *(int **)(param_1 + 0x24) = unaff_s8;
        unaff_s5 = 1;
        *(int **)(param_1 + 0x20) = unaff_s8;
        goto LAB_0001a1e8;
      }
      local_40[0] = 0x80000007;
      local_38 = unaff_s8;
      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);
      if (iVar9 == 0) {
        unaff_s5 = 1;
        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;
        goto LAB_0001a1e8;
      }
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      unaff_s5 = *piVar4;
      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);
      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);
      goto LAB_0001a72c;
    }
  }
  else {
    piVar10 = (int *)0x1;
    unaff_s8[0x3c] = 1;
    FUN_00029db0(unaff_s8);
    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);
    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));
    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);
    if (*(int *)(param_1 + 0x110) == 1) {
      (*(code *)PTR_gnutls_credentials_set_0003f1d8)
                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));
LAB_0001a950:
      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);
      if (*(int *)(param_1 + 0x138) != 0) {
        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);
      }
      goto LAB_0001a03c;
    }
    if (*(int *)(param_1 + 0x110) == 4) {
      (*(code *)PTR_gnutls_credentials_set_0003f1d8)
                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));
      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)
                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);
      goto LAB_0001a950;
    }
    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))
    {
      uVar8 = 0x9c3;
      goto LAB_0001aa44;
    }
    FUN_00019c48(param_1,param_3,param_4);
    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,
               PTR_DAT_0003f05c + -0x383c);
  }
  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);
  uVar8 = 0x9ea;
  if (iVar9 != 0) goto LAB_0001ab1c;
  unaff_s5 = 0x17;
  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);
LAB_0001a72c:
  if (*(code **)(param_1 + 0x50) != (code *)0x0) {
    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);
  }
  if (unaff_s8[0x39] != 0) {
    (*(code *)PTR_gnutls_deinit_0003f338)();
  }
  iVar9 = (*(code *)PTR_close_0003f158)(param_2);
  if (iVar9 != 0) {
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar8 = 0xa56;
    if (*piVar4 == 9) goto LAB_0001aa44;
  }
  FUN_00019c48(param_1,param_3,param_4);
  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);
  if (iVar9 != 0) goto LAB_0001ab40;
  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;
  iVar9 = unaff_s8[4];
  if (unaff_s8[5] == 0) {
    *(int *)(param_1 + 0x30) = iVar9;
    iVar6 = 0;
  }
  else {
    *(int *)(unaff_s8[5] + 0x10) = iVar9;
    iVar9 = unaff_s8[4];
    iVar6 = unaff_s8[5];
  }
  if (iVar9 == 0) goto LAB_0001aa64;
  *(int *)(iVar9 + 0x14) = iVar6;
  do {
    unaff_s8[4] = 0;
    unaff_s8[5] = 0;
LAB_0001a804:
    iVar9 = unaff_s8[2];
    if (unaff_s8[3] == 0) {
      *(int *)(param_1 + 8) = iVar9;
      iVar6 = 0;
    }
    else {
      *(int *)(unaff_s8[3] + 8) = iVar9;
      iVar9 = unaff_s8[2];
      iVar6 = unaff_s8[3];
    }
    if (iVar9 == 0) {
      *(int *)(param_1 + 0xc) = iVar6;
    }
    else {
      *(int *)(iVar9 + 0xc) = iVar6;
    }
    puVar1 = PTR_pthread_mutex_unlock_0003f33c;
    unaff_s8[2] = 0;
    unaff_s8[3] = 0;
    iVar9 = (*(code *)puVar1)(piVar10);
    if (iVar9 == 0) {
      FUN_00021358(unaff_s8[10]);
      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);
      (*(code *)PTR_free_0003f2f8)(unaff_s8);
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      if (unaff_s5 == 0) {
        *piVar4 = 0x16;
      }
      else {
        *piVar4 = unaff_s5;
        unaff_s5 = 0;
      }
LAB_0001a1e8:
      if (local_2c == *(int *)puVar2) {
        return unaff_s5;
      }
      (*(code *)PTR___stack_chk_fail_0003f2b8)();
    }
    uVar8 = 0xa67;
LAB_0001ab1c:
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,
               PTR_DAT_0003f05c + -0x51b8);
LAB_0001ab40:
    uVar8 = 0xa5b;
LAB_0001ab44:
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,
               PTR_DAT_0003f05c + -0x51e0);
LAB_0001ab68:
    FUN_00019bc8();
LAB_0001ab78:
    uVar8 = 0x912;
LAB_0001aa44:
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,
               PTR_DAT_0003f05c + -0x3950);
    iVar6 = extraout_v1;
LAB_0001aa64:
    *(int *)(param_1 + 0x34) = iVar6;
  } while( true );
}


lui gp,0x3
addiu gp,gp,-0x2dd4
addu gp,gp,t9
addiu sp,sp,-0x68
sw s1,0x44(sp)
sw s7,0x5c(sp)
sw s6,0x58(sp)
or s6,a0,zero
sw s4,0x50(sp)
sw s3,0x4c(sp)
or s3,a2,zero
sw s2,0x48(sp)
or s2,a3,zero
sw s0,0x40(sp)
or s0,a1,zero
sw gp,0x18(sp)
sw ra,0x64(sp)
sw s8,0x60(sp)
sw s5,0x54(sp)
lw s1,-0x7d44(gp)
lbu s7,0x7b(sp)
lbu s4,0x7f(sp)
lw v0,0x0(s1)
sw v0,0x3c(sp)
beq s7,zero,0x00019f24
_slti v0,s0,0x400
lw a3,0x74(a0)
beq a3,zero,0x00019f24
_nop
lw a1,0x88(a0)
beq a1,zero,0x00019ee8
_li v0,0x174
teq a1,zero
divu s0,a1
mfhi a0
mul v1,a0,v0
addu a0,v1,a3
lw v0,0xe8(a0)
lw v1,0xec(a0)
sltu v0,v0,v1
bne v0,zero,0x0001a34c
_addiu v0,s0,0x1
addu t0,s0,a1
b 0x00019ee0
_li t1,0x174
teq a1,zero
divu v0,a1
mfhi a0
mul v1,a0,t1
addu a0,v1,a3
lw v1,0xe8(a0)
lw a2,0xec(a0)
sltu v1,v1,a2
bne v1,zero,0x0001a34c
_addiu v0,v0,0x1
bne t0,v0,0x00019eb8
_nop
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_or s0,v0,zero
beq s0,zero,0x0001a1dc
_lw gp,0x18(sp)
lw a0,0x0(v0)
li v1,0x9
bne a0,v1,0x0001a1dc
_li a2,0x900
b 0x0001aa44
_lw v0,-0x7fc8(gp)
bne v0,zero,0x00019f3c
_nop
lw v0,0xf8(s6)
andi v0,v0,0x240
beq v0,zero,0x0001a2ec
_lw a1,-0x7fd4(gp)
lw v1,0xe8(s6)
lw v0,0xec(s6)
beq v1,v0,0x0001a190
_or s5,s6,zero
b 0x00019f5c
_lw v0,0x70(s5)
or s5,v0,zero
lw v0,0x70(s5)
bne v0,zero,0x00019f54
_nop
lw v0,0xf4(s5)
bne v0,zero,0x0001a228
_lw t9,-0x7dd4(gp)
lw t9,0x40(s6)
beq t9,zero,0x00019f94
_or a2,s2,zero
lw a0,0x44(s6)
jalr t9
_or a1,s3,zero
lw gp,0x18(sp)
beq v0,zero,0x0001a44c
_or s5,v0,zero
lw t9,-0x7eec(gp)
li a1,0x100
jalr t9
_li a0,0x1
lw gp,0x18(sp)
beq v0,zero,0x0001a4b4
_or s8,v0,zero
lw t9,-0x7fa8(gp)
bal 0x00021248
_lw a0,0x7c(s6)
lw gp,0x18(sp)
beq v0,zero,0x0001a544
_sw v0,0x28(s8)
lw v0,0xf0(s6)
or a0,s2,zero
lw t9,-0x7dd4(gp)
jalr t9
_sw v0,0x98(s8)
lw gp,0x18(sp)
beq v0,zero,0x0001a39c
_sw v0,0x54(s8)
lw t9,-0x7d40(gp)
or a2,s2,zero
or a1,s3,zero
jalr t9
_or a0,v0,zero
lw gp,0x18(sp)
sw s2,0x90(s8)
sw s0,0xa4(s8)
sb s4,0xa8(s8)
lw t9,-0x7fcc(gp)
bal 0x0002186c
_sw s6,0x18(s8)
lw v1,0xf8(s6)
lw gp,0x18(sp)
andi v1,v1,0x2
bne v1,zero,0x0001a5e4
_sw v0,0x94(s8)
lw t9,-0x7fa4(gp)
bal 0x00015248
_or a0,s8,zero
lw gp,0x18(sp)
lw t9,-0x7d88(gp)
addiu s4,s6,0xac
jalr t9
_or a0,s4,zero
li a2,0x9e4
bne v0,zero,0x0001ab44
_lw gp,0x18(sp)
lw v1,0xe8(s6)
lw v0,0xec(s6)
sltu v0,v1,v0
beq v0,zero,0x0001a6f8
_addiu v1,v1,0x1
lw v0,0xf8(s6)
andi v0,v0,0x4
bne v0,zero,0x0001a098
_sw v1,0xe8(s6)
lw v0,0x30(s6)
lw v1,0x34(s6)
sw zero,0x14(s8)
beq v1,zero,0x0001aa34
_sw v0,0x10(s8)
sw s8,0x14(v0)
sw s8,0x30(s6)
lw v0,0x8(s6)
lw v1,0xc(s6)
sw zero,0xc(s8)
beq v1,zero,0x0001a930
_sw v0,0x8(s8)
sw s8,0xc(v0)
lw t9,-0x7cf4(gp)
or a0,s4,zero
jalr t9
_sw s8,0x8(s6)
li a2,0xa01
bne v0,zero,0x0001ab1c
_lw gp,0x18(sp)
lw t9,0x50(s6)
beq t9,zero,0x0001a0ec
_or a3,zero,zero
lw a0,0x54(s6)
addiu a2,s8,0x30
jalr t9
_or a1,s8,zero
lw gp,0x18(sp)
lw v0,0xf8(s6)
andi v1,v0,0x4
bne v1,zero,0x0001a894
_andi v1,v0,0x200
lw a1,0x8c(s6)
lw a0,0x90(s6)
sw a1,0x58(s8)
beq v1,zero,0x0001a9b8
_sw a0,0x5c(s8)
andi v0,v0,0x1000
beq v0,zero,0x0001a8e4
_lui v0,0x8000
bne s7,zero,0x0001a8e8
_lw t9,-0x7db8(gp)
lw v0,0xb0(s8)
lw v1,0x20(s6)
lw a0,0x24(s6)
ori v0,v0,0x7
sw zero,0x4(s8)
sw v0,0xb0(s8)
beq a0,zero,0x0001aafc
_sw v1,0x0(s8)
sw s8,0x4(v1)
li s5,0x1
b 0x0001a1e8
_sw s8,0x20(s6)
lw a1,-0x7fd4(gp)
or a0,s5,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x3904
lw gp,0x18(sp)
lw t9,-0x7cf4(gp)
jalr t9
_lw a0,0x20(sp)
bne v0,zero,0x0001a2dc
_lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
or a0,s6,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x38dc
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_or s0,v0,zero
beq s0,zero,0x0001a1dc
_lw gp,0x18(sp)
lw a0,0x0(v0)
li v1,0x9
beq a0,v1,0x0001aa40
_li a2,0x93d
li v1,0x17
or s5,zero,zero
sw v1,0x0(v0)
lw a0,0x3c(sp)
or v0,s5,zero
lw v1,0x0(s1)
bne a0,v1,0x0001ab0c
_lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
jalr t9
_li a0,0x18
lw gp,0x18(sp)
beq v0,zero,0x0001a190
_or s8,v0,zero
lw t9,-0x7fac(gp)
or a2,v0,zero
or a1,s2,zero
addiu t9,t9,-0x6694
bal 0x0001996c
_or a0,s3,zero
beq v0,zero,0x0001a4a0
_lw gp,0x18(sp)
lw t9,-0x7d88(gp)
addiu v0,s5,0x94
sw v0,0x20(sp)
jalr t9
_or a0,v0,zero
bne v0,zero,0x0001ab68
_lw gp,0x18(sp)
lw a2,-0x7fac(gp)
addiu a1,s5,0x78
lw t9,-0x7e1c(gp)
or a0,s8,zero
jalr t9
_addiu a2,a2,-0x7054
beq v0,zero,0x0001a154
_lw gp,0x18(sp)
lw a1,0x0(v0)
beq s8,a1,0x0001a2b8
_lw t9,-0x7d38(gp)
or a0,s8,zero
jalr t9
_sw a1,0x24(sp)
lw gp,0x18(sp)
lw a1,0x24(sp)
lw v1,0x14(a1)
lw v0,0xf4(s5)
sltu v0,v1,v0
bne v0,zero,0x0001a37c
_lw t9,-0x7cf4(gp)
jalr t9
_lw a0,0x20(sp)
beq v0,zero,0x0001a190
_lw gp,0x18(sp)
lw t9,-0x7fac(gp)
addiu t9,t9,-0x63f8
bal 0x00019c08
_nop
li a3,0x400
lw t9,-0x7fc4(gp)
or a2,s0,zero
or a0,s6,zero
bal 0x00020df0
_addiu a1,a1,-0x3938
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_or s0,v0,zero
beq s0,zero,0x0001a33c
_lw gp,0x18(sp)
lw a0,0x0(v0)
li v1,0x9
beq a0,v1,0x0001ab78
_nop
li v1,0x16
or s5,zero,zero
b 0x0001a1e8
_sw v1,0x0(v0)
lw t9,-0x7fac(gp)
li v0,0x1
sw s4,0x14(sp)
or a3,s2,zero
sw v0,0x10(sp)
or a2,s3,zero
addiu t9,t9,-0x61fc
bal 0x00019e04
_or a1,s0,zero
lw gp,0x18(sp)
b 0x0001a1e8
_or s5,v0,zero
addiu v1,v1,0x1
lw a0,0x20(sp)
jalr t9
_sw v1,0x14(a1)
beq v0,zero,0x00019f70
_lw gp,0x18(sp)
b 0x0001a2e0
_lw t9,-0x7fac(gp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s7,v0,zero
lw s4,0x0(v0)
lw t9,-0x7ddc(gp)
jalr t9
_or a0,s4,zero
or a0,s6,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x389c
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x0001a404
_lw gp,0x18(sp)
lw v1,0x0(s7)
li v0,0x9
beq v1,v0,0x0001aa40
_li a2,0x985
lw t9,-0x7fac(gp)
or a2,s2,zero
or a1,s3,zero
or a0,s6,zero
addiu t9,t9,-0x63b8
bal 0x00019c48
_or s5,zero,zero
lw gp,0x18(sp)
lw t9,-0x7fa0(gp)
bal 0x00021358
_lw a0,0x28(s8)
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
b 0x0001a1e8
_sw s4,0x0(s7)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x0001a480
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x9
lw v0,0x0(v0)
li a2,0x950
beq v0,v1,0x0001aa40
_lw gp,0x18(sp)
lw t9,-0x7fac(gp)
or a2,s2,zero
or a1,s3,zero
addiu t9,t9,-0x63b8
bal 0x00019c48
_or a0,s6,zero
b 0x0001a1e8
_lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_or a0,s8,zero
b 0x00019f70
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s7,v0,zero
lw s4,0x0(v0)
lw t9,-0x7ddc(gp)
jalr t9
_or a0,s4,zero
or a0,s6,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x389c
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x0001a51c
_lw gp,0x18(sp)
lw v1,0x0(s7)
li v0,0x9
beq v1,v0,0x0001aa40
_li a2,0x962
lw t9,-0x7fac(gp)
or a2,s2,zero
or a1,s3,zero
or a0,s6,zero
addiu t9,t9,-0x63b8
bal 0x00019c48
_or s5,zero,zero
lw gp,0x18(sp)
b 0x0001a1e8
_sw s4,0x0(s7)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s4,v0,zero
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s6,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x389c
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x0001a5a8
_lw gp,0x18(sp)
lw v1,0x0(s4)
li v0,0x9
beq v1,v0,0x0001aa40
_li a2,0x971
lw t9,-0x7fac(gp)
or a0,s6,zero
or a2,s2,zero
or a1,s3,zero
addiu t9,t9,-0x63b8
bal 0x00019c48
_or s5,zero,zero
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_or a0,s8,zero
li v0,0xc
lw gp,0x18(sp)
b 0x0001a1e8
_sw v0,0x0(s4)
lw t9,-0x7f9c(gp)
li s4,0x1
or a0,s8,zero
bal 0x00029db0
_sw s4,0xf0(s8)
li a1,0x49
lw gp,0x18(sp)
lw t9,-0x7e18(gp)
jalr t9
_addiu a0,s8,0xe4
lw gp,0x18(sp)
lw a1,0x10c(s6)
lw t9,-0x7e80(gp)
jalr t9
_lw a0,0xe4(s8)
or a1,s8,zero
lw gp,0x18(sp)
lw t9,-0x7dd8(gp)
jalr t9
_lw a0,0xe4(s8)
lw a2,0x110(s6)
beq a2,s4,0x0001a938
_lw gp,0x18(sp)
li v0,0x4
beq a2,v0,0x0001a988
_lw t9,-0x7e58(gp)
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
lw a0,0x18(s8)
bal 0x00020df0
_addiu a1,a1,-0x387c
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x0001a694
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x9
lw v0,0x0(v0)
beq v0,v1,0x0001aa3c
_lw gp,0x18(sp)
lw t9,-0x7fac(gp)
or a2,s2,zero
or a1,s3,zero
addiu t9,t9,-0x63b8
bal 0x00019c48
_or a0,s6,zero
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_lw a0,0x54(s8)
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_or a0,s8,zero
li a2,0x9c9
lw gp,0x18(sp)
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x383c
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
lw t9,-0x7cf4(gp)
jalr t9
_or a0,s4,zero
li a2,0x9ea
bne v0,zero,0x0001ab1c
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
or a0,s6,zero
lw t9,-0x7fc4(gp)
li s5,0x17
bal 0x00020df0
_addiu a1,a1,-0x38dc
lw gp,0x18(sp)
lw t9,0x50(s6)
beq t9,zero,0x0001a74c
_li a3,0x1
lw a0,0x54(s6)
addiu a2,s8,0x30
jalr t9
_or a1,s8,zero
lw gp,0x18(sp)
lw a0,0xe4(s8)
beq a0,zero,0x0001a764
_lw t9,-0x7cf8(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x0001a798
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0x9
lw v0,0x0(v0)
li a2,0xa56
beq v0,v1,0x0001aa40
_lw gp,0x18(sp)
lw t9,-0x7fac(gp)
or a0,s6,zero
or a2,s2,zero
addiu t9,t9,-0x63b8
bal 0x00019c48
_or a1,s3,zero
lw gp,0x18(sp)
lw t9,-0x7d88(gp)
jalr t9
_or a0,s4,zero
bne v0,zero,0x0001ab40
_lw gp,0x18(sp)
lw v0,0xf8(s6)
andi v0,v0,0x4
bne v0,zero,0x0001a804
_nop
lw v1,0x14(s8)
beq v1,zero,0x0001aa6c
_lw v0,0x10(s8)
sw v0,0x10(v1)
lw v0,0x10(s8)
lw v1,0x14(s8)
beq v0,zero,0x0001aa64
_nop
sw v1,0x14(v0)
sw zero,0x10(s8)
sw zero,0x14(s8)
lw v1,0xc(s8)
beq v1,zero,0x0001aa2c
_lw v0,0x8(s8)
sw v0,0x8(v1)
lw v0,0x8(s8)
lw v1,0xc(s8)
beq v0,zero,0x0001aa24
_nop
sw v1,0xc(v0)
lw t9,-0x7cf4(gp)
or a0,s4,zero
sw zero,0x8(s8)
jalr t9
_sw zero,0xc(s8)
bne v0,zero,0x0001ab18
_lw gp,0x18(sp)
lw t9,-0x7fa0(gp)
bal 0x00021358
_lw a0,0x28(s8)
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_lw a0,0x54(s8)
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
beq s5,zero,0x0001a924
_lw gp,0x18(sp)
sw s5,0x0(v0)
b 0x0001a1e8
_or s5,zero,zero
lw a3,-0x7fac(gp)
addiu a0,s8,0x58
lw a1,-0x7fd4(gp)
lw t9,-0x7f98(gp)
lw a2,0x84(s6)
addiu a3,a3,-0x445c
addiu a1,a1,-0x3824
bal 0x00023bd4
_sw s8,0x10(sp)
beq v0,zero,0x0001aab8
_lw gp,0x18(sp)
lw v0,0xf8(s6)
andi v1,v0,0x200
bne v1,zero,0x0001a110
_nop
andi v0,v0,0x4
beq v0,zero,0x0001a9b8
_nop
b 0x0001a1e8
_li s5,0x1
lw t9,-0x7db8(gp)
lw a0,0xcc(s6)
addiu a3,sp,0x28
addiu v0,v0,0x7
sw s8,0x30(sp)
li a1,0x1
or a2,s0,zero
jalr t9
_sw v0,0x28(sp)
bne v0,zero,0x0001aa74
_lw gp,0x18(sp)
lw v0,0xb0(s8)
li s5,0x1
ori v0,v0,0x8
b 0x0001a1e8
_sw v0,0xb0(s8)
li v1,0x16
b 0x0001a1e8
_sw v1,0x0(v0)
b 0x0001a0b0
_sw s8,0xc(s6)
lw t9,-0x7e58(gp)
li a1,0x1
lw a2,0x114(s6)
jalr t9
_lw a0,0xe4(s8)
lw gp,0x18(sp)
lw t9,-0x7e44(gp)
or a2,s0,zero
lw a0,0xe4(s8)
jalr t9
_or a1,s0,zero
lw v0,0x138(s6)
beq v0,zero,0x0001a03c
_lw gp,0x18(sp)
lw t9,-0x7dbc(gp)
li a1,0x1
jalr t9
_lw a0,0xe4(s8)
b 0x0001a03c
_lw gp,0x18(sp)
li a1,0x4
lw a2,0x11c(s6)
jalr t9
_lw a0,0xe4(s8)
lw gp,0x18(sp)
lw a0,0x11c(s6)
lw a1,-0x7fac(gp)
lw t9,-0x7df8(gp)
jalr t9
_addiu a1,a1,-0x703c
b 0x0001a950
_lw gp,0x18(sp)
beq s7,zero,0x0001a1e8
_li s5,0x1
lw a0,0xdc(s6)
li v0,-0x1
beq a0,v0,0x0001a1e8
_lw a1,-0x7fd4(gp)
li a2,0x8
lw t9,-0x7e10(gp)
jalr t9
_addiu a1,a1,-0x28d8
bgtz v0,0x0001a8dc
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li v1,0xb
lw v0,0x0(v0)
beq v0,v1,0x0001a8dc
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
or a0,s6,zero
lw t9,-0x7fc4(gp)
li s5,0x1
bal 0x00020df0
_addiu a1,a1,-0x37f4
b 0x0001a1e8
_lw gp,0x18(sp)
b 0x0001a828
_sw v1,0xc(s6)
b 0x0001a81c
_sw v0,0x8(s6)
b 0x0001a094
_sw s8,0x34(s6)
li a2,0x9c3
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x3950
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
b 0x0001a7fc
_sw v1,0x34(s6)
b 0x0001a7f0
_sw v0,0x30(s6)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw s5,0x0(v0)
lw t9,-0x7ddc(gp)
jalr t9
_or a0,s5,zero
or a0,s6,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x4da8
b 0x0001a72c
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw s5,0x0(v0)
lw t9,-0x7ddc(gp)
jalr t9
_or a0,s5,zero
or a0,s6,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x3814
b 0x0001a72c
_lw gp,0x18(sp)
sw s8,0x24(s6)
li s5,0x1
b 0x0001a1e8
_sw s8,0x20(s6)
lw t9,-0x7d78(gp)
jalr t9
_nop
li a2,0xa67
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x51b8
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
li a2,0xa5b
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x51e0
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
lw t9,-0x7fac(gp)
addiu t9,t9,-0x6438
bal 0x00019bc8
_nop
b 0x0001aa40
_li a2,0x912
(translation_unit "int FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int extraout_v1;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int *piVar10;\n  int unaff_s5;\n  int *unaff_s8;\n  undefined4 local_40 [2];\n  int *local_38;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  piVar10 = (int *)(uint)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = param_1;\n  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  iVar9 = *(int *)(param_1 + 0x70);\n  while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));\n  unaff_s8[10] = iVar9;\n  puVar1 = PTR_malloc_0003f25c;\n  if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);\n  iVar9 = (*(code *)puVar1)(param_4);\n  unaff_s8[0x15] = iVar9;\n  if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);\n  unaff_s8[0x24] = param_4;\n  unaff_s8[0x29] = param_2;\n  *(byte *)(unaff_s8 + 0x2a) = param_6;\n  unaff_s8[6] = param_1;\n  iVar9 = FUN_0002186c();\n  uVar7 = *(uint *)(param_1 + 0xf8);\n  unaff_s8[0x25] = iVar9;\n  if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);\n  uVar8 = 0x9ea;\n  if (iVar9 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n  if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }\n  FUN_00019c48(param_1,param_3,param_4);\n  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n  if (iVar9 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar9 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar9 == 0) goto LAB_0001aa64;\n  *(int *)(iVar9 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );\n}\n\n" (function_definition "int FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int extraout_v1;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int *piVar10;\n  int unaff_s5;\n  int *unaff_s8;\n  undefined4 local_40 [2];\n  int *local_38;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  piVar10 = (int *)(uint)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = param_1;\n  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  iVar9 = *(int *)(param_1 + 0x70);\n  while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));\n  unaff_s8[10] = iVar9;\n  puVar1 = PTR_malloc_0003f25c;\n  if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);\n  iVar9 = (*(code *)puVar1)(param_4);\n  unaff_s8[0x15] = iVar9;\n  if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);\n  unaff_s8[0x24] = param_4;\n  unaff_s8[0x29] = param_2;\n  *(byte *)(unaff_s8 + 0x2a) = param_6;\n  unaff_s8[6] = param_1;\n  iVar9 = FUN_0002186c();\n  uVar7 = *(uint *)(param_1 + 0xf8);\n  unaff_s8[0x25] = iVar9;\n  if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);\n  uVar8 = 0x9ea;\n  if (iVar9 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n  if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }\n  FUN_00019c48(param_1,param_3,param_4);\n  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n  if (iVar9 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar9 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar9 == 0) goto LAB_0001aa64;\n  *(int *)(iVar9 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)" identifier (parameter_list "(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "char param_5" primitive_type identifier) , (parameter_declaration "byte param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int extraout_v1;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int *piVar10;\n  int unaff_s5;\n  int *unaff_s8;\n  undefined4 local_40 [2];\n  int *local_38;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  piVar10 = (int *)(uint)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = param_1;\n  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  iVar9 = *(int *)(param_1 + 0x70);\n  while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));\n  unaff_s8[10] = iVar9;\n  puVar1 = PTR_malloc_0003f25c;\n  if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);\n  iVar9 = (*(code *)puVar1)(param_4);\n  unaff_s8[0x15] = iVar9;\n  if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);\n  unaff_s8[0x24] = param_4;\n  unaff_s8[0x29] = param_2;\n  *(byte *)(unaff_s8 + 0x2a) = param_6;\n  unaff_s8[6] = param_1;\n  iVar9 = FUN_0002186c();\n  uVar7 = *(uint *)(param_1 + 0xf8);\n  unaff_s8[0x25] = iVar9;\n  if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);\n  uVar8 = 0x9ea;\n  if (iVar9 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n  if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }\n  FUN_00019c48(param_1,param_3,param_4);\n  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n  if (iVar9 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar9 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar9 == 0) goto LAB_0001aa64;\n  *(int *)(iVar9 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 local_40 [2];" type_identifier (array_declarator "local_40 [2]" identifier [ number_literal ]) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0003f2ec" identifier = identifier) ;) (expression_statement "piVar10 = (int *)(uint)param_6;" (assignment_expression "piVar10 = (int *)(uint)param_6" identifier = (cast_expression "(int *)(uint)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003f2ec" * (cast_expression "(int *)PTR___stack_chk_guard_0003f2ec" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0))" ( (binary_expression "(param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)" (parenthesized_expression "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)" ( (comma_expression "iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0" (assignment_expression "iVar9 = *(int *)(param_1 + 0x74)" identifier = (pointer_expression "*(int *)(param_1 + 0x74)" * (cast_expression "(int *)(param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "uVar7 = *(uint *)(param_1 + 0x88);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x88)" identifier = (pointer_expression "*(uint *)(param_1 + 0x88)" * (cast_expression "(uint *)(param_1 + 0x88)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }" { (if_statement "if (uVar7 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar6 = (param_2 % uVar7) * 0x174 + iVar9;" (assignment_expression "iVar6 = (param_2 % uVar7) * 0x174 + iVar9" identifier = (binary_expression "(param_2 % uVar7) * 0x174 + iVar9" (binary_expression "(param_2 % uVar7) * 0x174" (parenthesized_expression "(param_2 % uVar7)" ( (binary_expression "param_2 % uVar7" identifier % identifier) )) * number_literal) + identifier)) ;) (expression_statement "uVar3 = param_2 + 1;" (assignment_expression "uVar3 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }" if (parenthesized_expression "(*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8))" ( (binary_expression "*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)" (pointer_expression "*(uint *)(iVar6 + 0xec)" * (cast_expression "(uint *)(iVar6 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xec)" ( (binary_expression "iVar6 + 0xec" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar6 + 0xe8)" * (cast_expression "(uint *)(iVar6 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xe8)" ( (binary_expression "iVar6 + 0xe8" identifier + number_literal) ))))) )) (compound_statement "{\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }" { (do_statement "do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));" do (compound_statement "{\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        }" { (if_statement "if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;" if (parenthesized_expression "(param_2 + uVar7 == uVar3)" ( (binary_expression "param_2 + uVar7 == uVar3" (binary_expression "param_2 + uVar7" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00019ee8;" goto statement_identifier ;)) (if_statement "if (uVar7 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;" (assignment_expression "iVar6 = (uVar3 % uVar7) * 0x174 + iVar9" identifier = (binary_expression "(uVar3 % uVar7) * 0x174 + iVar9" (binary_expression "(uVar3 % uVar7) * 0x174" (parenthesized_expression "(uVar3 % uVar7)" ( (binary_expression "uVar3 % uVar7" identifier % identifier) )) * number_literal) + identifier)) ;) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8))" ( (binary_expression "*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)" (pointer_expression "*(uint *)(iVar6 + 0xec)" * (cast_expression "(uint *)(iVar6 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xec)" ( (binary_expression "iVar6 + 0xec" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar6 + 0xe8)" * (cast_expression "(uint *)(iVar6 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xe8)" ( (binary_expression "iVar6 + 0xe8" identifier + number_literal) ))))) )) ;) })) (expression_statement "unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);" (assignment_expression "unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10)" identifier = (call_expression "FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10)" identifier (argument_list "(iVar6,param_2,param_3,param_4,1,piVar10)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);" statement_identifier : (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;)) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_0001a1dc;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;)) (expression_statement "iVar9 = *piVar4;" (assignment_expression "iVar9 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = 0x900;" (assignment_expression "uVar8 = 0x900" identifier = number_literal) ;) (labeled_statement "joined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;" statement_identifier : (if_statement "if (iVar9 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(iVar9 == 9)" ( (binary_expression "iVar9 == 9" identifier == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;))) (labeled_statement "LAB_0001a1dc:\n    unaff_s5 = 0;" statement_identifier : (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;)) (expression_statement "*piVar4 = 0x17;" (assignment_expression "*piVar4 = 0x17" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (if_statement "if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;" if (parenthesized_expression "((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))" ( (binary_expression "(0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_2)" ( (binary_expression "0x3ff < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0)" ( (comma_expression "piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0" (assignment_expression "piVar4 = (int *)PTR_DAT_0003f05c" identifier = (cast_expression "(int *)PTR_DAT_0003f05c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(*(uint *)(param_1 + 0xf8) & 0x240) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 0x240)" ( (binary_expression "*(uint *)(param_1 + 0xf8) & 0x240" (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) (goto_statement "goto LAB_0001a2ec;" goto statement_identifier ;)) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec))" ( (binary_expression "*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)" (pointer_expression "*(int *)(param_1 + 0xe8)" * (cast_expression "(int *)(param_1 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0xec)" * (cast_expression "(int *)(param_1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xec)" ( (binary_expression "param_1 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }" { (labeled_statement "LAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);" statement_identifier : (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x38dc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x38dc" identifier + number_literal) ))) ;)) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_0001a1dc;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;)) (expression_statement "iVar9 = *piVar4;" (assignment_expression "iVar9 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = 0x93d;" (assignment_expression "uVar8 = 0x93d" identifier = number_literal) ;) (goto_statement "goto joined_r0x00019f14;" goto statement_identifier ;) })) (expression_statement "iVar9 = *(int *)(param_1 + 0x70);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x70)" identifier = (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (while_statement "while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }" while (parenthesized_expression "(iVar6 = iVar9, iVar6 != 0)" ( (comma_expression "iVar6 = iVar9, iVar6 != 0" (assignment_expression "iVar6 = iVar9" identifier = identifier) , (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }" { (expression_statement "unaff_s5 = iVar6;" (assignment_expression "unaff_s5 = iVar6" identifier = identifier) ;) (expression_statement "iVar9 = *(int *)(iVar6 + 0x70);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x70)" identifier = (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }" if (parenthesized_expression "(*(int *)(unaff_s5 + 0xf4) != 0)" ( (binary_expression "*(int *)(unaff_s5 + 0xf4) != 0" (pointer_expression "*(int *)(unaff_s5 + 0xf4)" * (cast_expression "(int *)(unaff_s5 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 0xf4)" ( (binary_expression "unaff_s5 + 0xf4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }" { (expression_statement "unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);" (assignment_expression "unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0003f25c)(0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003f25c)(0x18)" (parenthesized_expression "(*(code *)PTR_malloc_0003f25c)" ( (pointer_expression "*(code *)PTR_malloc_0003f25c" * (cast_expression "(code *)PTR_malloc_0003f25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (unaff_s8 == (int *)0x0) goto LAB_0001a190;" if (parenthesized_expression "(unaff_s8 == (int *)0x0)" ( (binary_expression "unaff_s8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);" (assignment_expression "iVar9 = FUN_0001996c(param_3,param_4,unaff_s8)" identifier = (call_expression "FUN_0001996c(param_3,param_4,unaff_s8)" identifier (argument_list "(param_3,param_4,unaff_s8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }" { (expression_statement "iVar9 = unaff_s5 + 0x94;" (assignment_expression "iVar9 = unaff_s5 + 0x94" identifier = (binary_expression "unaff_s5 + 0x94" identifier + number_literal)) ;) (expression_statement "iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);" (assignment_expression "iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) goto LAB_0001ab68;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab68;" goto statement_identifier ;)) (expression_statement "puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);" (assignment_expression "puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" identifier = (cast_expression "(undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" (parenthesized_expression "(*(code *)PTR_tsearch_0003f214)" ( (pointer_expression "*(code *)PTR_tsearch_0003f214" * (cast_expression "(code *)PTR_tsearch_0003f214" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" ( identifier , (binary_expression "unaff_s5 + 0x78" identifier + number_literal) , (binary_expression "PTR_LAB_0003f084 + -0x7054" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }" { (expression_statement "piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);" (assignment_expression "piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904)" identifier = (cast_expression "(int *)(PTR_DAT_0003f05c + -0x3904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0003f05c + -0x3904)" ( (binary_expression "PTR_DAT_0003f05c + -0x3904" identifier + number_literal) )))) ;) (expression_statement "FUN_00020df0(unaff_s5,piVar4);" (call_expression "FUN_00020df0(unaff_s5,piVar4)" identifier (argument_list "(unaff_s5,piVar4)" ( identifier , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }" { (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;) })) }) (else_clause "else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" else (compound_statement "{\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" { (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (if_statement "if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }" if (parenthesized_expression "(unaff_s8 != piVar4)" ( (binary_expression "unaff_s8 != piVar4" identifier != identifier) )) (compound_statement "{\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }" { (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (if_statement "if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" if (parenthesized_expression "((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4))" ( (binary_expression "(uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)" (cast_expression "(uint)piVar4[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[5]" identifier [ number_literal ])) < (pointer_expression "*(uint *)(unaff_s5 + 0xf4)" * (cast_expression "(uint *)(unaff_s5 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 0xf4)" ( (binary_expression "unaff_s5 + 0xf4" identifier + number_literal) ))))) )) (compound_statement "{\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }" { (expression_statement "piVar4[5] = piVar4[5] + 1;" (assignment_expression "piVar4[5] = piVar4[5] + 1" (subscript_expression "piVar4[5]" identifier [ number_literal ]) = (binary_expression "piVar4[5] + 1" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar9 = (*(code *)puVar1)(iVar9);" (assignment_expression "iVar9 = (*(code *)puVar1)(iVar9)" identifier = (call_expression "(*(code *)puVar1)(iVar9)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) goto LAB_00019f70;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019f70;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" { (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) goto LAB_0001a190;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) }))) }))) (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);" statement_identifier : (expression_statement "FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);" (call_expression "FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400)" identifier (argument_list "(param_1,piVar4 + -0xe4e,param_2,0x400)" ( identifier , (binary_expression "piVar4 + -0xe4e" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;" if (parenthesized_expression "((iVar9 != 0) && (*piVar4 == 9))" ( (binary_expression "(iVar9 != 0) && (*piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_0001ab78;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "*piVar4 = 0x16;" (assignment_expression "*piVar4 = 0x16" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (labeled_statement "LAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" statement_identifier : (if_statement "if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0))" ( (binary_expression "(*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)" (parenthesized_expression "(*(code **)(param_1 + 0x40) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x40) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x40)" * (cast_expression "(code **)(param_1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)" ( (comma_expression "unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0" (assignment_expression "unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" identifier = (call_expression "(**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" (parenthesized_expression "(**(code **)(param_1 + 0x40))" ( (pointer_expression "**(code **)(param_1 + 0x40)" * (pointer_expression "*(code **)(param_1 + 0x40)" * (cast_expression "(code **)(param_1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "unaff_s5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" { (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = 0x950;" (assignment_expression "uVar8 = 0x950" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) })) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) }))) (expression_statement "unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);" (assignment_expression "unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100)" identifier = (cast_expression "(int *)(*(code *)PTR_calloc_0003f144)(1,0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_0003f144)(1,0x100)" (parenthesized_expression "(*(code *)PTR_calloc_0003f144)" ( (pointer_expression "*(code *)PTR_calloc_0003f144" * (cast_expression "(code *)PTR_calloc_0003f144" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x100)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(unaff_s8 == (int *)0x0)" ( (binary_expression "unaff_s8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar10 = (int *)*piVar4;" (assignment_expression "piVar10 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9))" ( (binary_expression "(iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar8 = 0x962, *piVar4 == 9)" ( (comma_expression "uVar8 = 0x962, *piVar4 == 9" (assignment_expression "uVar8 = 0x962" identifier = number_literal) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "*piVar4 = (int)piVar10;" (assignment_expression "*piVar4 = (int)piVar10" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));" (assignment_expression "iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c))" identifier = (call_expression "FUN_00021248(*(undefined4 *)(param_1 + 0x7c))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x7c))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) )))) ;) (expression_statement "unaff_s8[10] = iVar9;" (assignment_expression "unaff_s8[10] = iVar9" (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_malloc_0003f25c;" (assignment_expression "puVar1 = PTR_malloc_0003f25c" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*piVar10)" ( (pointer_expression "*piVar10" * identifier) )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9))" ( (binary_expression "(iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar8 = 0x971, *piVar10 == 9)" ( (comma_expression "uVar8 = 0x971, *piVar10 == 9" (assignment_expression "uVar8 = 0x971" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar10 = 0xc;" (assignment_expression "*piVar10 = 0xc" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "unaff_s8[0x26] = *(int *)(param_1 + 0xf0);" (assignment_expression "unaff_s8[0x26] = *(int *)(param_1 + 0xf0)" (subscript_expression "unaff_s8[0x26]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = (*(code *)puVar1)(param_4);" (assignment_expression "iVar9 = (*(code *)puVar1)(param_4)" identifier = (call_expression "(*(code *)puVar1)(param_4)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "unaff_s8[0x15] = iVar9;" (assignment_expression "unaff_s8[0x15] = iVar9" (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar10 = (int *)*piVar4;" (assignment_expression "piVar10 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9))" ( (binary_expression "(iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar8 = 0x985, *piVar4 == 9)" ( (comma_expression "uVar8 = 0x985, *piVar4 == 9" (assignment_expression "uVar8 = 0x985" identifier = number_literal) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" identifier (argument_list "(unaff_s8[10])" ( (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar4 = (int)piVar10;" (assignment_expression "*piVar4 = (int)piVar10" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);" (call_expression "(*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4)" (parenthesized_expression "(*(code *)PTR_memcpy_0003f2f0)" ( (pointer_expression "*(code *)PTR_memcpy_0003f2f0" * (cast_expression "(code *)PTR_memcpy_0003f2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s8[0x24] = param_4;" (assignment_expression "unaff_s8[0x24] = param_4" (subscript_expression "unaff_s8[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "unaff_s8[0x29] = param_2;" (assignment_expression "unaff_s8[0x29] = param_2" (subscript_expression "unaff_s8[0x29]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(unaff_s8 + 0x2a) = param_6;" (assignment_expression "*(byte *)(unaff_s8 + 0x2a) = param_6" (pointer_expression "*(byte *)(unaff_s8 + 0x2a)" * (cast_expression "(byte *)(unaff_s8 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8 + 0x2a)" ( (binary_expression "unaff_s8 + 0x2a" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s8[6] = param_1;" (assignment_expression "unaff_s8[6] = param_1" (subscript_expression "unaff_s8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = FUN_0002186c();" (assignment_expression "iVar9 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x25] = iVar9;" (assignment_expression "unaff_s8[0x25] = iVar9" (subscript_expression "unaff_s8[0x25]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" if (parenthesized_expression "((uVar7 & 2) == 0)" ( (binary_expression "(uVar7 & 2) == 0" (parenthesized_expression "(uVar7 & 2)" ( (binary_expression "uVar7 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }" { (expression_statement "FUN_00015248(unaff_s8);" (call_expression "FUN_00015248(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (labeled_statement "LAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);" statement_identifier : (expression_statement "piVar10 = (int *)(param_1 + 0xac);" (assignment_expression "piVar10 = (int *)(param_1 + 0xac)" identifier = (cast_expression "(int *)(param_1 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xac)" ( (binary_expression "param_1 + 0xac" identifier + number_literal) )))) ;)) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "uVar8 = 0x9e4;" (assignment_expression "uVar8 = 0x9e4" identifier = number_literal) ;) (if_statement "if (iVar9 != 0) goto LAB_0001ab44;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab44;" goto statement_identifier ;)) (if_statement "if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }" if (parenthesized_expression "(*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec))" ( (binary_expression "*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)" (pointer_expression "*(uint *)(param_1 + 0xe8)" * (cast_expression "(uint *)(param_1 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_1 + 0xec)" * (cast_expression "(uint *)(param_1 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xec)" ( (binary_expression "param_1 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }" { (expression_statement "*(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;" (assignment_expression "*(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1" (pointer_expression "*(uint *)(param_1 + 0xe8)" * (cast_expression "(uint *)(param_1 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0xe8) + 1" (pointer_expression "*(uint *)(param_1 + 0xe8)" * (cast_expression "(uint *)(param_1 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0xf8) & 4) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 4)" ( (binary_expression "*(uint *)(param_1 + 0xf8) & 4" (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x34);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x34)" identifier = (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[4] = iVar9;" (assignment_expression "unaff_s8[4] = iVar9" (subscript_expression "unaff_s8[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }" { (expression_statement "*(int **)(param_1 + 0x34) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x34) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x34)" * (cast_expression "(int **)(param_1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" else (compound_statement "{\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" { (expression_statement "*(int **)(iVar9 + 0x14) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 0x14) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 0x14)" * (cast_expression "(int **)(iVar9 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(int **)(param_1 + 0x30) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x30) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x30)" * (cast_expression "(int **)(param_1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar9 = *(int *)(param_1 + 8);" (assignment_expression "iVar9 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar6 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[2] = iVar9;" (assignment_expression "unaff_s8[2] = iVar9" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }" { (expression_statement "*(int **)(param_1 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0xc) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" else (compound_statement "{\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" { (expression_statement "*(int **)(iVar9 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 0xc)" * (cast_expression "(int **)(iVar9 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (expression_statement "*(int **)(param_1 + 8) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 8) = unaff_s8" (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = (*(code *)puVar1)(piVar10);" (assignment_expression "iVar9 = (*(code *)puVar1)(piVar10)" identifier = (call_expression "(*(code *)puVar1)(piVar10)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "uVar8 = 0xa01;" (assignment_expression "uVar8 = 0xa01" identifier = number_literal) ;) (if_statement "if (iVar9 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" if (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" { (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" ( (pointer_expression "**(code **)(param_1 + 0x50)" * (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "unaff_s8 + 0xc" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" if (parenthesized_expression "((uVar7 & 4) == 0)" ( (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x90);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x90)" identifier = (pointer_expression "*(int *)(param_1 + 0x90)" * (cast_expression "(int *)(param_1 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x16] = *(int *)(param_1 + 0x8c);" (assignment_expression "unaff_s8[0x16] = *(int *)(param_1 + 0x8c)" (subscript_expression "unaff_s8[0x16]" identifier [ number_literal ]) = (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" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x17] = iVar9;" (assignment_expression "unaff_s8[0x17] = iVar9" (subscript_expression "unaff_s8[0x17]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "((uVar7 & 0x200) == 0)" ( (binary_expression "(uVar7 & 0x200) == 0" (parenthesized_expression "(uVar7 & 0x200)" ( (binary_expression "uVar7 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" { (labeled_statement "LAB_0001a9b8:\n          unaff_s5 = 1;" statement_identifier : (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;)) (if_statement "if (param_5 == '\0') goto LAB_0001a1e8;" if (parenthesized_expression "(param_5 == '\0')" ( (binary_expression "param_5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (if_statement "if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;" if (parenthesized_expression "(*(int *)(param_1 + 0xdc) == -1)" ( (binary_expression "*(int *)(param_1 + 0xdc) == -1" (pointer_expression "*(int *)(param_1 + 0xdc)" * (cast_expression "(int *)(param_1 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xdc)" ( (binary_expression "param_1 + 0xdc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (expression_statement "iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);" (assignment_expression "iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" identifier = (call_expression "(*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (parenthesized_expression "(*(code *)PTR_write_0003f220)" ( (pointer_expression "*(code *)PTR_write_0003f220" * (cast_expression "(code *)PTR_write_0003f220" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" ( (pointer_expression "*(int *)(param_1 + 0xdc)" * (cast_expression "(int *)(param_1 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xdc)" ( (binary_expression "param_1 + 0xdc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_0003f05c + -0x28d8" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb))" ( (binary_expression "(iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)" (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 != 0xb" (pointer_expression "*piVar4" * identifier) != number_literal)) ))) )) (compound_statement "{\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }" { (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x37f4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x37f4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a8dc:\n          unaff_s5 = 1;" statement_identifier : (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" else (compound_statement "{\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" { (expression_statement "iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);" (assignment_expression "iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" identifier = (call_expression "FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" identifier (argument_list "(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" ( (binary_expression "unaff_s8 + 0x16" identifier + number_literal) , (binary_expression "PTR_DAT_0003f05c + -0x3824" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) , (binary_expression "PTR_LAB_0003f084 + -0x445c" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = *piVar4;" (assignment_expression "unaff_s5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x3814,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x3814" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" if (parenthesized_expression "((uVar7 & 0x200) == 0)" ( (binary_expression "(uVar7 & 0x200) == 0" (parenthesized_expression "(uVar7 & 0x200)" ( (binary_expression "uVar7 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" { (if_statement "if ((uVar7 & 4) != 0) goto LAB_0001a8dc;" if (parenthesized_expression "((uVar7 & 4) != 0)" ( (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a8dc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a9b8;" goto statement_identifier ;) })) }))) (if_statement "if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(((uVar7 & 0x1000) != 0) && (param_5 == '\0'))" ( (binary_expression "((uVar7 & 0x1000) != 0) && (param_5 == '\0')" (parenthesized_expression "((uVar7 & 0x1000) != 0)" ( (binary_expression "(uVar7 & 0x1000) != 0" (parenthesized_expression "(uVar7 & 0x1000)" ( (binary_expression "uVar7 & 0x1000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_5 == '\0')" ( (binary_expression "param_5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[1] = 0;" (assignment_expression "unaff_s8[1] = 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 7;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) = (binary_expression "unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "*unaff_s8 = iVar9;" (assignment_expression "*unaff_s8 = iVar9" (pointer_expression "*unaff_s8" * identifier) = identifier) ;) (if_statement "if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" { (expression_statement "*(int **)(iVar9 + 4) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 4) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 4)" * (cast_expression "(int **)(iVar9 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x20) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x20)" * (cast_expression "(int **)(param_1 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "*(int **)(param_1 + 0x24) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x24) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x24)" * (cast_expression "(int **)(param_1 + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x20) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x20)" * (cast_expression "(int **)(param_1 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "local_40[0] = 0x80000007;" (assignment_expression "local_40[0] = 0x80000007" (subscript_expression "local_40[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_38 = unaff_s8;" (assignment_expression "local_38 = unaff_s8" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);" (assignment_expression "iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" (parenthesized_expression "(*(code *)PTR_epoll_ctl_0003f278)" ( (pointer_expression "*(code *)PTR_epoll_ctl_0003f278" * (cast_expression "(code *)PTR_epoll_ctl_0003f278" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" ( (pointer_expression "*(undefined4 *)(param_1 + 0xcc)" * (cast_expression "(undefined4 *)(param_1 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 8;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) = (binary_expression "unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) | number_literal)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = *piVar4;" (assignment_expression "unaff_s5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x4da8" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) }) (else_clause "else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" else (compound_statement "{\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" { (expression_statement "piVar10 = (int *)0x1;" (assignment_expression "piVar10 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8[0x3c] = 1;" (assignment_expression "unaff_s8[0x3c] = 1" (subscript_expression "unaff_s8[0x3c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00029db0(unaff_s8);" (call_expression "FUN_00029db0(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);" (call_expression "(*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49)" (parenthesized_expression "(*(code *)PTR_gnutls_init_0003f218)" ( (pointer_expression "*(code *)PTR_gnutls_init_0003f218" * (cast_expression "(code *)PTR_gnutls_init_0003f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8 + 0x39,0x49)" ( (binary_expression "unaff_s8 + 0x39" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));" (call_expression "(*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c))" (parenthesized_expression "(*(code *)PTR_gnutls_priority_set_0003f1b0)" ( (pointer_expression "*(code *)PTR_gnutls_priority_set_0003f1b0" * (cast_expression "(code *)PTR_gnutls_priority_set_0003f1b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(param_1 + 0x10c)" * (cast_expression "(undefined4 *)(param_1 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);" (call_expression "(*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8)" (parenthesized_expression "(*(code *)PTR_gnutls_session_set_ptr_0003f258)" ( (pointer_expression "*(code *)PTR_gnutls_session_set_ptr_0003f258" * (cast_expression "(code *)PTR_gnutls_session_set_ptr_0003f258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],unaff_s8)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x110) == 1)" ( (binary_expression "*(int *)(param_1 + 0x110) == 1" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" { (expression_statement "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));" (call_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114))" (parenthesized_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)" ( (pointer_expression "*(code *)PTR_gnutls_credentials_set_0003f1d8" * (cast_expression "(code *)PTR_gnutls_credentials_set_0003f1d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x114)" * (cast_expression "(undefined4 *)(param_1 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);" statement_identifier : (expression_statement "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);" (call_expression "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2)" (parenthesized_expression "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)" ( (pointer_expression "*(code *)PTR_gnutls_transport_set_int2_0003f1ec" * (cast_expression "(code *)PTR_gnutls_transport_set_int2_0003f1ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],param_2,param_2)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , identifier , identifier ))) ;)) (if_statement "if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x138) != 0)" ( (binary_expression "*(int *)(param_1 + 0x138) != 0" (pointer_expression "*(int *)(param_1 + 0x138)" * (cast_expression "(int *)(param_1 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x138)" ( (binary_expression "param_1 + 0x138" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);" (call_expression "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_server_set_request_0003f274" * (cast_expression "(code *)PTR_gnutls_certificate_server_set_request_0003f274" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],1)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal ))) ;) })) (goto_statement "goto LAB_0001a03c;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x110) == 4)" ( (binary_expression "*(int *)(param_1 + 0x110) == 4" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }" { (expression_statement "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));" (call_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c))" (parenthesized_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)" ( (pointer_expression "*(code *)PTR_gnutls_credentials_set_0003f1d8" * (cast_expression "(code *)PTR_gnutls_credentials_set_0003f1d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);" (call_expression "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c)" (parenthesized_expression "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)" ( (pointer_expression "*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238" * (cast_expression "(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) , (binary_expression "PTR_LAB_0003f084 + -0x703c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001a950;" goto statement_identifier ;) })) (expression_statement "FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);" (call_expression "FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c)" identifier (argument_list "(unaff_s8[6],PTR_DAT_0003f05c + -0x387c)" ( (subscript_expression "unaff_s8[6]" identifier [ number_literal ]) , (binary_expression "PTR_DAT_0003f05c + -0x387c" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }" if (parenthesized_expression "((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))" ( (binary_expression "(iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (compound_statement "{\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }" { (expression_statement "uVar8 = 0x9c3;" (assignment_expression "uVar8 = 0x9c3" identifier = number_literal) ;) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;) })) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15])" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x15])" ( (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x383c" identifier + number_literal) ))) ;) }))) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "uVar8 = 0x9ea;" (assignment_expression "uVar8 = 0x9ea" identifier = number_literal) ;) (if_statement "if (iVar9 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0x17;" (assignment_expression "unaff_s5 = 0x17" identifier = number_literal) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x38dc" identifier + number_literal) , number_literal ))) ;) (labeled_statement "LAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" statement_identifier : (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" if (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" { (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" ( (pointer_expression "**(code **)(param_1 + 0x50)" * (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "unaff_s8 + 0xc" identifier + number_literal) , number_literal ))) ;) }))) (if_statement "if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }" if (parenthesized_expression "(unaff_s8[0x39] != 0)" ( (binary_expression "unaff_s8[0x39] != 0" (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }" { (expression_statement "(*(code *)PTR_gnutls_deinit_0003f338)();" (call_expression "(*(code *)PTR_gnutls_deinit_0003f338)()" (parenthesized_expression "(*(code *)PTR_gnutls_deinit_0003f338)" ( (pointer_expression "*(code *)PTR_gnutls_deinit_0003f338" * (cast_expression "(code *)PTR_gnutls_deinit_0003f338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = 0xa56;" (assignment_expression "uVar8 = 0xa56" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) })) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) goto LAB_0001ab40;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab40;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;" if (parenthesized_expression "((*(uint *)(param_1 + 0xf8) & 4) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 4)" ( (binary_expression "*(uint *)(param_1 + 0xf8) & 4" (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a804;" goto statement_identifier ;)) (expression_statement "iVar9 = unaff_s8[4];" (assignment_expression "iVar9 = unaff_s8[4]" identifier = (subscript_expression "unaff_s8[4]" identifier [ number_literal ])) ;) (if_statement "if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" if (parenthesized_expression "(unaff_s8[5] == 0)" ( (binary_expression "unaff_s8[5] == 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }" { (expression_statement "*(int *)(param_1 + 0x30) = iVar9;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar9" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" else (compound_statement "{\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" { (expression_statement "*(int *)(unaff_s8[5] + 0x10) = iVar9;" (assignment_expression "*(int *)(unaff_s8[5] + 0x10) = iVar9" (pointer_expression "*(int *)(unaff_s8[5] + 0x10)" * (cast_expression "(int *)(unaff_s8[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[5] + 0x10)" ( (binary_expression "unaff_s8[5] + 0x10" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = unaff_s8[4];" (assignment_expression "iVar9 = unaff_s8[4]" identifier = (subscript_expression "unaff_s8[4]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = unaff_s8[5];" (assignment_expression "iVar6 = unaff_s8[5]" identifier = (subscript_expression "unaff_s8[5]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar9 == 0) goto LAB_0001aa64;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001aa64;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar9 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar9 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );" do (compound_statement "{\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  }" { (expression_statement "unaff_s8[4] = 0;" (assignment_expression "unaff_s8[4] = 0" (subscript_expression "unaff_s8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0001a804:\n    iVar9 = unaff_s8[2];" statement_identifier : (expression_statement "iVar9 = unaff_s8[2];" (assignment_expression "iVar9 = unaff_s8[2]" identifier = (subscript_expression "unaff_s8[2]" identifier [ number_literal ])) ;)) (if_statement "if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" if (parenthesized_expression "(unaff_s8[3] == 0)" ( (binary_expression "unaff_s8[3] == 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }" { (expression_statement "*(int *)(param_1 + 8) = iVar9;" (assignment_expression "*(int *)(param_1 + 8) = iVar9" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" else (compound_statement "{\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" { (expression_statement "*(int *)(unaff_s8[3] + 8) = iVar9;" (assignment_expression "*(int *)(unaff_s8[3] + 8) = iVar9" (pointer_expression "*(int *)(unaff_s8[3] + 8)" * (cast_expression "(int *)(unaff_s8[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[3] + 8)" ( (binary_expression "unaff_s8[3] + 8" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = unaff_s8[2];" (assignment_expression "iVar9 = unaff_s8[2]" identifier = (subscript_expression "unaff_s8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = unaff_s8[3];" (assignment_expression "iVar6 = unaff_s8[3]" identifier = (subscript_expression "unaff_s8[3]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 0xc) = iVar6;\n    }" { (expression_statement "*(int *)(param_1 + 0xc) = iVar6;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar6" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" else (compound_statement "{\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" { (expression_statement "*(int *)(iVar9 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar9 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (expression_statement "unaff_s8[2] = 0;" (assignment_expression "unaff_s8[2] = 0" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = (*(code *)puVar1)(piVar10);" (assignment_expression "iVar9 = (*(code *)puVar1)(piVar10)" identifier = (call_expression "(*(code *)puVar1)(piVar10)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }" { (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" identifier (argument_list "(unaff_s8[10])" ( (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15])" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x15])" ( (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" if (parenthesized_expression "(unaff_s5 == 0)" ( (binary_expression "unaff_s5 == 0" identifier == number_literal) )) (compound_statement "{\n        *piVar4 = 0x16;\n      }" { (expression_statement "*piVar4 = 0x16;" (assignment_expression "*piVar4 = 0x16" (pointer_expression "*piVar4" * identifier) = number_literal) ;) }) (else_clause "else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" else (compound_statement "{\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" { (expression_statement "*piVar4 = unaff_s5;" (assignment_expression "*piVar4 = unaff_s5" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return unaff_s5;\n      }" { (return_statement "return unaff_s5;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0003f2b8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003f2b8" * (cast_expression "(code *)PTR___stack_chk_fail_0003f2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar8 = 0xa67;" (assignment_expression "uVar8 = 0xa67" identifier = number_literal) ;) (labeled_statement "LAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0001ab40:\n    uVar8 = 0xa5b;" statement_identifier : (expression_statement "uVar8 = 0xa5b;" (assignment_expression "uVar8 = 0xa5b" identifier = number_literal) ;)) (labeled_statement "LAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0001ab68:\n    FUN_00019bc8();" statement_identifier : (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0001ab78:\n    uVar8 = 0x912;" statement_identifier : (expression_statement "uVar8 = 0x912;" (assignment_expression "uVar8 = 0x912" identifier = number_literal) ;)) (labeled_statement "LAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x3950" identifier + number_literal) ))) ;)) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;" statement_identifier : (expression_statement "*(int *)(param_1 + 0x34) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x34) = iVar6" (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */\n/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */\n/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */\n\nint internal_add_connection\n              (MHD_Daemon *daemon,MHD_socket client_socket,sockaddr *addr,socklen_t addrlen,\n              _Bool external_add,_Bool non_blck)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int *piVar6;\n  MemoryPool *pMVar7;\n  sockaddr *psVar8;\n  time_t tVar9;\n  MHD_Connection *pMVar10;\n  undefined4 *puVar11;\n  MHD_FLAG MVar12;\n  MHD_Connection *pMVar13;\n  MHD_Connection *extraout_v1;\n  MHD_thread_ID_ MVar14;\n  MHD_Daemon *pMVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  MHD_Daemon *pMVar18;\n  MHD_mutex_ *pMVar19;\n  MHD_Daemon *unaff_s5;\n  MHD_Connection *unaff_s8;\n  epoll_event event;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  pMVar19 = (MHD_mutex_ *)(uint)non_blck;\n  iVar3 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((external_add) && (pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      pMVar15 = pMVar18 + (uint)client_socket % uVar16;\n      uVar4 = client_socket + 1;\n      if (pMVar15->connection_limit <= pMVar15->connections) {\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x900;\njoined_r0x00019f14:\n    if (iVar5 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar6 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < client_socket) &&\n     (pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,\n     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;\n  unaff_s5 = daemon;\n  if (daemon->connections == daemon->connection_limit) {\nLAB_0001a190:\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  pMVar18 = daemon->master;\n  while (pMVar15 = pMVar18, pMVar15 != (MHD_Daemon *)0x0) {\n    unaff_s5 = pMVar15;\n    pMVar18 = pMVar15->master;\n  }\n  if (unaff_s5->per_ip_connection_limit != 0) {\n    unaff_s8 = (MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar5 = MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8);\n    if (iVar5 != 0) {\n      pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar15;\n      iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);\n      if (puVar11 == (undefined4 *)0x0) {\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar15);\nLAB_0001a2ec:\n      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);\n      iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar6 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((daemon->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if (iVar5 != 0) {\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar17 = 0x950;\n      if (*piVar6 == 9) goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (MHD_Connection *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (MHD_Connection *)0x0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }\n  pMVar7 = MHD_pool_create(daemon->pool_size);\n  unaff_s8->pool = pMVar7;\n  puVar1 = PTR_malloc_0003f25c;\n  if (pMVar7 == (MemoryPool *)0x0) {\n    pMVar19 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = (*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (pMVar19->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8->connection_timeout = daemon->connection_timeout;\n  psVar8 = (sockaddr *)(*(code *)puVar1)(addrlen);\n  unaff_s8->addr = psVar8;\n  if (psVar8 == (sockaddr *)0x0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    MHD_pool_destroy(unaff_s8->pool);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(psVar8,addr,addrlen);\n  unaff_s8->addr_len = addrlen;\n  unaff_s8->socket_fd = client_socket;\n  unaff_s8->sk_nonblck = non_blck;\n  unaff_s8->daemon = daemon;\n  tVar9 = MHD_monotonic_sec_counter();\n  MVar12 = daemon->options;\n  unaff_s8->last_activity = tVar9;\n  if ((MVar12 & MHD_USE_SSL) == MHD_NO_FLAG) {\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar19 = &daemon->cleanup_connection_mutex;\n    iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);\n    uVar17 = 0x9e4;\n    if (iVar5 != 0) goto LAB_0001ab44;\n    if (daemon->connections < daemon->connection_limit) {\n      daemon->connections = daemon->connections + 1;\n      if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }\n      pMVar10 = daemon->connections_head;\n      pMVar13 = daemon->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar10;\n      if (pMVar13 == (MHD_Connection *)0x0) {\n        daemon->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar10->prev = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      daemon->connections_head = unaff_s8;\n      iVar5 = (*(code *)puVar1)(pMVar19);\n      uVar17 = 0xa01;\n      if (iVar5 != 0) goto LAB_0001ab1c;\n      if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar12 = daemon->options;\n      if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      event.events = 0x80000007;\n      event.data.fd = (int)unaff_s8;\n      iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);\n      if (iVar5 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = (MHD_Daemon *)*piVar6;\n      uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    pMVar19 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache);\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8);\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);\n      if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (daemon->cred_type == GNUTLS_CRD_PSK) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))\n    {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar19);\n  uVar17 = 0x9ea;\n  if (iVar5 != 0) goto LAB_0001ab1c;\n  unaff_s5 = (MHD_Daemon *)0x17;\n  MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*daemon->notify_connection)\n              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }\n  if (unaff_s8->tls_session != (gnutls_session_t)0x0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n  if (iVar5 != 0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = 0xa56;\n    if (*piVar6 == 9) goto LAB_0001aa44;\n  }\n  MHD_ip_limit_del(daemon,addr,addrlen);\n  iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);\n  if (iVar5 != 0) goto LAB_0001ab40;\n  if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;\n  pMVar10 = unaff_s8->nextX;\n  if (unaff_s8->prevX == (MHD_Connection *)0x0) {\n    daemon->normal_timeout_head = pMVar10;\n    pMVar13 = (MHD_Connection *)0x0;\n  }\n  else {\n    unaff_s8->prevX->nextX = pMVar10;\n    pMVar10 = unaff_s8->nextX;\n    pMVar13 = unaff_s8->prevX;\n  }\n  if (pMVar10 == (MHD_Connection *)0x0) goto LAB_0001aa64;\n  pMVar10->prevX = pMVar13;\n  do {\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar10 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      daemon->connections_head = pMVar10;\n      pMVar13 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar10;\n      pMVar10 = unaff_s8->next;\n      pMVar13 = unaff_s8->prev;\n    }\n    if (pMVar10 == (MHD_Connection *)0x0) {\n      daemon->connections_tail = pMVar13;\n    }\n    else {\n      pMVar10->prev = pMVar13;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar5 = (*(code *)puVar1)(pMVar19);\n    if (iVar5 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar11 = 0x16;\n      }\n      else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;\n    (**(code **)PTR_mhd_panic_0003f070)\n              (pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950);\n    pMVar13 = extraout_v1;\nLAB_0001aa64:\n    daemon->normal_timeout_tail = pMVar13;\n  } while( true );\n}\n\n" comment comment comment (function_definition "int internal_add_connection\n              (MHD_Daemon *daemon,MHD_socket client_socket,sockaddr *addr,socklen_t addrlen,\n              _Bool external_add,_Bool non_blck)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int *piVar6;\n  MemoryPool *pMVar7;\n  sockaddr *psVar8;\n  time_t tVar9;\n  MHD_Connection *pMVar10;\n  undefined4 *puVar11;\n  MHD_FLAG MVar12;\n  MHD_Connection *pMVar13;\n  MHD_Connection *extraout_v1;\n  MHD_thread_ID_ MVar14;\n  MHD_Daemon *pMVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  MHD_Daemon *pMVar18;\n  MHD_mutex_ *pMVar19;\n  MHD_Daemon *unaff_s5;\n  MHD_Connection *unaff_s8;\n  epoll_event event;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  pMVar19 = (MHD_mutex_ *)(uint)non_blck;\n  iVar3 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((external_add) && (pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      pMVar15 = pMVar18 + (uint)client_socket % uVar16;\n      uVar4 = client_socket + 1;\n      if (pMVar15->connection_limit <= pMVar15->connections) {\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x900;\njoined_r0x00019f14:\n    if (iVar5 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar6 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < client_socket) &&\n     (pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,\n     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;\n  unaff_s5 = daemon;\n  if (daemon->connections == daemon->connection_limit) {\nLAB_0001a190:\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  pMVar18 = daemon->master;\n  while (pMVar15 = pMVar18, pMVar15 != (MHD_Daemon *)0x0) {\n    unaff_s5 = pMVar15;\n    pMVar18 = pMVar15->master;\n  }\n  if (unaff_s5->per_ip_connection_limit != 0) {\n    unaff_s8 = (MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar5 = MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8);\n    if (iVar5 != 0) {\n      pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar15;\n      iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);\n      if (puVar11 == (undefined4 *)0x0) {\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar15);\nLAB_0001a2ec:\n      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);\n      iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar6 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((daemon->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if (iVar5 != 0) {\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar17 = 0x950;\n      if (*piVar6 == 9) goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (MHD_Connection *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (MHD_Connection *)0x0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }\n  pMVar7 = MHD_pool_create(daemon->pool_size);\n  unaff_s8->pool = pMVar7;\n  puVar1 = PTR_malloc_0003f25c;\n  if (pMVar7 == (MemoryPool *)0x0) {\n    pMVar19 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = (*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (pMVar19->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8->connection_timeout = daemon->connection_timeout;\n  psVar8 = (sockaddr *)(*(code *)puVar1)(addrlen);\n  unaff_s8->addr = psVar8;\n  if (psVar8 == (sockaddr *)0x0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    MHD_pool_destroy(unaff_s8->pool);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(psVar8,addr,addrlen);\n  unaff_s8->addr_len = addrlen;\n  unaff_s8->socket_fd = client_socket;\n  unaff_s8->sk_nonblck = non_blck;\n  unaff_s8->daemon = daemon;\n  tVar9 = MHD_monotonic_sec_counter();\n  MVar12 = daemon->options;\n  unaff_s8->last_activity = tVar9;\n  if ((MVar12 & MHD_USE_SSL) == MHD_NO_FLAG) {\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar19 = &daemon->cleanup_connection_mutex;\n    iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);\n    uVar17 = 0x9e4;\n    if (iVar5 != 0) goto LAB_0001ab44;\n    if (daemon->connections < daemon->connection_limit) {\n      daemon->connections = daemon->connections + 1;\n      if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }\n      pMVar10 = daemon->connections_head;\n      pMVar13 = daemon->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar10;\n      if (pMVar13 == (MHD_Connection *)0x0) {\n        daemon->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar10->prev = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      daemon->connections_head = unaff_s8;\n      iVar5 = (*(code *)puVar1)(pMVar19);\n      uVar17 = 0xa01;\n      if (iVar5 != 0) goto LAB_0001ab1c;\n      if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar12 = daemon->options;\n      if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      event.events = 0x80000007;\n      event.data.fd = (int)unaff_s8;\n      iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);\n      if (iVar5 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = (MHD_Daemon *)*piVar6;\n      uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    pMVar19 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache);\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8);\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);\n      if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (daemon->cred_type == GNUTLS_CRD_PSK) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))\n    {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar19);\n  uVar17 = 0x9ea;\n  if (iVar5 != 0) goto LAB_0001ab1c;\n  unaff_s5 = (MHD_Daemon *)0x17;\n  MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*daemon->notify_connection)\n              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }\n  if (unaff_s8->tls_session != (gnutls_session_t)0x0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n  if (iVar5 != 0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = 0xa56;\n    if (*piVar6 == 9) goto LAB_0001aa44;\n  }\n  MHD_ip_limit_del(daemon,addr,addrlen);\n  iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);\n  if (iVar5 != 0) goto LAB_0001ab40;\n  if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;\n  pMVar10 = unaff_s8->nextX;\n  if (unaff_s8->prevX == (MHD_Connection *)0x0) {\n    daemon->normal_timeout_head = pMVar10;\n    pMVar13 = (MHD_Connection *)0x0;\n  }\n  else {\n    unaff_s8->prevX->nextX = pMVar10;\n    pMVar10 = unaff_s8->nextX;\n    pMVar13 = unaff_s8->prevX;\n  }\n  if (pMVar10 == (MHD_Connection *)0x0) goto LAB_0001aa64;\n  pMVar10->prevX = pMVar13;\n  do {\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar10 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      daemon->connections_head = pMVar10;\n      pMVar13 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar10;\n      pMVar10 = unaff_s8->next;\n      pMVar13 = unaff_s8->prev;\n    }\n    if (pMVar10 == (MHD_Connection *)0x0) {\n      daemon->connections_tail = pMVar13;\n    }\n    else {\n      pMVar10->prev = pMVar13;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar5 = (*(code *)puVar1)(pMVar19);\n    if (iVar5 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar11 = 0x16;\n      }\n      else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;\n    (**(code **)PTR_mhd_panic_0003f070)\n              (pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950);\n    pMVar13 = extraout_v1;\nLAB_0001aa64:\n    daemon->normal_timeout_tail = pMVar13;\n  } while( true );\n}" primitive_type (function_declarator "internal_add_connection\n              (MHD_Daemon *daemon,MHD_socket client_socket,sockaddr *addr,socklen_t addrlen,\n              _Bool external_add,_Bool non_blck)" identifier (parameter_list "(MHD_Daemon *daemon,MHD_socket client_socket,sockaddr *addr,socklen_t addrlen,\n              _Bool external_add,_Bool non_blck)" ( (parameter_declaration "MHD_Daemon *daemon" type_identifier (pointer_declarator "*daemon" * identifier)) , (parameter_declaration "MHD_socket client_socket" type_identifier identifier) , (parameter_declaration "sockaddr *addr" type_identifier (pointer_declarator "*addr" * identifier)) , (parameter_declaration "socklen_t addrlen" type_identifier identifier) , (parameter_declaration "_Bool external_add" type_identifier identifier) , (parameter_declaration "_Bool non_blck" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  int *piVar6;\n  MemoryPool *pMVar7;\n  sockaddr *psVar8;\n  time_t tVar9;\n  MHD_Connection *pMVar10;\n  undefined4 *puVar11;\n  MHD_FLAG MVar12;\n  MHD_Connection *pMVar13;\n  MHD_Connection *extraout_v1;\n  MHD_thread_ID_ MVar14;\n  MHD_Daemon *pMVar15;\n  uint uVar16;\n  undefined4 uVar17;\n  MHD_Daemon *pMVar18;\n  MHD_mutex_ *pMVar19;\n  MHD_Daemon *unaff_s5;\n  MHD_Connection *unaff_s8;\n  epoll_event event;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  pMVar19 = (MHD_mutex_ *)(uint)non_blck;\n  iVar3 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((external_add) && (pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      pMVar15 = pMVar18 + (uint)client_socket % uVar16;\n      uVar4 = client_socket + 1;\n      if (pMVar15->connection_limit <= pMVar15->connections) {\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x900;\njoined_r0x00019f14:\n    if (iVar5 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar6 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < client_socket) &&\n     (pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,\n     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;\n  unaff_s5 = daemon;\n  if (daemon->connections == daemon->connection_limit) {\nLAB_0001a190:\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  pMVar18 = daemon->master;\n  while (pMVar15 = pMVar18, pMVar15 != (MHD_Daemon *)0x0) {\n    unaff_s5 = pMVar15;\n    pMVar18 = pMVar15->master;\n  }\n  if (unaff_s5->per_ip_connection_limit != 0) {\n    unaff_s8 = (MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar5 = MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8);\n    if (iVar5 != 0) {\n      pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar15;\n      iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);\n      if (puVar11 == (undefined4 *)0x0) {\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar15);\nLAB_0001a2ec:\n      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);\n      iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar6 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((daemon->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if (iVar5 != 0) {\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar17 = 0x950;\n      if (*piVar6 == 9) goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (MHD_Connection *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (MHD_Connection *)0x0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }\n  pMVar7 = MHD_pool_create(daemon->pool_size);\n  unaff_s8->pool = pMVar7;\n  puVar1 = PTR_malloc_0003f25c;\n  if (pMVar7 == (MemoryPool *)0x0) {\n    pMVar19 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = (*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (pMVar19->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8->connection_timeout = daemon->connection_timeout;\n  psVar8 = (sockaddr *)(*(code *)puVar1)(addrlen);\n  unaff_s8->addr = psVar8;\n  if (psVar8 == (sockaddr *)0x0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    MHD_pool_destroy(unaff_s8->pool);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(psVar8,addr,addrlen);\n  unaff_s8->addr_len = addrlen;\n  unaff_s8->socket_fd = client_socket;\n  unaff_s8->sk_nonblck = non_blck;\n  unaff_s8->daemon = daemon;\n  tVar9 = MHD_monotonic_sec_counter();\n  MVar12 = daemon->options;\n  unaff_s8->last_activity = tVar9;\n  if ((MVar12 & MHD_USE_SSL) == MHD_NO_FLAG) {\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar19 = &daemon->cleanup_connection_mutex;\n    iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);\n    uVar17 = 0x9e4;\n    if (iVar5 != 0) goto LAB_0001ab44;\n    if (daemon->connections < daemon->connection_limit) {\n      daemon->connections = daemon->connections + 1;\n      if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }\n      pMVar10 = daemon->connections_head;\n      pMVar13 = daemon->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar10;\n      if (pMVar13 == (MHD_Connection *)0x0) {\n        daemon->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar10->prev = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      daemon->connections_head = unaff_s8;\n      iVar5 = (*(code *)puVar1)(pMVar19);\n      uVar17 = 0xa01;\n      if (iVar5 != 0) goto LAB_0001ab1c;\n      if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar12 = daemon->options;\n      if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      event.events = 0x80000007;\n      event.data.fd = (int)unaff_s8;\n      iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);\n      if (iVar5 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = (MHD_Daemon *)*piVar6;\n      uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    pMVar19 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache);\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8);\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);\n      if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (daemon->cred_type == GNUTLS_CRD_PSK) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))\n    {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar19);\n  uVar17 = 0x9ea;\n  if (iVar5 != 0) goto LAB_0001ab1c;\n  unaff_s5 = (MHD_Daemon *)0x17;\n  MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*daemon->notify_connection)\n              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }\n  if (unaff_s8->tls_session != (gnutls_session_t)0x0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n  if (iVar5 != 0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = 0xa56;\n    if (*piVar6 == 9) goto LAB_0001aa44;\n  }\n  MHD_ip_limit_del(daemon,addr,addrlen);\n  iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);\n  if (iVar5 != 0) goto LAB_0001ab40;\n  if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;\n  pMVar10 = unaff_s8->nextX;\n  if (unaff_s8->prevX == (MHD_Connection *)0x0) {\n    daemon->normal_timeout_head = pMVar10;\n    pMVar13 = (MHD_Connection *)0x0;\n  }\n  else {\n    unaff_s8->prevX->nextX = pMVar10;\n    pMVar10 = unaff_s8->nextX;\n    pMVar13 = unaff_s8->prevX;\n  }\n  if (pMVar10 == (MHD_Connection *)0x0) goto LAB_0001aa64;\n  pMVar10->prevX = pMVar13;\n  do {\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar10 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      daemon->connections_head = pMVar10;\n      pMVar13 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar10;\n      pMVar10 = unaff_s8->next;\n      pMVar13 = unaff_s8->prev;\n    }\n    if (pMVar10 == (MHD_Connection *)0x0) {\n      daemon->connections_tail = pMVar13;\n    }\n    else {\n      pMVar10->prev = pMVar13;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar5 = (*(code *)puVar1)(pMVar19);\n    if (iVar5 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar11 = 0x16;\n      }\n      else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;\n    (**(code **)PTR_mhd_panic_0003f070)\n              (pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950);\n    pMVar13 = extraout_v1;\nLAB_0001aa64:\n    daemon->normal_timeout_tail = pMVar13;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "MemoryPool *pMVar7;" type_identifier (pointer_declarator "*pMVar7" * identifier) ;) (declaration "sockaddr *psVar8;" type_identifier (pointer_declarator "*psVar8" * identifier) ;) (declaration "time_t tVar9;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar10;" type_identifier (pointer_declarator "*pMVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "MHD_FLAG MVar12;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar13;" type_identifier (pointer_declarator "*pMVar13" * identifier) ;) (declaration "MHD_Connection *extraout_v1;" type_identifier (pointer_declarator "*extraout_v1" * identifier) ;) (declaration "MHD_thread_ID_ MVar14;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar15;" type_identifier (pointer_declarator "*pMVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar18;" type_identifier (pointer_declarator "*pMVar18" * identifier) ;) (declaration "MHD_mutex_ *pMVar19;" type_identifier (pointer_declarator "*pMVar19" * identifier) ;) (declaration "MHD_Daemon *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "MHD_Connection *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "epoll_event event;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0003f2ec" identifier = identifier) ;) (expression_statement "pMVar19 = (MHD_mutex_ *)(uint)non_blck;" (assignment_expression "pMVar19 = (MHD_mutex_ *)(uint)non_blck" identifier = (cast_expression "(MHD_mutex_ *)(uint)non_blck" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)non_blck" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_0003f2ec" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003f2ec" * (cast_expression "(int *)PTR___stack_chk_guard_0003f2ec" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((external_add) && (pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0)) {\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      pMVar15 = pMVar18 + (uint)client_socket % uVar16;\n      uVar4 = client_socket + 1;\n      if (pMVar15->connection_limit <= pMVar15->connections) {\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x900;\njoined_r0x00019f14:\n    if (iVar5 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar6 = 0x17;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((external_add) && (pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0))" ( (binary_expression "(external_add) && (pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0)" (parenthesized_expression "(external_add)" ( identifier )) && (parenthesized_expression "(pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0)" ( (comma_expression "pMVar18 = daemon->worker_pool, pMVar18 != (MHD_Daemon *)0x0" (assignment_expression "pMVar18 = daemon->worker_pool" identifier = (field_expression "daemon->worker_pool" identifier -> field_identifier)) , (binary_expression "pMVar18 != (MHD_Daemon *)0x0" identifier != (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      pMVar15 = pMVar18 + (uint)client_socket % uVar16;\n      uVar4 = client_socket + 1;\n      if (pMVar15->connection_limit <= pMVar15->connections) {\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x900;\njoined_r0x00019f14:\n    if (iVar5 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;\n    *piVar6 = 0x17;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "uVar16 = daemon->worker_pool_size;" (assignment_expression "uVar16 = daemon->worker_pool_size" identifier = (field_expression "daemon->worker_pool_size" identifier -> field_identifier)) ;) (if_statement "if (uVar16 != 0) {\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      pMVar15 = pMVar18 + (uint)client_socket % uVar16;\n      uVar4 = client_socket + 1;\n      if (pMVar15->connection_limit <= pMVar15->connections) {\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      pMVar15 = pMVar18 + (uint)client_socket % uVar16;\n      uVar4 = client_socket + 1;\n      if (pMVar15->connection_limit <= pMVar15->connections) {\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }\n      unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);\n      goto LAB_0001a1e8;\n    }" { (if_statement "if (uVar16 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pMVar15 = pMVar18 + (uint)client_socket % uVar16;" (assignment_expression "pMVar15 = pMVar18 + (uint)client_socket % uVar16" identifier = (binary_expression "pMVar18 + (uint)client_socket % uVar16" identifier + (binary_expression "(uint)client_socket % uVar16" (cast_expression "(uint)client_socket" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier))) ;) (expression_statement "uVar4 = client_socket + 1;" (assignment_expression "uVar4 = client_socket + 1" identifier = (binary_expression "client_socket + 1" identifier + number_literal)) ;) (if_statement "if (pMVar15->connection_limit <= pMVar15->connections) {\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }" if (parenthesized_expression "(pMVar15->connection_limit <= pMVar15->connections)" ( (binary_expression "pMVar15->connection_limit <= pMVar15->connections" (field_expression "pMVar15->connection_limit" identifier -> field_identifier) <= (field_expression "pMVar15->connections" identifier -> field_identifier)) )) (compound_statement "{\n        do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);\n      }" { (do_statement "do {\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        } while (pMVar15->connection_limit <= pMVar15->connections);" do (compound_statement "{\n          if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;\n          if (uVar16 == 0) {\n            trap(7);\n          }\n          pMVar15 = pMVar18 + uVar4 % uVar16;\n          uVar4 = uVar4 + 1;\n        }" { (if_statement "if (client_socket + uVar16 == uVar4) goto LAB_00019ee8;" if (parenthesized_expression "(client_socket + uVar16 == uVar4)" ( (binary_expression "client_socket + uVar16 == uVar4" (binary_expression "client_socket + uVar16" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00019ee8;" goto statement_identifier ;)) (if_statement "if (uVar16 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "pMVar15 = pMVar18 + uVar4 % uVar16;" (assignment_expression "pMVar15 = pMVar18 + uVar4 % uVar16" identifier = (binary_expression "pMVar18 + uVar4 % uVar16" identifier + (binary_expression "uVar4 % uVar16" identifier % identifier))) ;) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pMVar15->connection_limit <= pMVar15->connections)" ( (binary_expression "pMVar15->connection_limit <= pMVar15->connections" (field_expression "pMVar15->connection_limit" identifier -> field_identifier) <= (field_expression "pMVar15->connections" identifier -> field_identifier)) )) ;) })) (expression_statement "unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck);" (assignment_expression "unaff_s5 = (MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck)" identifier = (cast_expression "(MHD_Daemon *)\n                 internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "internal_add_connection(pMVar15,client_socket,addr,addrlen,true,non_blck)" identifier (argument_list "(pMVar15,client_socket,addr,addrlen,true,non_blck)" ( identifier , identifier , identifier , identifier , true , identifier ))))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_00019ee8:\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" statement_identifier : (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;)) (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_0001a1dc;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;)) (expression_statement "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "uVar17 = 0x900;" (assignment_expression "uVar17 = 0x900" identifier = number_literal) ;) (labeled_statement "joined_r0x00019f14:\n    if (iVar5 == 9) goto LAB_0001aa44;" statement_identifier : (if_statement "if (iVar5 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(iVar5 == 9)" ( (binary_expression "iVar5 == 9" identifier == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;))) (labeled_statement "LAB_0001a1dc:\n    unaff_s5 = (MHD_Daemon *)0x0;" statement_identifier : (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*piVar6 = 0x17;" (assignment_expression "*piVar6 = 0x17" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (if_statement "if ((0x3ff < client_socket) &&\n     (pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,\n     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) goto LAB_0001a2ec;" if (parenthesized_expression "((0x3ff < client_socket) &&\n     (pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,\n     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))" ( (binary_expression "(0x3ff < client_socket) &&\n     (pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,\n     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" (parenthesized_expression "(0x3ff < client_socket)" ( (binary_expression "0x3ff < client_socket" number_literal < identifier) )) && (parenthesized_expression "(pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,\n     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" ( (comma_expression "pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c,\n     (daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG" (assignment_expression "pMVar10 = (MHD_Connection *)PTR_DAT_0003f05c" identifier = (cast_expression "(MHD_Connection *)PTR_DAT_0003f05c" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG" (parenthesized_expression "(daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL))" ( (binary_expression "daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)" (field_expression "daemon->options" identifier -> field_identifier) & (parenthesized_expression "(MHD_USE_EPOLL|MHD_USE_POLL)" ( (binary_expression "MHD_USE_EPOLL|MHD_USE_POLL" identifier | identifier) ))) )) == identifier)) ))) )) (goto_statement "goto LAB_0001a2ec;" goto statement_identifier ;)) (expression_statement "unaff_s5 = daemon;" (assignment_expression "unaff_s5 = daemon" identifier = identifier) ;) (if_statement "if (daemon->connections == daemon->connection_limit) {\nLAB_0001a190:\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x93d;\n    goto joined_r0x00019f14;\n  }" if (parenthesized_expression "(daemon->connections == daemon->connection_limit)" ( (binary_expression "daemon->connections == daemon->connection_limit" (field_expression "daemon->connections" identifier -> field_identifier) == (field_expression "daemon->connection_limit" identifier -> field_identifier)) )) (compound_statement "{\nLAB_0001a190:\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar5 == 0) goto LAB_0001a1dc;\n    iVar5 = *piVar6;\n    uVar17 = 0x93d;\n    goto joined_r0x00019f14;\n  }" { (labeled_statement "LAB_0001a190:\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc);" statement_identifier : (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x38dc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x38dc" identifier + number_literal) ))) ;)) (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;) (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_0001a1dc;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;)) (expression_statement "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "uVar17 = 0x93d;" (assignment_expression "uVar17 = 0x93d" identifier = number_literal) ;) (goto_statement "goto joined_r0x00019f14;" goto statement_identifier ;) })) (expression_statement "pMVar18 = daemon->master;" (assignment_expression "pMVar18 = daemon->master" identifier = (field_expression "daemon->master" identifier -> field_identifier)) ;) (while_statement "while (pMVar15 = pMVar18, pMVar15 != (MHD_Daemon *)0x0) {\n    unaff_s5 = pMVar15;\n    pMVar18 = pMVar15->master;\n  }" while (parenthesized_expression "(pMVar15 = pMVar18, pMVar15 != (MHD_Daemon *)0x0)" ( (comma_expression "pMVar15 = pMVar18, pMVar15 != (MHD_Daemon *)0x0" (assignment_expression "pMVar15 = pMVar18" identifier = identifier) , (binary_expression "pMVar15 != (MHD_Daemon *)0x0" identifier != (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n    unaff_s5 = pMVar15;\n    pMVar18 = pMVar15->master;\n  }" { (expression_statement "unaff_s5 = pMVar15;" (assignment_expression "unaff_s5 = pMVar15" identifier = identifier) ;) (expression_statement "pMVar18 = pMVar15->master;" (assignment_expression "pMVar18 = pMVar15->master" identifier = (field_expression "pMVar15->master" identifier -> field_identifier)) ;) })) (if_statement "if (unaff_s5->per_ip_connection_limit != 0) {\n    unaff_s8 = (MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar5 = MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8);\n    if (iVar5 != 0) {\n      pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar15;\n      iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);\n      if (puVar11 == (undefined4 *)0x0) {\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar15);\nLAB_0001a2ec:\n      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);\n      iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar6 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }" if (parenthesized_expression "(unaff_s5->per_ip_connection_limit != 0)" ( (binary_expression "unaff_s5->per_ip_connection_limit != 0" (field_expression "unaff_s5->per_ip_connection_limit" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    unaff_s8 = (MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;\n    iVar5 = MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8);\n    if (iVar5 != 0) {\n      pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar15;\n      iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);\n      if (puVar11 == (undefined4 *)0x0) {\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar15);\nLAB_0001a2ec:\n      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);\n      iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar6 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }" { (expression_statement "unaff_s8 = (MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18);" (assignment_expression "unaff_s8 = (MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18)" identifier = (cast_expression "(MHD_Connection *)(*(code *)PTR_malloc_0003f25c)(0x18)" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003f25c)(0x18)" (parenthesized_expression "(*(code *)PTR_malloc_0003f25c)" ( (pointer_expression "*(code *)PTR_malloc_0003f25c" * (cast_expression "(code *)PTR_malloc_0003f25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (unaff_s8 == (MHD_Connection *)0x0) goto LAB_0001a190;" if (parenthesized_expression "(unaff_s8 == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s8 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) (expression_statement "iVar5 = MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8);" (assignment_expression "iVar5 = MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8)" identifier = (call_expression "MHD_ip_addr_to_key(addr,addrlen,(MHD_IPCount *)unaff_s8)" identifier (argument_list "(addr,addrlen,(MHD_IPCount *)unaff_s8)" ( identifier , identifier , (cast_expression "(MHD_IPCount *)unaff_s8" ( (type_descriptor "MHD_IPCount *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n      pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar15;\n      iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);\n      if (puVar11 == (undefined4 *)0x0) {\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar15);\nLAB_0001a2ec:\n      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);\n      iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar6 = 0x16;\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;\n      pMVar18 = pMVar15;\n      iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();\n      if (iVar5 != 0) goto LAB_0001ab68;\n      puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);\n      if (puVar11 == (undefined4 *)0x0) {\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }\n      MHD_ip_count_unlock(pMVar15);\nLAB_0001a2ec:\n      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);\n      iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;\n      unaff_s5 = (MHD_Daemon *)0x0;\n      *piVar6 = 0x16;\n      goto LAB_0001a1e8;\n    }" { (expression_statement "pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex;" (assignment_expression "pMVar15 = (MHD_Daemon *)&unaff_s5->per_ip_connection_mutex" identifier = (cast_expression "(MHD_Daemon *)&unaff_s5->per_ip_connection_mutex" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s5->per_ip_connection_mutex" & (field_expression "unaff_s5->per_ip_connection_mutex" identifier -> field_identifier)))) ;) (expression_statement "pMVar18 = pMVar15;" (assignment_expression "pMVar18 = pMVar15" identifier = identifier) ;) (expression_statement "iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)();" (assignment_expression "iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)()" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)()" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0001ab68;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab68;" goto statement_identifier ;)) (expression_statement "puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054);" (assignment_expression "puVar11 = (undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054)" identifier = (cast_expression "(undefined4 *)\n                (*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_tsearch_0003f214)\n                          (unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054)" (parenthesized_expression "(*(code *)PTR_tsearch_0003f214)" ( (pointer_expression "*(code *)PTR_tsearch_0003f214" * (cast_expression "(code *)PTR_tsearch_0003f214" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8,&unaff_s5->per_ip_connection_count,PTR_LAB_0003f084 + -0x7054)" ( identifier , (pointer_expression "&unaff_s5->per_ip_connection_count" & (field_expression "unaff_s5->per_ip_connection_count" identifier -> field_identifier)) , (binary_expression "PTR_LAB_0003f084 + -0x7054" identifier + number_literal) ))))) ;) (if_statement "if (puVar11 == (undefined4 *)0x0) {\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }" if (parenthesized_expression "(puVar11 == (undefined4 *)0x0)" ( (binary_expression "puVar11 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);\n        MHD_DLOG(unaff_s5,(char *)pMVar10);\n        iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n        if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }" { (expression_statement "pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904);" (assignment_expression "pMVar10 = (MHD_Connection *)(PTR_DAT_0003f05c + -0x3904)" identifier = (cast_expression "(MHD_Connection *)(PTR_DAT_0003f05c + -0x3904)" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0003f05c + -0x3904)" ( (binary_expression "PTR_DAT_0003f05c + -0x3904" identifier + number_literal) )))) ;) (expression_statement "MHD_DLOG(unaff_s5,(char *)pMVar10);" (call_expression "MHD_DLOG(unaff_s5,(char *)pMVar10)" identifier (argument_list "(unaff_s5,(char *)pMVar10)" ( identifier , (cast_expression "(char *)pMVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();" (assignment_expression "iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)()" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)()" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }" { (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;) })) }) (else_clause "else {\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }" else (compound_statement "{\n        pMVar10 = (MHD_Connection *)*puVar11;\n        if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }\n      }" { (expression_statement "pMVar10 = (MHD_Connection *)*puVar11;" (assignment_expression "pMVar10 = (MHD_Connection *)*puVar11" identifier = (cast_expression "(MHD_Connection *)*puVar11" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;) (if_statement "if (unaff_s8 != pMVar10) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }" if (parenthesized_expression "(unaff_s8 != pMVar10)" ( (binary_expression "unaff_s8 != pMVar10" identifier != identifier) )) (compound_statement "{\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }" { (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (if_statement "if (pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit) {\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }" if (parenthesized_expression "(pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit)" ( (binary_expression "pMVar10->prevX < (MHD_Connection *)unaff_s5->per_ip_connection_limit" (field_expression "pMVar10->prevX" identifier -> field_identifier) < (cast_expression "(MHD_Connection *)unaff_s5->per_ip_connection_limit" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s5->per_ip_connection_limit" identifier -> field_identifier))) )) (compound_statement "{\n          pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);\n          iVar5 = (*(code *)puVar1)();\n          if (iVar5 == 0) goto LAB_00019f70;\n        }" { (expression_statement "pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1);" (assignment_expression "pMVar10->prevX = (MHD_Connection *)((int)&pMVar10->prevX->nextE + 1)" (field_expression "pMVar10->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)((int)&pMVar10->prevX->nextE + 1)" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pMVar10->prevX->nextE + 1)" ( (binary_expression "(int)&pMVar10->prevX->nextE + 1" (cast_expression "(int)&pMVar10->prevX->nextE" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pMVar10->prevX->nextE" & (field_expression "pMVar10->prevX->nextE" (field_expression "pMVar10->prevX" identifier -> field_identifier) -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar5 = (*(code *)puVar1)();" (assignment_expression "iVar5 = (*(code *)puVar1)()" identifier = (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) goto LAB_00019f70;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019f70;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }" else (compound_statement "{\n          iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();\n          if (iVar5 == 0) goto LAB_0001a190;\n        }" { (expression_statement "iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)();" (assignment_expression "iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)()" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)()" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0001a190;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) }))) }))) (expression_statement "MHD_ip_count_unlock(pMVar15);" (call_expression "MHD_ip_count_unlock(pMVar15)" identifier (argument_list "(pMVar15)" ( identifier ))) ;) (labeled_statement "LAB_0001a2ec:\n      MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);" statement_identifier : (expression_statement "MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400);" (call_expression "MHD_DLOG(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400)" identifier (argument_list "(daemon,(char *)&pMVar10[-0x3a].current_chunk_size,client_socket,0x400)" ( identifier , (cast_expression "(char *)&pMVar10[-0x3a].current_chunk_size" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar10[-0x3a].current_chunk_size" & (field_expression "pMVar10[-0x3a].current_chunk_size" (subscript_expression "pMVar10[-0x3a]" identifier [ number_literal ]) . field_identifier))) , identifier , number_literal ))) ;)) (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;) (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar5 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;" if (parenthesized_expression "((iVar5 != 0) && (*piVar6 == 9))" ( (binary_expression "(iVar5 != 0) && (*piVar6 == 9)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*piVar6 == 9)" ( (binary_expression "*piVar6 == 9" (pointer_expression "*piVar6" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_0001ab78;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*piVar6 = 0x16;" (assignment_expression "*piVar6 = 0x16" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (labeled_statement "LAB_00019f70:\n  if ((daemon->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if (iVar5 != 0) {\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar17 = 0x950;\n      if (*piVar6 == 9) goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    goto LAB_0001a1e8;\n  }" statement_identifier : (if_statement "if ((daemon->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0)) {\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if (iVar5 != 0) {\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar17 = 0x950;\n      if (*piVar6 == 9) goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((daemon->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0))" ( (binary_expression "(daemon->apc != (MHD_AcceptPolicyCallback)0x0) &&\n     (unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0)" (parenthesized_expression "(daemon->apc != (MHD_AcceptPolicyCallback)0x0)" ( (binary_expression "daemon->apc != (MHD_AcceptPolicyCallback)0x0" (field_expression "daemon->apc" identifier -> field_identifier) != (cast_expression "(MHD_AcceptPolicyCallback)0x0" ( (type_descriptor "MHD_AcceptPolicyCallback" type_identifier) ) number_literal)) )) && (parenthesized_expression "(unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0)" ( (comma_expression "unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),\n     unaff_s5 == (MHD_Daemon *)0x0" (assignment_expression "unaff_s5 = (MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen)" identifier = (cast_expression "(MHD_Daemon *)(*daemon->apc)(daemon->apc_cls,addr,addrlen)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*daemon->apc)(daemon->apc_cls,addr,addrlen)" (parenthesized_expression "(*daemon->apc)" ( (pointer_expression "*daemon->apc" * (field_expression "daemon->apc" identifier -> field_identifier)) )) (argument_list "(daemon->apc_cls,addr,addrlen)" ( (field_expression "daemon->apc_cls" identifier -> field_identifier) , identifier , identifier ))))) , (binary_expression "unaff_s5 == (MHD_Daemon *)0x0" identifier == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if (iVar5 != 0) {\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar17 = 0x950;\n      if (*piVar6 == 9) goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    goto LAB_0001a1e8;\n  }" { (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar17 = 0x950;\n      if (*piVar6 == 9) goto LAB_0001aa44;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar17 = 0x950;\n      if (*piVar6 == 9) goto LAB_0001aa44;\n    }" { (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar17 = 0x950;" (assignment_expression "uVar17 = 0x950" identifier = number_literal) ;) (if_statement "if (*piVar6 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(*piVar6 == 9)" ( (binary_expression "*piVar6 == 9" (pointer_expression "*piVar6" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) })) (expression_statement "MHD_ip_limit_del(daemon,addr,addrlen);" (call_expression "MHD_ip_limit_del(daemon,addr,addrlen)" identifier (argument_list "(daemon,addr,addrlen)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) }))) (expression_statement "unaff_s8 = (MHD_Connection *)(*(code *)PTR_calloc_0003f144)(1,0x100);" (assignment_expression "unaff_s8 = (MHD_Connection *)(*(code *)PTR_calloc_0003f144)(1,0x100)" identifier = (cast_expression "(MHD_Connection *)(*(code *)PTR_calloc_0003f144)(1,0x100)" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_0003f144)(1,0x100)" (parenthesized_expression "(*(code *)PTR_calloc_0003f144)" ( (pointer_expression "*(code *)PTR_calloc_0003f144" * (cast_expression "(code *)PTR_calloc_0003f144" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x100)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s8 == (MHD_Connection *)0x0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(unaff_s8 == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s8 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar19 = (MHD_mutex_ *)*piVar6;" (assignment_expression "pMVar19 = (MHD_mutex_ *)*piVar6" identifier = (cast_expression "(MHD_mutex_ *)*piVar6" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);" (assignment_expression "uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(pMVar19)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar19)" ( identifier )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x389c,uVar17)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;) (if_statement "if ((iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9))" ( (binary_expression "(iVar5 != 0) && (uVar17 = 0x962, *piVar6 == 9)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar17 = 0x962, *piVar6 == 9)" ( (comma_expression "uVar17 = 0x962, *piVar6 == 9" (assignment_expression "uVar17 = 0x962" identifier = number_literal) , (binary_expression "*piVar6 == 9" (pointer_expression "*piVar6" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_ip_limit_del(daemon,addr,addrlen);" (call_expression "MHD_ip_limit_del(daemon,addr,addrlen)" identifier (argument_list "(daemon,addr,addrlen)" ( identifier , identifier , identifier ))) ;) (expression_statement "*piVar6 = (int)pMVar19;" (assignment_expression "*piVar6 = (int)pMVar19" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)pMVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "pMVar7 = MHD_pool_create(daemon->pool_size);" (assignment_expression "pMVar7 = MHD_pool_create(daemon->pool_size)" identifier = (call_expression "MHD_pool_create(daemon->pool_size)" identifier (argument_list "(daemon->pool_size)" ( (field_expression "daemon->pool_size" identifier -> field_identifier) )))) ;) (expression_statement "unaff_s8->pool = pMVar7;" (assignment_expression "unaff_s8->pool = pMVar7" (field_expression "unaff_s8->pool" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar1 = PTR_malloc_0003f25c;" (assignment_expression "puVar1 = PTR_malloc_0003f25c" identifier = identifier) ;) (if_statement "if (pMVar7 == (MemoryPool *)0x0) {\n    pMVar19 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = (*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (pMVar19->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(pMVar7 == (MemoryPool *)0x0)" ( (binary_expression "pMVar7 == (MemoryPool *)0x0" identifier == (cast_expression "(MemoryPool *)0x0" ( (type_descriptor "MemoryPool *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pMVar19 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = (*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (pMVar19->__data).__lock = 0xc;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "pMVar19 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "pMVar19 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar17 = (*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock);" (assignment_expression "uVar17 = (*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)((pMVar19->__data).__lock)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((pMVar19->__data).__lock)" ( (field_expression "(pMVar19->__data).__lock" (parenthesized_expression "(pMVar19->__data)" ( (field_expression "pMVar19->__data" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x389c,uVar17)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;) (if_statement "if ((iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9))" ( (binary_expression "(iVar5 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar17 = 0x971, (pMVar19->__data).__lock == 9)" ( (comma_expression "uVar17 = 0x971, (pMVar19->__data).__lock == 9" (assignment_expression "uVar17 = 0x971" identifier = number_literal) , (binary_expression "(pMVar19->__data).__lock == 9" (field_expression "(pMVar19->__data).__lock" (parenthesized_expression "(pMVar19->__data)" ( (field_expression "pMVar19->__data" identifier -> field_identifier) )) . field_identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_ip_limit_del(daemon,addr,addrlen);" (call_expression "MHD_ip_limit_del(daemon,addr,addrlen)" identifier (argument_list "(daemon,addr,addrlen)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(pMVar19->__data).__lock = 0xc;" (assignment_expression "(pMVar19->__data).__lock = 0xc" (field_expression "(pMVar19->__data).__lock" (parenthesized_expression "(pMVar19->__data)" ( (field_expression "pMVar19->__data" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "unaff_s8->connection_timeout = daemon->connection_timeout;" (assignment_expression "unaff_s8->connection_timeout = daemon->connection_timeout" (field_expression "unaff_s8->connection_timeout" identifier -> field_identifier) = (field_expression "daemon->connection_timeout" identifier -> field_identifier)) ;) (expression_statement "psVar8 = (sockaddr *)(*(code *)puVar1)(addrlen);" (assignment_expression "psVar8 = (sockaddr *)(*(code *)puVar1)(addrlen)" identifier = (cast_expression "(sockaddr *)(*(code *)puVar1)(addrlen)" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)(addrlen)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(addrlen)" ( identifier ))))) ;) (expression_statement "unaff_s8->addr = psVar8;" (assignment_expression "unaff_s8->addr = psVar8" (field_expression "unaff_s8->addr" identifier -> field_identifier) = identifier) ;) (if_statement "if (psVar8 == (sockaddr *)0x0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    MHD_pool_destroy(unaff_s8->pool);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(psVar8 == (sockaddr *)0x0)" ( (binary_expression "psVar8 == (sockaddr *)0x0" identifier == (cast_expression "(sockaddr *)0x0" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    pMVar19 = (MHD_mutex_ *)*piVar6;\n    uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9)) goto LAB_0001aa44;\n    unaff_s5 = (MHD_Daemon *)0x0;\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    MHD_pool_destroy(unaff_s8->pool);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar6 = (int)pMVar19;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pMVar19 = (MHD_mutex_ *)*piVar6;" (assignment_expression "pMVar19 = (MHD_mutex_ *)*piVar6" identifier = (cast_expression "(MHD_mutex_ *)*piVar6" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19);" (assignment_expression "uVar17 = (*(code *)PTR_strerror_0003f254)(pMVar19)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(pMVar19)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar19)" ( identifier )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x389c,uVar17)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x389c,uVar17)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;) (if_statement "if ((iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9))" ( (binary_expression "(iVar5 != 0) && (uVar17 = 0x985, *piVar6 == 9)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar17 = 0x985, *piVar6 == 9)" ( (comma_expression "uVar17 = 0x985, *piVar6 == 9" (assignment_expression "uVar17 = 0x985" identifier = number_literal) , (binary_expression "*piVar6 == 9" (pointer_expression "*piVar6" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_ip_limit_del(daemon,addr,addrlen);" (call_expression "MHD_ip_limit_del(daemon,addr,addrlen)" identifier (argument_list "(daemon,addr,addrlen)" ( identifier , identifier , identifier ))) ;) (expression_statement "MHD_pool_destroy(unaff_s8->pool);" (call_expression "MHD_pool_destroy(unaff_s8->pool)" identifier (argument_list "(unaff_s8->pool)" ( (field_expression "unaff_s8->pool" identifier -> field_identifier) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar6 = (int)pMVar19;" (assignment_expression "*piVar6 = (int)pMVar19" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)pMVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_memcpy_0003f2f0)(psVar8,addr,addrlen);" (call_expression "(*(code *)PTR_memcpy_0003f2f0)(psVar8,addr,addrlen)" (parenthesized_expression "(*(code *)PTR_memcpy_0003f2f0)" ( (pointer_expression "*(code *)PTR_memcpy_0003f2f0" * (cast_expression "(code *)PTR_memcpy_0003f2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar8,addr,addrlen)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s8->addr_len = addrlen;" (assignment_expression "unaff_s8->addr_len = addrlen" (field_expression "unaff_s8->addr_len" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s8->socket_fd = client_socket;" (assignment_expression "unaff_s8->socket_fd = client_socket" (field_expression "unaff_s8->socket_fd" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s8->sk_nonblck = non_blck;" (assignment_expression "unaff_s8->sk_nonblck = non_blck" (field_expression "unaff_s8->sk_nonblck" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s8->daemon = daemon;" (assignment_expression "unaff_s8->daemon = daemon" (field_expression "unaff_s8->daemon" identifier -> field_identifier) = identifier) ;) (expression_statement "tVar9 = MHD_monotonic_sec_counter();" (assignment_expression "tVar9 = MHD_monotonic_sec_counter()" identifier = (call_expression "MHD_monotonic_sec_counter()" identifier (argument_list "()" ( )))) ;) (expression_statement "MVar12 = daemon->options;" (assignment_expression "MVar12 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->last_activity = tVar9;" (assignment_expression "unaff_s8->last_activity = tVar9" (field_expression "unaff_s8->last_activity" identifier -> field_identifier) = identifier) ;) (if_statement "if ((MVar12 & MHD_USE_SSL) == MHD_NO_FLAG) {\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar19 = &daemon->cleanup_connection_mutex;\n    iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);\n    uVar17 = 0x9e4;\n    if (iVar5 != 0) goto LAB_0001ab44;\n    if (daemon->connections < daemon->connection_limit) {\n      daemon->connections = daemon->connections + 1;\n      if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }\n      pMVar10 = daemon->connections_head;\n      pMVar13 = daemon->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar10;\n      if (pMVar13 == (MHD_Connection *)0x0) {\n        daemon->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar10->prev = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      daemon->connections_head = unaff_s8;\n      iVar5 = (*(code *)puVar1)(pMVar19);\n      uVar17 = 0xa01;\n      if (iVar5 != 0) goto LAB_0001ab1c;\n      if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar12 = daemon->options;\n      if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      event.events = 0x80000007;\n      event.data.fd = (int)unaff_s8;\n      iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);\n      if (iVar5 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = (MHD_Daemon *)*piVar6;\n      uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    pMVar19 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache);\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8);\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);\n      if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (daemon->cred_type == GNUTLS_CRD_PSK) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))\n    {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" if (parenthesized_expression "((MVar12 & MHD_USE_SSL) == MHD_NO_FLAG)" ( (binary_expression "(MVar12 & MHD_USE_SSL) == MHD_NO_FLAG" (parenthesized_expression "(MVar12 & MHD_USE_SSL)" ( (binary_expression "MVar12 & MHD_USE_SSL" identifier & identifier) )) == identifier) )) (compound_statement "{\n    MHD_set_http_callbacks_(unaff_s8);\nLAB_0001a03c:\n    pMVar19 = &daemon->cleanup_connection_mutex;\n    iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);\n    uVar17 = 0x9e4;\n    if (iVar5 != 0) goto LAB_0001ab44;\n    if (daemon->connections < daemon->connection_limit) {\n      daemon->connections = daemon->connections + 1;\n      if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }\n      pMVar10 = daemon->connections_head;\n      pMVar13 = daemon->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar10;\n      if (pMVar13 == (MHD_Connection *)0x0) {\n        daemon->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar10->prev = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      daemon->connections_head = unaff_s8;\n      iVar5 = (*(code *)puVar1)(pMVar19);\n      uVar17 = 0xa01;\n      if (iVar5 != 0) goto LAB_0001ab1c;\n      if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar12 = daemon->options;\n      if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      event.events = 0x80000007;\n      event.data.fd = (int)unaff_s8;\n      iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);\n      if (iVar5 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = (MHD_Daemon *)*piVar6;\n      uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);\n      goto LAB_0001a72c;\n    }\n  }" { (expression_statement "MHD_set_http_callbacks_(unaff_s8);" (call_expression "MHD_set_http_callbacks_(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (labeled_statement "LAB_0001a03c:\n    pMVar19 = &daemon->cleanup_connection_mutex;" statement_identifier : (expression_statement "pMVar19 = &daemon->cleanup_connection_mutex;" (assignment_expression "pMVar19 = &daemon->cleanup_connection_mutex" identifier = (pointer_expression "&daemon->cleanup_connection_mutex" & (field_expression "daemon->cleanup_connection_mutex" identifier -> field_identifier))) ;)) (expression_statement "iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);" (assignment_expression "iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar19)" ( identifier )))) ;) (expression_statement "uVar17 = 0x9e4;" (assignment_expression "uVar17 = 0x9e4" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) goto LAB_0001ab44;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab44;" goto statement_identifier ;)) (if_statement "if (daemon->connections < daemon->connection_limit) {\n      daemon->connections = daemon->connections + 1;\n      if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }\n      pMVar10 = daemon->connections_head;\n      pMVar13 = daemon->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar10;\n      if (pMVar13 == (MHD_Connection *)0x0) {\n        daemon->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar10->prev = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      daemon->connections_head = unaff_s8;\n      iVar5 = (*(code *)puVar1)(pMVar19);\n      uVar17 = 0xa01;\n      if (iVar5 != 0) goto LAB_0001ab1c;\n      if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar12 = daemon->options;\n      if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      event.events = 0x80000007;\n      event.data.fd = (int)unaff_s8;\n      iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);\n      if (iVar5 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = (MHD_Daemon *)*piVar6;\n      uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);\n      goto LAB_0001a72c;\n    }" if (parenthesized_expression "(daemon->connections < daemon->connection_limit)" ( (binary_expression "daemon->connections < daemon->connection_limit" (field_expression "daemon->connections" identifier -> field_identifier) < (field_expression "daemon->connection_limit" identifier -> field_identifier)) )) (compound_statement "{\n      daemon->connections = daemon->connections + 1;\n      if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }\n      pMVar10 = daemon->connections_head;\n      pMVar13 = daemon->connections_tail;\n      unaff_s8->prev = (MHD_Connection *)0x0;\n      unaff_s8->next = pMVar10;\n      if (pMVar13 == (MHD_Connection *)0x0) {\n        daemon->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar10->prev = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      daemon->connections_head = unaff_s8;\n      iVar5 = (*(code *)puVar1)(pMVar19);\n      uVar17 = 0xa01;\n      if (iVar5 != 0) goto LAB_0001ab1c;\n      if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }\n      MVar12 = daemon->options;\n      if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      event.events = 0x80000007;\n      event.data.fd = (int)unaff_s8;\n      iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);\n      if (iVar5 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }\n      piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = (MHD_Daemon *)*piVar6;\n      uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);\n      goto LAB_0001a72c;\n    }" { (expression_statement "daemon->connections = daemon->connections + 1;" (assignment_expression "daemon->connections = daemon->connections + 1" (field_expression "daemon->connections" identifier -> field_identifier) = (binary_expression "daemon->connections + 1" (field_expression "daemon->connections" identifier -> field_identifier) + number_literal)) ;) (if_statement "if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }" if (parenthesized_expression "((daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "daemon->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) == identifier) )) (compound_statement "{\n        pMVar10 = daemon->normal_timeout_head;\n        pMVar13 = daemon->normal_timeout_tail;\n        unaff_s8->prevX = (MHD_Connection *)0x0;\n        unaff_s8->nextX = pMVar10;\n        if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }\n        daemon->normal_timeout_head = unaff_s8;\n      }" { (expression_statement "pMVar10 = daemon->normal_timeout_head;" (assignment_expression "pMVar10 = daemon->normal_timeout_head" identifier = (field_expression "daemon->normal_timeout_head" identifier -> field_identifier)) ;) (expression_statement "pMVar13 = daemon->normal_timeout_tail;" (assignment_expression "pMVar13 = daemon->normal_timeout_tail" identifier = (field_expression "daemon->normal_timeout_tail" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->prevX = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prevX = (MHD_Connection *)0x0" (field_expression "unaff_s8->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->nextX = pMVar10;" (assignment_expression "unaff_s8->nextX = pMVar10" (field_expression "unaff_s8->nextX" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar13 == (MHD_Connection *)0x0) {\n          daemon->normal_timeout_tail = unaff_s8;\n        }\n        else {\n          pMVar10->prevX = unaff_s8;\n        }" if (parenthesized_expression "(pMVar13 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar13 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          daemon->normal_timeout_tail = unaff_s8;\n        }" { (expression_statement "daemon->normal_timeout_tail = unaff_s8;" (assignment_expression "daemon->normal_timeout_tail = unaff_s8" (field_expression "daemon->normal_timeout_tail" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pMVar10->prevX = unaff_s8;\n        }" else (compound_statement "{\n          pMVar10->prevX = unaff_s8;\n        }" { (expression_statement "pMVar10->prevX = unaff_s8;" (assignment_expression "pMVar10->prevX = unaff_s8" (field_expression "pMVar10->prevX" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "daemon->normal_timeout_head = unaff_s8;" (assignment_expression "daemon->normal_timeout_head = unaff_s8" (field_expression "daemon->normal_timeout_head" identifier -> field_identifier) = identifier) ;) })) (expression_statement "pMVar10 = daemon->connections_head;" (assignment_expression "pMVar10 = daemon->connections_head" identifier = (field_expression "daemon->connections_head" identifier -> field_identifier)) ;) (expression_statement "pMVar13 = daemon->connections_tail;" (assignment_expression "pMVar13 = daemon->connections_tail" identifier = (field_expression "daemon->connections_tail" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->prev = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prev = (MHD_Connection *)0x0" (field_expression "unaff_s8->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->next = pMVar10;" (assignment_expression "unaff_s8->next = pMVar10" (field_expression "unaff_s8->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar13 == (MHD_Connection *)0x0) {\n        daemon->connections_tail = unaff_s8;\n      }\n      else {\n        pMVar10->prev = unaff_s8;\n      }" if (parenthesized_expression "(pMVar13 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar13 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        daemon->connections_tail = unaff_s8;\n      }" { (expression_statement "daemon->connections_tail = unaff_s8;" (assignment_expression "daemon->connections_tail = unaff_s8" (field_expression "daemon->connections_tail" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n        pMVar10->prev = unaff_s8;\n      }" else (compound_statement "{\n        pMVar10->prev = unaff_s8;\n      }" { (expression_statement "pMVar10->prev = unaff_s8;" (assignment_expression "pMVar10->prev = unaff_s8" (field_expression "pMVar10->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (expression_statement "daemon->connections_head = unaff_s8;" (assignment_expression "daemon->connections_head = unaff_s8" (field_expression "daemon->connections_head" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar5 = (*(code *)puVar1)(pMVar19);" (assignment_expression "iVar5 = (*(code *)puVar1)(pMVar19)" identifier = (call_expression "(*(code *)puVar1)(pMVar19)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar19)" ( identifier )))) ;) (expression_statement "uVar17 = 0xa01;" (assignment_expression "uVar17 = 0xa01" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (if_statement "if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }" if (parenthesized_expression "(daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0)" ( (binary_expression "daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0" (field_expression "daemon->notify_connection" identifier -> field_identifier) != (cast_expression "(MHD_NotifyConnectionCallback)0x0" ( (type_descriptor "MHD_NotifyConnectionCallback" type_identifier) ) number_literal)) )) (compound_statement "{\n        (*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);\n      }" { (expression_statement "(*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED);" (call_expression "(*daemon->notify_connection)\n                  (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED)" (parenthesized_expression "(*daemon->notify_connection)" ( (pointer_expression "*daemon->notify_connection" * (field_expression "daemon->notify_connection" identifier -> field_identifier)) )) (argument_list "(daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n                   MHD_CONNECTION_NOTIFY_STARTED)" ( (field_expression "daemon->notify_connection_cls" identifier -> field_identifier) , identifier , (pointer_expression "&unaff_s8->socket_context" & (field_expression "unaff_s8->socket_context" identifier -> field_identifier)) , identifier ))) ;) })) (expression_statement "MVar12 = daemon->options;" (assignment_expression "MVar12 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (if_statement "if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" if (parenthesized_expression "((MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(MVar12 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(MVar12 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar12 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) == identifier) )) (compound_statement "{\n        MVar14 = (daemon->pid).ID;\n        (unaff_s8->pid).handle = (daemon->pid).handle;\n        (unaff_s8->pid).ID = MVar14;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "MVar14 = (daemon->pid).ID;" (assignment_expression "MVar14 = (daemon->pid).ID" identifier = (field_expression "(daemon->pid).ID" (parenthesized_expression "(daemon->pid)" ( (field_expression "daemon->pid" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(unaff_s8->pid).handle = (daemon->pid).handle;" (assignment_expression "(unaff_s8->pid).handle = (daemon->pid).handle" (field_expression "(unaff_s8->pid).handle" (parenthesized_expression "(unaff_s8->pid)" ( (field_expression "unaff_s8->pid" identifier -> field_identifier) )) . field_identifier) = (field_expression "(daemon->pid).handle" (parenthesized_expression "(daemon->pid)" ( (field_expression "daemon->pid" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(unaff_s8->pid).ID = MVar14;" (assignment_expression "(unaff_s8->pid).ID = MVar14" (field_expression "(unaff_s8->pid).ID" (parenthesized_expression "(unaff_s8->pid)" ( (field_expression "unaff_s8->pid" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG)" ( (binary_expression "(MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG" (parenthesized_expression "(MVar12 & MHD_USE_EPOLL)" ( (binary_expression "MVar12 & MHD_USE_EPOLL" identifier & identifier) )) == identifier) )) (compound_statement "{\nLAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          if (!external_add) goto LAB_0001a1e8;\n          iVar5 = (daemon->itc).fd;\n          if (iVar5 == -1) goto LAB_0001a1e8;\n          iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;\n          goto LAB_0001a1e8;\n        }" { (labeled_statement "LAB_0001a9b8:\n          unaff_s5 = (MHD_Daemon *)0x1;" statement_identifier : (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (!external_add) goto LAB_0001a1e8;" if (parenthesized_expression "(!external_add)" ( (unary_expression "!external_add" ! identifier) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (expression_statement "iVar5 = (daemon->itc).fd;" (assignment_expression "iVar5 = (daemon->itc).fd" identifier = (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (iVar5 == -1) goto LAB_0001a1e8;" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (expression_statement "iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8);" (assignment_expression "iVar5 = (*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8)" identifier = (call_expression "(*(code *)PTR_write_0003f220)(iVar5,PTR_DAT_0003f05c + -0x28d8,8)" (parenthesized_expression "(*(code *)PTR_write_0003f220)" ( (pointer_expression "*(code *)PTR_write_0003f220" * (cast_expression "(code *)PTR_write_0003f220" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,PTR_DAT_0003f05c + -0x28d8,8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x28d8" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "((iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb))" ( (binary_expression "(iVar5 < 1) &&\n             (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)" (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)" ( (comma_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 != 0xb" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar6 != 0xb" (pointer_expression "*piVar6" * identifier) != number_literal)) ))) )) (compound_statement "{\n            unaff_s5 = (MHD_Daemon *)0x1;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }" { (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x37f4)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x37f4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x37f4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a8dc:\n          unaff_s5 = (MHD_Daemon *)0x1;" statement_identifier : (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" else (compound_statement "{\n        iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);\n        if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }\n        MVar12 = daemon->options;\n        if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" { (expression_statement "iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8);" (assignment_expression "iVar5 = MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8)" identifier = (call_expression "MHD_create_named_thread_\n                          (&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8)" identifier (argument_list "(&unaff_s8->pid,PTR_DAT_0003f05c + -0x3824,daemon->thread_stack_size,\n                           (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c),unaff_s8)" ( (pointer_expression "&unaff_s8->pid" & (field_expression "unaff_s8->pid" identifier -> field_identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x3824" identifier + number_literal) , (field_expression "daemon->thread_stack_size" identifier -> field_identifier) , (call_expression "(MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -0x445c)" (parenthesized_expression "(MHD_THREAD_START_ROUTINE_)" ( identifier )) (argument_list "(PTR_LAB_0003f084 + -0x445c)" ( (binary_expression "PTR_LAB_0003f084 + -0x445c" identifier + number_literal) ))) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = (MHD_Daemon *)*piVar6;\n          uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);\n          goto LAB_0001a72c;\n        }" { (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)*piVar6;" (assignment_expression "unaff_s5 = (MHD_Daemon *)*piVar6" identifier = (cast_expression "(MHD_Daemon *)*piVar6" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);" (assignment_expression "uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3814,uVar17)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x3814,uVar17)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x3814" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) (expression_statement "MVar12 = daemon->options;" (assignment_expression "MVar12 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (if_statement "if ((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" if (parenthesized_expression "((MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG)" ( (binary_expression "(MVar12 & MHD_USE_EPOLL) == MHD_NO_FLAG" (parenthesized_expression "(MVar12 & MHD_USE_EPOLL)" ( (binary_expression "MVar12 & MHD_USE_EPOLL" identifier & identifier) )) == identifier) )) (compound_statement "{\n          if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" { (if_statement "if ((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a8dc;" if (parenthesized_expression "((MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(MVar12 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(MVar12 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar12 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) != identifier) )) (goto_statement "goto LAB_0001a8dc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a9b8;" goto statement_identifier ;) })) }))) (if_statement "if (((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)) {\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add))" ( (binary_expression "((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG) && (!external_add)" (parenthesized_expression "((MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG)" ( (binary_expression "(MVar12 & MHD_USE_EPOLL_TURBO) != MHD_NO_FLAG" (parenthesized_expression "(MVar12 & MHD_USE_EPOLL_TURBO)" ( (binary_expression "MVar12 & MHD_USE_EPOLL_TURBO" identifier & identifier) )) != identifier) )) && (parenthesized_expression "(!external_add)" ( (unary_expression "!external_add" ! identifier) ))) )) (compound_statement "{\n        pMVar10 = daemon->eready_head;\n        pMVar13 = daemon->eready_tail;\n        unaff_s8->prevE = (MHD_Connection *)0x0;\n        unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;\n        unaff_s8->nextE = pMVar10;\n        if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        daemon->eready_tail = unaff_s8;\n        unaff_s5 = (MHD_Daemon *)0x1;\n        daemon->eready_head = unaff_s8;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "pMVar10 = daemon->eready_head;" (assignment_expression "pMVar10 = daemon->eready_head" identifier = (field_expression "daemon->eready_head" identifier -> field_identifier)) ;) (expression_statement "pMVar13 = daemon->eready_tail;" (assignment_expression "pMVar13 = daemon->eready_tail" identifier = (field_expression "daemon->eready_tail" identifier -> field_identifier)) ;) (expression_statement "unaff_s8->prevE = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prevE = (MHD_Connection *)0x0" (field_expression "unaff_s8->prevE" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)\n        ;" (assignment_expression "unaff_s8->epoll_state =\n             unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" (field_expression "unaff_s8->epoll_state" identifier -> field_identifier) = (binary_expression "unaff_s8->epoll_state |\n             (MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" (field_expression "unaff_s8->epoll_state" identifier -> field_identifier) | (parenthesized_expression "(MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY)" ( (binary_expression "MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY|MHD_EPOLL_STATE_READ_READY" (binary_expression "MHD_EPOLL_STATE_IN_EREADY_EDLL|MHD_EPOLL_STATE_WRITE_READY" identifier | identifier) | identifier) )))) ;) (expression_statement "unaff_s8->nextE = pMVar10;" (assignment_expression "unaff_s8->nextE = pMVar10" (field_expression "unaff_s8->nextE" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar13 != (MHD_Connection *)0x0) {\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "(pMVar13 != (MHD_Connection *)0x0)" ( (binary_expression "pMVar13 != (MHD_Connection *)0x0" identifier != (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pMVar10->prevE = unaff_s8;\n          unaff_s5 = (MHD_Daemon *)0x1;\n          daemon->eready_head = unaff_s8;\n          goto LAB_0001a1e8;\n        }" { (expression_statement "pMVar10->prevE = unaff_s8;" (assignment_expression "pMVar10->prevE = unaff_s8" (field_expression "pMVar10->prevE" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "daemon->eready_head = unaff_s8;" (assignment_expression "daemon->eready_head = unaff_s8" (field_expression "daemon->eready_head" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "daemon->eready_tail = unaff_s8;" (assignment_expression "daemon->eready_tail = unaff_s8" (field_expression "daemon->eready_tail" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "daemon->eready_head = unaff_s8;" (assignment_expression "daemon->eready_head = unaff_s8" (field_expression "daemon->eready_head" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "event.events = 0x80000007;" (assignment_expression "event.events = 0x80000007" (field_expression "event.events" identifier . field_identifier) = number_literal) ;) (expression_statement "event.data.fd = (int)unaff_s8;" (assignment_expression "event.data.fd = (int)unaff_s8" (field_expression "event.data.fd" (field_expression "event.data" identifier . field_identifier) . field_identifier) = (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event);" (assignment_expression "iVar5 = (*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,client_socket,&event)" (parenthesized_expression "(*(code *)PTR_epoll_ctl_0003f278)" ( (pointer_expression "*(code *)PTR_epoll_ctl_0003f278" * (cast_expression "(code *)PTR_epoll_ctl_0003f278" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->epoll_fd,1,client_socket,&event)" ( (field_expression "daemon->epoll_fd" identifier -> field_identifier) , number_literal , identifier , (pointer_expression "&event" & identifier) )))) ;) (if_statement "if (iVar5 == 0) {\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_s5 = (MHD_Daemon *)0x1;\n        unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "unaff_s5 = (MHD_Daemon *)0x1;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x1" identifier = (cast_expression "(MHD_Daemon *)0x1" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET;" (assignment_expression "unaff_s8->epoll_state = unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET" (field_expression "unaff_s8->epoll_state" identifier -> field_identifier) = (binary_expression "unaff_s8->epoll_state | MHD_EPOLL_STATE_IN_EPOLL_SET" (field_expression "unaff_s8->epoll_state" identifier -> field_identifier) | identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)*piVar6;" (assignment_expression "unaff_s5 = (MHD_Daemon *)*piVar6" identifier = (cast_expression "(MHD_Daemon *)*piVar6" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5);" (assignment_expression "uVar17 = (*(code *)PTR_strerror_0003f254)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x4da8,uVar17)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x4da8" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) }) (else_clause "else {\n    pMVar19 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache);\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8);\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);\n      if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (daemon->cred_type == GNUTLS_CRD_PSK) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))\n    {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" else (compound_statement "{\n    pMVar19 = (MHD_mutex_ *)0x1;\n    unaff_s8->tls_state = MHD_TLS_CONN_INIT;\n    MHD_set_https_callbacks(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache);\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8);\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);\n      if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (daemon->cred_type == GNUTLS_CRD_PSK) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c);\n    iVar5 = (*(code *)PTR_close_0003f158)(client_socket);\n    if ((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))\n    {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    MHD_ip_limit_del(daemon,addr,addrlen);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" { (expression_statement "pMVar19 = (MHD_mutex_ *)0x1;" (assignment_expression "pMVar19 = (MHD_mutex_ *)0x1" identifier = (cast_expression "(MHD_mutex_ *)0x1" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->tls_state = MHD_TLS_CONN_INIT;" (assignment_expression "unaff_s8->tls_state = MHD_TLS_CONN_INIT" (field_expression "unaff_s8->tls_state" identifier -> field_identifier) = identifier) ;) (expression_statement "MHD_set_https_callbacks(unaff_s8);" (call_expression "MHD_set_https_callbacks(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49);" (call_expression "(*(code *)PTR_gnutls_init_0003f218)(&unaff_s8->tls_session,0x49)" (parenthesized_expression "(*(code *)PTR_gnutls_init_0003f218)" ( (pointer_expression "*(code *)PTR_gnutls_init_0003f218" * (cast_expression "(code *)PTR_gnutls_init_0003f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&unaff_s8->tls_session,0x49)" ( (pointer_expression "&unaff_s8->tls_session" & (field_expression "unaff_s8->tls_session" identifier -> field_identifier)) , number_literal ))) ;) (expression_statement "(*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache);" (call_expression "(*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8->tls_session,daemon->priority_cache)" (parenthesized_expression "(*(code *)PTR_gnutls_priority_set_0003f1b0)" ( (pointer_expression "*(code *)PTR_gnutls_priority_set_0003f1b0" * (cast_expression "(code *)PTR_gnutls_priority_set_0003f1b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8->tls_session,daemon->priority_cache)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , (field_expression "daemon->priority_cache" identifier -> field_identifier) ))) ;) (expression_statement "(*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8);" (call_expression "(*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8->tls_session,unaff_s8)" (parenthesized_expression "(*(code *)PTR_gnutls_session_set_ptr_0003f258)" ( (pointer_expression "*(code *)PTR_gnutls_session_set_ptr_0003f258" * (cast_expression "(code *)PTR_gnutls_session_set_ptr_0003f258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8->tls_session,unaff_s8)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , identifier ))) ;) (if_statement "if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);\n      if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }" if (parenthesized_expression "(daemon->cred_type == GNUTLS_CRD_CERTIFICATE)" ( (binary_expression "daemon->cred_type == GNUTLS_CRD_CERTIFICATE" (field_expression "daemon->cred_type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);\n      if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }\n      goto LAB_0001a03c;\n    }" { (expression_statement "(*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred);" (call_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,1,daemon->x509_cred)" (parenthesized_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)" ( (pointer_expression "*(code *)PTR_gnutls_credentials_set_0003f1d8" * (cast_expression "(code *)PTR_gnutls_credentials_set_0003f1d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8->tls_session,1,daemon->x509_cred)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , number_literal , (field_expression "daemon->x509_cred" identifier -> field_identifier) ))) ;) (labeled_statement "LAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);" statement_identifier : (expression_statement "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket);" (call_expression "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)\n                (unaff_s8->tls_session,client_socket,client_socket)" (parenthesized_expression "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)" ( (pointer_expression "*(code *)PTR_gnutls_transport_set_int2_0003f1ec" * (cast_expression "(code *)PTR_gnutls_transport_set_int2_0003f1ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8->tls_session,client_socket,client_socket)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , identifier , identifier ))) ;)) (if_statement "if (daemon->https_mem_trust != (char *)0x0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }" if (parenthesized_expression "(daemon->https_mem_trust != (char *)0x0)" ( (binary_expression "daemon->https_mem_trust != (char *)0x0" (field_expression "daemon->https_mem_trust" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1);" (call_expression "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8->tls_session,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_server_set_request_0003f274" * (cast_expression "(code *)PTR_gnutls_certificate_server_set_request_0003f274" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8->tls_session,1)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , number_literal ))) ;) })) (goto_statement "goto LAB_0001a03c;" goto statement_identifier ;) })) (if_statement "if (daemon->cred_type == GNUTLS_CRD_PSK) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }" if (parenthesized_expression "(daemon->cred_type == GNUTLS_CRD_PSK)" ( (binary_expression "daemon->cred_type == GNUTLS_CRD_PSK" (field_expression "daemon->cred_type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }" { (expression_statement "(*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred);" (call_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)(unaff_s8->tls_session,4,daemon->psk_cred)" (parenthesized_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)" ( (pointer_expression "*(code *)PTR_gnutls_credentials_set_0003f1d8" * (cast_expression "(code *)PTR_gnutls_credentials_set_0003f1d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8->tls_session,4,daemon->psk_cred)" ( (field_expression "unaff_s8->tls_session" identifier -> field_identifier) , number_literal , (field_expression "daemon->psk_cred" identifier -> field_identifier) ))) ;) (expression_statement "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c);" (call_expression "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (daemon->psk_cred,PTR_LAB_0003f084 + -0x703c)" (parenthesized_expression "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)" ( (pointer_expression "*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238" * (cast_expression "(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->psk_cred,PTR_LAB_0003f084 + -0x703c)" ( (field_expression "daemon->psk_cred" identifier -> field_identifier) , (binary_expression "PTR_LAB_0003f084 + -0x703c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001a950;" goto statement_identifier ;) })) (expression_statement "MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c);" (call_expression "MHD_DLOG(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c)" identifier (argument_list "(unaff_s8->daemon,PTR_DAT_0003f05c + -0x387c)" ( (field_expression "unaff_s8->daemon" identifier -> field_identifier) , (binary_expression "PTR_DAT_0003f05c + -0x387c" identifier + number_literal) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;) (if_statement "if ((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))\n    {\n      uVar17 = 0x9c3;\n      goto LAB_0001aa44;\n    }" if (parenthesized_expression "((iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9))" ( (binary_expression "(iVar5 != 0) && (piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9)" ( (comma_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar6 == 9" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar6 == 9" (pointer_expression "*piVar6" * identifier) == number_literal)) ))) )) (compound_statement "{\n      uVar17 = 0x9c3;\n      goto LAB_0001aa44;\n    }" { (expression_statement "uVar17 = 0x9c3;" (assignment_expression "uVar17 = 0x9c3" identifier = number_literal) ;) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;) })) (expression_statement "MHD_ip_limit_del(daemon,addr,addrlen);" (call_expression "MHD_ip_limit_del(daemon,addr,addrlen)" identifier (argument_list "(daemon,addr,addrlen)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8->addr);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8->addr)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8->addr)" ( (field_expression "unaff_s8->addr" identifier -> field_identifier) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003f070)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003f070" * (pointer_expression "*(code **)PTR_mhd_panic_0003f070" * (cast_expression "(code **)PTR_mhd_panic_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003f068" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x383c" identifier + number_literal) ))) ;) }))) (expression_statement "iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar19);" (assignment_expression "iVar5 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar19)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(pMVar19)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar19)" ( identifier )))) ;) (expression_statement "uVar17 = 0x9ea;" (assignment_expression "uVar17 = 0x9ea" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (expression_statement "unaff_s5 = (MHD_Daemon *)0x17;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x17" identifier = (cast_expression "(MHD_Daemon *)0x17" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc,0x9ea);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x38dc,0x9ea)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x38dc,0x9ea)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x38dc" identifier + number_literal) , number_literal ))) ;) (labeled_statement "LAB_0001a72c:\n  if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*daemon->notify_connection)\n              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }" statement_identifier : (if_statement "if (daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0) {\n    (*daemon->notify_connection)\n              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }" if (parenthesized_expression "(daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0)" ( (binary_expression "daemon->notify_connection != (MHD_NotifyConnectionCallback)0x0" (field_expression "daemon->notify_connection" identifier -> field_identifier) != (cast_expression "(MHD_NotifyConnectionCallback)0x0" ( (type_descriptor "MHD_NotifyConnectionCallback" type_identifier) ) number_literal)) )) (compound_statement "{\n    (*daemon->notify_connection)\n              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);\n  }" { (expression_statement "(*daemon->notify_connection)\n              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED);" (call_expression "(*daemon->notify_connection)\n              (daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED)" (parenthesized_expression "(*daemon->notify_connection)" ( (pointer_expression "*daemon->notify_connection" * (field_expression "daemon->notify_connection" identifier -> field_identifier)) )) (argument_list "(daemon->notify_connection_cls,unaff_s8,&unaff_s8->socket_context,\n               MHD_CONNECTION_NOTIFY_CLOSED)" ( (field_expression "daemon->notify_connection_cls" identifier -> field_identifier) , identifier , (pointer_expression "&unaff_s8->socket_context" & (field_expression "unaff_s8->socket_context" identifier -> field_identifier)) , identifier ))) ;) }))) (if_statement "if (unaff_s8->tls_session != (gnutls_session_t)0x0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }" if (parenthesized_expression "(unaff_s8->tls_session != (gnutls_session_t)0x0)" ( (binary_expression "unaff_s8->tls_session != (gnutls_session_t)0x0" (field_expression "unaff_s8->tls_session" identifier -> field_identifier) != (cast_expression "(gnutls_session_t)0x0" ( (type_descriptor "gnutls_session_t" type_identifier) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }" { (expression_statement "(*(code *)PTR_gnutls_deinit_0003f338)();" (call_expression "(*(code *)PTR_gnutls_deinit_0003f338)()" (parenthesized_expression "(*(code *)PTR_gnutls_deinit_0003f338)" ( (pointer_expression "*(code *)PTR_gnutls_deinit_0003f338" * (cast_expression "(code *)PTR_gnutls_deinit_0003f338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar5 = (*(code *)PTR_close_0003f158)(client_socket);" (assignment_expression "iVar5 = (*(code *)PTR_close_0003f158)(client_socket)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(client_socket)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(client_socket)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = 0xa56;\n    if (*piVar6 == 9) goto LAB_0001aa44;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar17 = 0xa56;\n    if (*piVar6 == 9) goto LAB_0001aa44;\n  }" { (expression_statement "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar6 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar17 = 0xa56;" (assignment_expression "uVar17 = 0xa56" identifier = number_literal) ;) (if_statement "if (*piVar6 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(*piVar6 == 9)" ( (binary_expression "*piVar6 == 9" (pointer_expression "*piVar6" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) })) (expression_statement "MHD_ip_limit_del(daemon,addr,addrlen);" (call_expression "MHD_ip_limit_del(daemon,addr,addrlen)" identifier (argument_list "(daemon,addr,addrlen)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);" (assignment_expression "iVar5 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar19)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0001ab40;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab40;" goto statement_identifier ;)) (if_statement "if ((daemon->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001a804;" if (parenthesized_expression "((daemon->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "daemon->options & MHD_USE_THREAD_PER_CONNECTION" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )) (goto_statement "goto LAB_0001a804;" goto statement_identifier ;)) (expression_statement "pMVar10 = unaff_s8->nextX;" (assignment_expression "pMVar10 = unaff_s8->nextX" identifier = (field_expression "unaff_s8->nextX" identifier -> field_identifier)) ;) (if_statement "if (unaff_s8->prevX == (MHD_Connection *)0x0) {\n    daemon->normal_timeout_head = pMVar10;\n    pMVar13 = (MHD_Connection *)0x0;\n  }\n  else {\n    unaff_s8->prevX->nextX = pMVar10;\n    pMVar10 = unaff_s8->nextX;\n    pMVar13 = unaff_s8->prevX;\n  }" if (parenthesized_expression "(unaff_s8->prevX == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s8->prevX == (MHD_Connection *)0x0" (field_expression "unaff_s8->prevX" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    daemon->normal_timeout_head = pMVar10;\n    pMVar13 = (MHD_Connection *)0x0;\n  }" { (expression_statement "daemon->normal_timeout_head = pMVar10;" (assignment_expression "daemon->normal_timeout_head = pMVar10" (field_expression "daemon->normal_timeout_head" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar13 = (MHD_Connection *)0x0;" (assignment_expression "pMVar13 = (MHD_Connection *)0x0" identifier = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    unaff_s8->prevX->nextX = pMVar10;\n    pMVar10 = unaff_s8->nextX;\n    pMVar13 = unaff_s8->prevX;\n  }" else (compound_statement "{\n    unaff_s8->prevX->nextX = pMVar10;\n    pMVar10 = unaff_s8->nextX;\n    pMVar13 = unaff_s8->prevX;\n  }" { (expression_statement "unaff_s8->prevX->nextX = pMVar10;" (assignment_expression "unaff_s8->prevX->nextX = pMVar10" (field_expression "unaff_s8->prevX->nextX" (field_expression "unaff_s8->prevX" identifier -> field_identifier) -> field_identifier) = identifier) ;) (expression_statement "pMVar10 = unaff_s8->nextX;" (assignment_expression "pMVar10 = unaff_s8->nextX" identifier = (field_expression "unaff_s8->nextX" identifier -> field_identifier)) ;) (expression_statement "pMVar13 = unaff_s8->prevX;" (assignment_expression "pMVar13 = unaff_s8->prevX" identifier = (field_expression "unaff_s8->prevX" identifier -> field_identifier)) ;) }))) (if_statement "if (pMVar10 == (MHD_Connection *)0x0) goto LAB_0001aa64;" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001aa64;" goto statement_identifier ;)) (expression_statement "pMVar10->prevX = pMVar13;" (assignment_expression "pMVar10->prevX = pMVar13" (field_expression "pMVar10->prevX" identifier -> field_identifier) = identifier) ;) (do_statement "do {\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar10 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      daemon->connections_head = pMVar10;\n      pMVar13 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar10;\n      pMVar10 = unaff_s8->next;\n      pMVar13 = unaff_s8->prev;\n    }\n    if (pMVar10 == (MHD_Connection *)0x0) {\n      daemon->connections_tail = pMVar13;\n    }\n    else {\n      pMVar10->prev = pMVar13;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar5 = (*(code *)puVar1)(pMVar19);\n    if (iVar5 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar11 = 0x16;\n      }\n      else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;\n    (**(code **)PTR_mhd_panic_0003f070)\n              (pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950);\n    pMVar13 = extraout_v1;\nLAB_0001aa64:\n    daemon->normal_timeout_tail = pMVar13;\n  } while( true );" do (compound_statement "{\n    unaff_s8->nextX = (MHD_Connection *)0x0;\n    unaff_s8->prevX = (MHD_Connection *)0x0;\nLAB_0001a804:\n    pMVar10 = unaff_s8->next;\n    if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      daemon->connections_head = pMVar10;\n      pMVar13 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar10;\n      pMVar10 = unaff_s8->next;\n      pMVar13 = unaff_s8->prev;\n    }\n    if (pMVar10 == (MHD_Connection *)0x0) {\n      daemon->connections_tail = pMVar13;\n    }\n    else {\n      pMVar10->prev = pMVar13;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8->next = (MHD_Connection *)0x0;\n    unaff_s8->prev = (MHD_Connection *)0x0;\n    iVar5 = (*(code *)puVar1)(pMVar19);\n    if (iVar5 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar11 = 0x16;\n      }\n      else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar17 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar17 = 0xa5b;\nLAB_0001ab44:\n    pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;\n    (**(code **)PTR_mhd_panic_0003f070)\n              (pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);\nLAB_0001ab78:\n    uVar17 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950);\n    pMVar13 = extraout_v1;\nLAB_0001aa64:\n    daemon->normal_timeout_tail = pMVar13;\n  }" { (expression_statement "unaff_s8->nextX = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->nextX = (MHD_Connection *)0x0" (field_expression "unaff_s8->nextX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->prevX = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prevX = (MHD_Connection *)0x0" (field_expression "unaff_s8->prevX" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001a804:\n    pMVar10 = unaff_s8->next;" statement_identifier : (expression_statement "pMVar10 = unaff_s8->next;" (assignment_expression "pMVar10 = unaff_s8->next" identifier = (field_expression "unaff_s8->next" identifier -> field_identifier)) ;)) (if_statement "if (unaff_s8->prev == (MHD_Connection *)0x0) {\n      daemon->connections_head = pMVar10;\n      pMVar13 = (MHD_Connection *)0x0;\n    }\n    else {\n      unaff_s8->prev->next = pMVar10;\n      pMVar10 = unaff_s8->next;\n      pMVar13 = unaff_s8->prev;\n    }" if (parenthesized_expression "(unaff_s8->prev == (MHD_Connection *)0x0)" ( (binary_expression "unaff_s8->prev == (MHD_Connection *)0x0" (field_expression "unaff_s8->prev" identifier -> field_identifier) == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      daemon->connections_head = pMVar10;\n      pMVar13 = (MHD_Connection *)0x0;\n    }" { (expression_statement "daemon->connections_head = pMVar10;" (assignment_expression "daemon->connections_head = pMVar10" (field_expression "daemon->connections_head" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar13 = (MHD_Connection *)0x0;" (assignment_expression "pMVar13 = (MHD_Connection *)0x0" identifier = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      unaff_s8->prev->next = pMVar10;\n      pMVar10 = unaff_s8->next;\n      pMVar13 = unaff_s8->prev;\n    }" else (compound_statement "{\n      unaff_s8->prev->next = pMVar10;\n      pMVar10 = unaff_s8->next;\n      pMVar13 = unaff_s8->prev;\n    }" { (expression_statement "unaff_s8->prev->next = pMVar10;" (assignment_expression "unaff_s8->prev->next = pMVar10" (field_expression "unaff_s8->prev->next" (field_expression "unaff_s8->prev" identifier -> field_identifier) -> field_identifier) = identifier) ;) (expression_statement "pMVar10 = unaff_s8->next;" (assignment_expression "pMVar10 = unaff_s8->next" identifier = (field_expression "unaff_s8->next" identifier -> field_identifier)) ;) (expression_statement "pMVar13 = unaff_s8->prev;" (assignment_expression "pMVar13 = unaff_s8->prev" identifier = (field_expression "unaff_s8->prev" identifier -> field_identifier)) ;) }))) (if_statement "if (pMVar10 == (MHD_Connection *)0x0) {\n      daemon->connections_tail = pMVar13;\n    }\n    else {\n      pMVar10->prev = pMVar13;\n    }" if (parenthesized_expression "(pMVar10 == (MHD_Connection *)0x0)" ( (binary_expression "pMVar10 == (MHD_Connection *)0x0" identifier == (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      daemon->connections_tail = pMVar13;\n    }" { (expression_statement "daemon->connections_tail = pMVar13;" (assignment_expression "daemon->connections_tail = pMVar13" (field_expression "daemon->connections_tail" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      pMVar10->prev = pMVar13;\n    }" else (compound_statement "{\n      pMVar10->prev = pMVar13;\n    }" { (expression_statement "pMVar10->prev = pMVar13;" (assignment_expression "pMVar10->prev = pMVar13" (field_expression "pMVar10->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (expression_statement "unaff_s8->next = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->next = (MHD_Connection *)0x0" (field_expression "unaff_s8->next" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8->prev = (MHD_Connection *)0x0;" (assignment_expression "unaff_s8->prev = (MHD_Connection *)0x0" (field_expression "unaff_s8->prev" identifier -> field_identifier) = (cast_expression "(MHD_Connection *)0x0" ( (type_descriptor "MHD_Connection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar5 = (*(code *)puVar1)(pMVar19);" (assignment_expression "iVar5 = (*(code *)puVar1)(pMVar19)" identifier = (call_expression "(*(code *)puVar1)(pMVar19)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar19)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      MHD_pool_destroy(unaff_s8->pool);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar11 = 0x16;\n      }\n      else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      MHD_pool_destroy(unaff_s8->pool);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8->addr);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar11 = 0x16;\n      }\n      else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }\nLAB_0001a1e8:\n      if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }" { (expression_statement "MHD_pool_destroy(unaff_s8->pool);" (call_expression "MHD_pool_destroy(unaff_s8->pool)" identifier (argument_list "(unaff_s8->pool)" ( (field_expression "unaff_s8->pool" identifier -> field_identifier) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8->addr);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8->addr)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8->addr)" ( (field_expression "unaff_s8->addr" identifier -> field_identifier) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (unaff_s5 == (MHD_Daemon *)0x0) {\n        *puVar11 = 0x16;\n      }\n      else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }" if (parenthesized_expression "(unaff_s5 == (MHD_Daemon *)0x0)" ( (binary_expression "unaff_s5 == (MHD_Daemon *)0x0" identifier == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar11 = 0x16;\n      }" { (expression_statement "*puVar11 = 0x16;" (assignment_expression "*puVar11 = 0x16" (pointer_expression "*puVar11" * identifier) = number_literal) ;) }) (else_clause "else {\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }" else (compound_statement "{\n        *puVar11 = unaff_s5;\n        unaff_s5 = (MHD_Daemon *)0x0;\n      }" { (expression_statement "*puVar11 = unaff_s5;" (assignment_expression "*puVar11 = unaff_s5" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "unaff_s5 = (MHD_Daemon *)0x0;" (assignment_expression "unaff_s5 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0001a1e8:\n      if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }" statement_identifier : (if_statement "if (iVar3 == *(int *)puVar2) {\n        return (int)unaff_s5;\n      }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return (int)unaff_s5;\n      }" { (return_statement "return (int)unaff_s5;" return (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0003f2b8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003f2b8" * (cast_expression "(code *)PTR___stack_chk_fail_0003f2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar17 = 0xa67;" (assignment_expression "uVar17 = 0xa67" identifier = number_literal) ;) (labeled_statement "LAB_0001ab1c:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8);" statement_identifier : (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003f070)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003f070" * (pointer_expression "*(code **)PTR_mhd_panic_0003f070" * (cast_expression "(code **)PTR_mhd_panic_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x51b8)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003f068" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0001ab40:\n    uVar17 = 0xa5b;" statement_identifier : (expression_statement "uVar17 = 0xa5b;" (assignment_expression "uVar17 = 0xa5b" identifier = number_literal) ;)) (labeled_statement "LAB_0001ab44:\n    pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;" statement_identifier : (expression_statement "pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068;" (assignment_expression "pMVar18 = *(MHD_Daemon **)PTR_mhd_panic_cls_0003f068" identifier = (pointer_expression "*(MHD_Daemon **)PTR_mhd_panic_cls_0003f068" * (cast_expression "(MHD_Daemon **)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "MHD_Daemon **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n              (pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n              (pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003f070)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003f070" * (pointer_expression "*(code **)PTR_mhd_panic_0003f070" * (cast_expression "(code **)PTR_mhd_panic_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pMVar18,PTR_DAT_0003f05c + -0x40a0,uVar17,PTR_DAT_0003f05c + -0x51e0)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;) (labeled_statement "LAB_0001ab68:\n    MHD_ip_count_lock(pMVar18);" statement_identifier : (expression_statement "MHD_ip_count_lock(pMVar18);" (call_expression "MHD_ip_count_lock(pMVar18)" identifier (argument_list "(pMVar18)" ( identifier ))) ;)) (labeled_statement "LAB_0001ab78:\n    uVar17 = 0x912;" statement_identifier : (expression_statement "uVar17 = 0x912;" (assignment_expression "uVar17 = 0x912" identifier = number_literal) ;)) (labeled_statement "LAB_0001aa44:\n    (**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950);" statement_identifier : (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n              (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950)" (parenthesized_expression "(**(code **)PTR_mhd_panic_0003f070)" ( (pointer_expression "**(code **)PTR_mhd_panic_0003f070" * (pointer_expression "*(code **)PTR_mhd_panic_0003f070" * (cast_expression "(code **)PTR_mhd_panic_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar17,\n               PTR_DAT_0003f05c + -0x3950)" ( (pointer_expression "*(undefined4 *)PTR_mhd_panic_cls_0003f068" * (cast_expression "(undefined4 *)PTR_mhd_panic_cls_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x3950" identifier + number_literal) ))) ;)) (expression_statement "pMVar13 = extraout_v1;" (assignment_expression "pMVar13 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0001aa64:\n    daemon->normal_timeout_tail = pMVar13;" statement_identifier : (expression_statement "daemon->normal_timeout_tail = pMVar13;" (assignment_expression "daemon->normal_timeout_tail = pMVar13" (field_expression "daemon->normal_timeout_tail" identifier -> field_identifier) = identifier) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int extraout_v1;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int *piVar10;\n  int unaff_s5;\n  int *unaff_s8;\n  undefined4 local_40 [2];\n  int *local_38;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  piVar10 = (int *)(uint)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = param_1;\n  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  iVar9 = *(int *)(param_1 + 0x70);\n  while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));\n  unaff_s8[10] = iVar9;\n  puVar1 = PTR_malloc_0003f25c;\n  if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);\n  iVar9 = (*(code *)puVar1)(param_4);\n  unaff_s8[0x15] = iVar9;\n  if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);\n  unaff_s8[0x24] = param_4;\n  unaff_s8[0x29] = param_2;\n  *(byte *)(unaff_s8 + 0x2a) = param_6;\n  unaff_s8[6] = param_1;\n  iVar9 = FUN_0002186c();\n  uVar7 = *(uint *)(param_1 + 0xf8);\n  unaff_s8[0x25] = iVar9;\n  if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);\n  uVar8 = 0x9ea;\n  if (iVar9 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n  if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }\n  FUN_00019c48(param_1,param_3,param_4);\n  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n  if (iVar9 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar9 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar9 == 0) goto LAB_0001aa64;\n  *(int *)(iVar9 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );\n}\n\n" (function_definition "int FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int extraout_v1;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int *piVar10;\n  int unaff_s5;\n  int *unaff_s8;\n  undefined4 local_40 [2];\n  int *local_38;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  piVar10 = (int *)(uint)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = param_1;\n  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  iVar9 = *(int *)(param_1 + 0x70);\n  while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));\n  unaff_s8[10] = iVar9;\n  puVar1 = PTR_malloc_0003f25c;\n  if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);\n  iVar9 = (*(code *)puVar1)(param_4);\n  unaff_s8[0x15] = iVar9;\n  if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);\n  unaff_s8[0x24] = param_4;\n  unaff_s8[0x29] = param_2;\n  *(byte *)(unaff_s8 + 0x2a) = param_6;\n  unaff_s8[6] = param_1;\n  iVar9 = FUN_0002186c();\n  uVar7 = *(uint *)(param_1 + 0xf8);\n  unaff_s8[0x25] = iVar9;\n  if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);\n  uVar8 = 0x9ea;\n  if (iVar9 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n  if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }\n  FUN_00019c48(param_1,param_3,param_4);\n  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n  if (iVar9 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar9 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar9 == 0) goto LAB_0001aa64;\n  *(int *)(iVar9 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)" identifier (parameter_list "(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "char param_5" primitive_type identifier) , (parameter_declaration "byte param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int extraout_v1;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int *piVar10;\n  int unaff_s5;\n  int *unaff_s8;\n  undefined4 local_40 [2];\n  int *local_38;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  piVar10 = (int *)(uint)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = param_1;\n  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  iVar9 = *(int *)(param_1 + 0x70);\n  while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));\n  unaff_s8[10] = iVar9;\n  puVar1 = PTR_malloc_0003f25c;\n  if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);\n  iVar9 = (*(code *)puVar1)(param_4);\n  unaff_s8[0x15] = iVar9;\n  if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);\n  unaff_s8[0x24] = param_4;\n  unaff_s8[0x29] = param_2;\n  *(byte *)(unaff_s8 + 0x2a) = param_6;\n  unaff_s8[6] = param_1;\n  iVar9 = FUN_0002186c();\n  uVar7 = *(uint *)(param_1 + 0xf8);\n  unaff_s8[0x25] = iVar9;\n  if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);\n  uVar8 = 0x9ea;\n  if (iVar9 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n  if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }\n  FUN_00019c48(param_1,param_3,param_4);\n  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n  if (iVar9 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar9 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar9 == 0) goto LAB_0001aa64;\n  *(int *)(iVar9 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 local_40 [2];" type_identifier (array_declarator "local_40 [2]" identifier [ number_literal ]) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0003f2ec" identifier = identifier) ;) (expression_statement "piVar10 = (int *)(uint)param_6;" (assignment_expression "piVar10 = (int *)(uint)param_6" identifier = (cast_expression "(int *)(uint)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003f2ec" * (cast_expression "(int *)PTR___stack_chk_guard_0003f2ec" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0))" ( (binary_expression "(param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)" (parenthesized_expression "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)" ( (comma_expression "iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0" (assignment_expression "iVar9 = *(int *)(param_1 + 0x74)" identifier = (pointer_expression "*(int *)(param_1 + 0x74)" * (cast_expression "(int *)(param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "uVar7 = *(uint *)(param_1 + 0x88);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x88)" identifier = (pointer_expression "*(uint *)(param_1 + 0x88)" * (cast_expression "(uint *)(param_1 + 0x88)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }" { (if_statement "if (uVar7 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar6 = (param_2 % uVar7) * 0x174 + iVar9;" (assignment_expression "iVar6 = (param_2 % uVar7) * 0x174 + iVar9" identifier = (binary_expression "(param_2 % uVar7) * 0x174 + iVar9" (binary_expression "(param_2 % uVar7) * 0x174" (parenthesized_expression "(param_2 % uVar7)" ( (binary_expression "param_2 % uVar7" identifier % identifier) )) * number_literal) + identifier)) ;) (expression_statement "uVar3 = param_2 + 1;" (assignment_expression "uVar3 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }" if (parenthesized_expression "(*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8))" ( (binary_expression "*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)" (pointer_expression "*(uint *)(iVar6 + 0xec)" * (cast_expression "(uint *)(iVar6 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xec)" ( (binary_expression "iVar6 + 0xec" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar6 + 0xe8)" * (cast_expression "(uint *)(iVar6 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xe8)" ( (binary_expression "iVar6 + 0xe8" identifier + number_literal) ))))) )) (compound_statement "{\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }" { (do_statement "do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));" do (compound_statement "{\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        }" { (if_statement "if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;" if (parenthesized_expression "(param_2 + uVar7 == uVar3)" ( (binary_expression "param_2 + uVar7 == uVar3" (binary_expression "param_2 + uVar7" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00019ee8;" goto statement_identifier ;)) (if_statement "if (uVar7 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;" (assignment_expression "iVar6 = (uVar3 % uVar7) * 0x174 + iVar9" identifier = (binary_expression "(uVar3 % uVar7) * 0x174 + iVar9" (binary_expression "(uVar3 % uVar7) * 0x174" (parenthesized_expression "(uVar3 % uVar7)" ( (binary_expression "uVar3 % uVar7" identifier % identifier) )) * number_literal) + identifier)) ;) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8))" ( (binary_expression "*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)" (pointer_expression "*(uint *)(iVar6 + 0xec)" * (cast_expression "(uint *)(iVar6 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xec)" ( (binary_expression "iVar6 + 0xec" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar6 + 0xe8)" * (cast_expression "(uint *)(iVar6 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xe8)" ( (binary_expression "iVar6 + 0xe8" identifier + number_literal) ))))) )) ;) })) (expression_statement "unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);" (assignment_expression "unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10)" identifier = (call_expression "FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10)" identifier (argument_list "(iVar6,param_2,param_3,param_4,1,piVar10)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);" statement_identifier : (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;)) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_0001a1dc;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;)) (expression_statement "iVar9 = *piVar4;" (assignment_expression "iVar9 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = 0x900;" (assignment_expression "uVar8 = 0x900" identifier = number_literal) ;) (labeled_statement "joined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;" statement_identifier : (if_statement "if (iVar9 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(iVar9 == 9)" ( (binary_expression "iVar9 == 9" identifier == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;))) (labeled_statement "LAB_0001a1dc:\n    unaff_s5 = 0;" statement_identifier : (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;)) (expression_statement "*piVar4 = 0x17;" (assignment_expression "*piVar4 = 0x17" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (if_statement "if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;" if (parenthesized_expression "((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))" ( (binary_expression "(0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_2)" ( (binary_expression "0x3ff < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0)" ( (comma_expression "piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0" (assignment_expression "piVar4 = (int *)PTR_DAT_0003f05c" identifier = (cast_expression "(int *)PTR_DAT_0003f05c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(*(uint *)(param_1 + 0xf8) & 0x240) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 0x240)" ( (binary_expression "*(uint *)(param_1 + 0xf8) & 0x240" (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal)) ))) )) (goto_statement "goto LAB_0001a2ec;" goto statement_identifier ;)) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec))" ( (binary_expression "*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)" (pointer_expression "*(int *)(param_1 + 0xe8)" * (cast_expression "(int *)(param_1 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0xec)" * (cast_expression "(int *)(param_1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xec)" ( (binary_expression "param_1 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }" { (labeled_statement "LAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);" statement_identifier : (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x38dc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x38dc" identifier + number_literal) ))) ;)) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_0001a1dc;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a1dc;" goto statement_identifier ;)) (expression_statement "iVar9 = *piVar4;" (assignment_expression "iVar9 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = 0x93d;" (assignment_expression "uVar8 = 0x93d" identifier = number_literal) ;) (goto_statement "goto joined_r0x00019f14;" goto statement_identifier ;) })) (expression_statement "iVar9 = *(int *)(param_1 + 0x70);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x70)" identifier = (pointer_expression "*(int *)(param_1 + 0x70)" * (cast_expression "(int *)(param_1 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (while_statement "while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }" while (parenthesized_expression "(iVar6 = iVar9, iVar6 != 0)" ( (comma_expression "iVar6 = iVar9, iVar6 != 0" (assignment_expression "iVar6 = iVar9" identifier = identifier) , (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }" { (expression_statement "unaff_s5 = iVar6;" (assignment_expression "unaff_s5 = iVar6" identifier = identifier) ;) (expression_statement "iVar9 = *(int *)(iVar6 + 0x70);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x70)" identifier = (pointer_expression "*(int *)(iVar6 + 0x70)" * (cast_expression "(int *)(iVar6 + 0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x70)" ( (binary_expression "iVar6 + 0x70" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }" if (parenthesized_expression "(*(int *)(unaff_s5 + 0xf4) != 0)" ( (binary_expression "*(int *)(unaff_s5 + 0xf4) != 0" (pointer_expression "*(int *)(unaff_s5 + 0xf4)" * (cast_expression "(int *)(unaff_s5 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 0xf4)" ( (binary_expression "unaff_s5 + 0xf4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }" { (expression_statement "unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);" (assignment_expression "unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18)" identifier = (cast_expression "(int *)(*(code *)PTR_malloc_0003f25c)(0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003f25c)(0x18)" (parenthesized_expression "(*(code *)PTR_malloc_0003f25c)" ( (pointer_expression "*(code *)PTR_malloc_0003f25c" * (cast_expression "(code *)PTR_malloc_0003f25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x18)" ( number_literal ))))) ;) (if_statement "if (unaff_s8 == (int *)0x0) goto LAB_0001a190;" if (parenthesized_expression "(unaff_s8 == (int *)0x0)" ( (binary_expression "unaff_s8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);" (assignment_expression "iVar9 = FUN_0001996c(param_3,param_4,unaff_s8)" identifier = (call_expression "FUN_0001996c(param_3,param_4,unaff_s8)" identifier (argument_list "(param_3,param_4,unaff_s8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }" { (expression_statement "iVar9 = unaff_s5 + 0x94;" (assignment_expression "iVar9 = unaff_s5 + 0x94" identifier = (binary_expression "unaff_s5 + 0x94" identifier + number_literal)) ;) (expression_statement "iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);" (assignment_expression "iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) goto LAB_0001ab68;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab68;" goto statement_identifier ;)) (expression_statement "puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);" (assignment_expression "puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" identifier = (cast_expression "(undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" (parenthesized_expression "(*(code *)PTR_tsearch_0003f214)" ( (pointer_expression "*(code *)PTR_tsearch_0003f214" * (cast_expression "(code *)PTR_tsearch_0003f214" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" ( identifier , (binary_expression "unaff_s5 + 0x78" identifier + number_literal) , (binary_expression "PTR_LAB_0003f084 + -0x7054" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }" { (expression_statement "piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);" (assignment_expression "piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904)" identifier = (cast_expression "(int *)(PTR_DAT_0003f05c + -0x3904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0003f05c + -0x3904)" ( (binary_expression "PTR_DAT_0003f05c + -0x3904" identifier + number_literal) )))) ;) (expression_statement "FUN_00020df0(unaff_s5,piVar4);" (call_expression "FUN_00020df0(unaff_s5,piVar4)" identifier (argument_list "(unaff_s5,piVar4)" ( identifier , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }" { (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;) })) }) (else_clause "else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" else (compound_statement "{\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" { (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" identifier = (cast_expression "(int *)*puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (if_statement "if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }" if (parenthesized_expression "(unaff_s8 != piVar4)" ( (binary_expression "unaff_s8 != piVar4" identifier != identifier) )) (compound_statement "{\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }" { (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (if_statement "if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" if (parenthesized_expression "((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4))" ( (binary_expression "(uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)" (cast_expression "(uint)piVar4[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar4[5]" identifier [ number_literal ])) < (pointer_expression "*(uint *)(unaff_s5 + 0xf4)" * (cast_expression "(uint *)(unaff_s5 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 0xf4)" ( (binary_expression "unaff_s5 + 0xf4" identifier + number_literal) ))))) )) (compound_statement "{\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }" { (expression_statement "piVar4[5] = piVar4[5] + 1;" (assignment_expression "piVar4[5] = piVar4[5] + 1" (subscript_expression "piVar4[5]" identifier [ number_literal ]) = (binary_expression "piVar4[5] + 1" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar9 = (*(code *)puVar1)(iVar9);" (assignment_expression "iVar9 = (*(code *)puVar1)(iVar9)" identifier = (call_expression "(*(code *)puVar1)(iVar9)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) goto LAB_00019f70;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019f70;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" { (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) goto LAB_0001a190;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a190;" goto statement_identifier ;)) }))) }))) (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);" statement_identifier : (expression_statement "FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);" (call_expression "FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400)" identifier (argument_list "(param_1,piVar4 + -0xe4e,param_2,0x400)" ( identifier , (binary_expression "piVar4 + -0xe4e" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;" if (parenthesized_expression "((iVar9 != 0) && (*piVar4 == 9))" ( (binary_expression "(iVar9 != 0) && (*piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_0001ab78;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "*piVar4 = 0x16;" (assignment_expression "*piVar4 = 0x16" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) })) (labeled_statement "LAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" statement_identifier : (if_statement "if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0))" ( (binary_expression "(*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)" (parenthesized_expression "(*(code **)(param_1 + 0x40) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x40) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x40)" * (cast_expression "(code **)(param_1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)" ( (comma_expression "unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0" (assignment_expression "unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" identifier = (call_expression "(**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" (parenthesized_expression "(**(code **)(param_1 + 0x40))" ( (pointer_expression "**(code **)(param_1 + 0x40)" * (pointer_expression "*(code **)(param_1 + 0x40)" * (cast_expression "(code **)(param_1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "unaff_s5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" { (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = 0x950;" (assignment_expression "uVar8 = 0x950" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) })) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) }))) (expression_statement "unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);" (assignment_expression "unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100)" identifier = (cast_expression "(int *)(*(code *)PTR_calloc_0003f144)(1,0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_0003f144)(1,0x100)" (parenthesized_expression "(*(code *)PTR_calloc_0003f144)" ( (pointer_expression "*(code *)PTR_calloc_0003f144" * (cast_expression "(code *)PTR_calloc_0003f144" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0x100)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(unaff_s8 == (int *)0x0)" ( (binary_expression "unaff_s8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar10 = (int *)*piVar4;" (assignment_expression "piVar10 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9))" ( (binary_expression "(iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar8 = 0x962, *piVar4 == 9)" ( (comma_expression "uVar8 = 0x962, *piVar4 == 9" (assignment_expression "uVar8 = 0x962" identifier = number_literal) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "*piVar4 = (int)piVar10;" (assignment_expression "*piVar4 = (int)piVar10" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));" (assignment_expression "iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c))" identifier = (call_expression "FUN_00021248(*(undefined4 *)(param_1 + 0x7c))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x7c))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) )))) ;) (expression_statement "unaff_s8[10] = iVar9;" (assignment_expression "unaff_s8[10] = iVar9" (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_malloc_0003f25c;" (assignment_expression "puVar1 = PTR_malloc_0003f25c" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*piVar10)" ( (pointer_expression "*piVar10" * identifier) )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9))" ( (binary_expression "(iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar8 = 0x971, *piVar10 == 9)" ( (comma_expression "uVar8 = 0x971, *piVar10 == 9" (assignment_expression "uVar8 = 0x971" identifier = number_literal) , (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar10 = 0xc;" (assignment_expression "*piVar10 = 0xc" (pointer_expression "*piVar10" * identifier) = number_literal) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "unaff_s8[0x26] = *(int *)(param_1 + 0xf0);" (assignment_expression "unaff_s8[0x26] = *(int *)(param_1 + 0xf0)" (subscript_expression "unaff_s8[0x26]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = (*(code *)puVar1)(param_4);" (assignment_expression "iVar9 = (*(code *)puVar1)(param_4)" identifier = (call_expression "(*(code *)puVar1)(param_4)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "unaff_s8[0x15] = iVar9;" (assignment_expression "unaff_s8[0x15] = iVar9" (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar10 = (int *)*piVar4;" (assignment_expression "piVar10 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x389c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;" if (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9))" ( (binary_expression "(iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar8 = 0x985, *piVar4 == 9)" ( (comma_expression "uVar8 = 0x985, *piVar4 == 9" (assignment_expression "uVar8 = 0x985" identifier = number_literal) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" identifier (argument_list "(unaff_s8[10])" ( (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "*piVar4 = (int)piVar10;" (assignment_expression "*piVar4 = (int)piVar10" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);" (call_expression "(*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4)" (parenthesized_expression "(*(code *)PTR_memcpy_0003f2f0)" ( (pointer_expression "*(code *)PTR_memcpy_0003f2f0" * (cast_expression "(code *)PTR_memcpy_0003f2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s8[0x24] = param_4;" (assignment_expression "unaff_s8[0x24] = param_4" (subscript_expression "unaff_s8[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "unaff_s8[0x29] = param_2;" (assignment_expression "unaff_s8[0x29] = param_2" (subscript_expression "unaff_s8[0x29]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(unaff_s8 + 0x2a) = param_6;" (assignment_expression "*(byte *)(unaff_s8 + 0x2a) = param_6" (pointer_expression "*(byte *)(unaff_s8 + 0x2a)" * (cast_expression "(byte *)(unaff_s8 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8 + 0x2a)" ( (binary_expression "unaff_s8 + 0x2a" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s8[6] = param_1;" (assignment_expression "unaff_s8[6] = param_1" (subscript_expression "unaff_s8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = FUN_0002186c();" (assignment_expression "iVar9 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x25] = iVar9;" (assignment_expression "unaff_s8[0x25] = iVar9" (subscript_expression "unaff_s8[0x25]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" if (parenthesized_expression "((uVar7 & 2) == 0)" ( (binary_expression "(uVar7 & 2) == 0" (parenthesized_expression "(uVar7 & 2)" ( (binary_expression "uVar7 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }" { (expression_statement "FUN_00015248(unaff_s8);" (call_expression "FUN_00015248(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (labeled_statement "LAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);" statement_identifier : (expression_statement "piVar10 = (int *)(param_1 + 0xac);" (assignment_expression "piVar10 = (int *)(param_1 + 0xac)" identifier = (cast_expression "(int *)(param_1 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xac)" ( (binary_expression "param_1 + 0xac" identifier + number_literal) )))) ;)) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "uVar8 = 0x9e4;" (assignment_expression "uVar8 = 0x9e4" identifier = number_literal) ;) (if_statement "if (iVar9 != 0) goto LAB_0001ab44;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab44;" goto statement_identifier ;)) (if_statement "if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }" if (parenthesized_expression "(*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec))" ( (binary_expression "*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)" (pointer_expression "*(uint *)(param_1 + 0xe8)" * (cast_expression "(uint *)(param_1 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_1 + 0xec)" * (cast_expression "(uint *)(param_1 + 0xec)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xec)" ( (binary_expression "param_1 + 0xec" identifier + number_literal) ))))) )) (compound_statement "{\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }" { (expression_statement "*(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;" (assignment_expression "*(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1" (pointer_expression "*(uint *)(param_1 + 0xe8)" * (cast_expression "(uint *)(param_1 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0xe8) + 1" (pointer_expression "*(uint *)(param_1 + 0xe8)" * (cast_expression "(uint *)(param_1 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }" if (parenthesized_expression "((*(uint *)(param_1 + 0xf8) & 4) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 4)" ( (binary_expression "*(uint *)(param_1 + 0xf8) & 4" (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x34);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x34)" identifier = (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[4] = iVar9;" (assignment_expression "unaff_s8[4] = iVar9" (subscript_expression "unaff_s8[4]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }" { (expression_statement "*(int **)(param_1 + 0x34) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x34) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x34)" * (cast_expression "(int **)(param_1 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" else (compound_statement "{\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" { (expression_statement "*(int **)(iVar9 + 0x14) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 0x14) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 0x14)" * (cast_expression "(int **)(iVar9 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(int **)(param_1 + 0x30) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x30) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x30)" * (cast_expression "(int **)(param_1 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar9 = *(int *)(param_1 + 8);" (assignment_expression "iVar9 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar6 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[2] = iVar9;" (assignment_expression "unaff_s8[2] = iVar9" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }" { (expression_statement "*(int **)(param_1 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0xc) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" else (compound_statement "{\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" { (expression_statement "*(int **)(iVar9 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 0xc)" * (cast_expression "(int **)(iVar9 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (expression_statement "*(int **)(param_1 + 8) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 8) = unaff_s8" (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = (*(code *)puVar1)(piVar10);" (assignment_expression "iVar9 = (*(code *)puVar1)(piVar10)" identifier = (call_expression "(*(code *)puVar1)(piVar10)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "uVar8 = 0xa01;" (assignment_expression "uVar8 = 0xa01" identifier = number_literal) ;) (if_statement "if (iVar9 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" if (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" { (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" ( (pointer_expression "**(code **)(param_1 + 0x50)" * (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "unaff_s8 + 0xc" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" if (parenthesized_expression "((uVar7 & 4) == 0)" ( (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x90);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x90)" identifier = (pointer_expression "*(int *)(param_1 + 0x90)" * (cast_expression "(int *)(param_1 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x16] = *(int *)(param_1 + 0x8c);" (assignment_expression "unaff_s8[0x16] = *(int *)(param_1 + 0x8c)" (subscript_expression "unaff_s8[0x16]" identifier [ number_literal ]) = (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" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[0x17] = iVar9;" (assignment_expression "unaff_s8[0x17] = iVar9" (subscript_expression "unaff_s8[0x17]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "((uVar7 & 0x200) == 0)" ( (binary_expression "(uVar7 & 0x200) == 0" (parenthesized_expression "(uVar7 & 0x200)" ( (binary_expression "uVar7 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" { (labeled_statement "LAB_0001a9b8:\n          unaff_s5 = 1;" statement_identifier : (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;)) (if_statement "if (param_5 == '\0') goto LAB_0001a1e8;" if (parenthesized_expression "(param_5 == '\0')" ( (binary_expression "param_5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (if_statement "if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;" if (parenthesized_expression "(*(int *)(param_1 + 0xdc) == -1)" ( (binary_expression "*(int *)(param_1 + 0xdc) == -1" (pointer_expression "*(int *)(param_1 + 0xdc)" * (cast_expression "(int *)(param_1 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xdc)" ( (binary_expression "param_1 + 0xdc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;)) (expression_statement "iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);" (assignment_expression "iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" identifier = (call_expression "(*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (parenthesized_expression "(*(code *)PTR_write_0003f220)" ( (pointer_expression "*(code *)PTR_write_0003f220" * (cast_expression "(code *)PTR_write_0003f220" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" ( (pointer_expression "*(int *)(param_1 + 0xdc)" * (cast_expression "(int *)(param_1 + 0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xdc)" ( (binary_expression "param_1 + 0xdc" identifier + number_literal) )))) , (binary_expression "PTR_DAT_0003f05c + -0x28d8" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }" if (parenthesized_expression "((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb))" ( (binary_expression "(iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)" (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) && (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 != 0xb" (pointer_expression "*piVar4" * identifier) != number_literal)) ))) )) (compound_statement "{\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }" { (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x37f4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x37f4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a8dc:\n          unaff_s5 = 1;" statement_identifier : (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" else (compound_statement "{\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" { (expression_statement "iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);" (assignment_expression "iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" identifier = (call_expression "FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" identifier (argument_list "(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" ( (binary_expression "unaff_s8 + 0x16" identifier + number_literal) , (binary_expression "PTR_DAT_0003f05c + -0x3824" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x84)" * (cast_expression "(undefined4 *)(param_1 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x84)" ( (binary_expression "param_1 + 0x84" identifier + number_literal) )))) , (binary_expression "PTR_LAB_0003f084 + -0x445c" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = *piVar4;" (assignment_expression "unaff_s5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x3814,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x3814" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" if (parenthesized_expression "((uVar7 & 0x200) == 0)" ( (binary_expression "(uVar7 & 0x200) == 0" (parenthesized_expression "(uVar7 & 0x200)" ( (binary_expression "uVar7 & 0x200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" { (if_statement "if ((uVar7 & 4) != 0) goto LAB_0001a8dc;" if (parenthesized_expression "((uVar7 & 4) != 0)" ( (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a8dc;" goto statement_identifier ;)) (goto_statement "goto LAB_0001a9b8;" goto statement_identifier ;) })) }))) (if_statement "if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(((uVar7 & 0x1000) != 0) && (param_5 == '\0'))" ( (binary_expression "((uVar7 & 0x1000) != 0) && (param_5 == '\0')" (parenthesized_expression "((uVar7 & 0x1000) != 0)" ( (binary_expression "(uVar7 & 0x1000) != 0" (parenthesized_expression "(uVar7 & 0x1000)" ( (binary_expression "uVar7 & 0x1000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_5 == '\0')" ( (binary_expression "param_5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8[1] = 0;" (assignment_expression "unaff_s8[1] = 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 7;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) = (binary_expression "unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "*unaff_s8 = iVar9;" (assignment_expression "*unaff_s8 = iVar9" (pointer_expression "*unaff_s8" * identifier) = identifier) ;) (if_statement "if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" { (expression_statement "*(int **)(iVar9 + 4) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 4) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 4)" * (cast_expression "(int **)(iVar9 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x20) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x20)" * (cast_expression "(int **)(param_1 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "*(int **)(param_1 + 0x24) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x24) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x24)" * (cast_expression "(int **)(param_1 + 0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x20) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x20)" * (cast_expression "(int **)(param_1 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "local_40[0] = 0x80000007;" (assignment_expression "local_40[0] = 0x80000007" (subscript_expression "local_40[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_38 = unaff_s8;" (assignment_expression "local_38 = unaff_s8" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);" (assignment_expression "iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" (parenthesized_expression "(*(code *)PTR_epoll_ctl_0003f278)" ( (pointer_expression "*(code *)PTR_epoll_ctl_0003f278" * (cast_expression "(code *)PTR_epoll_ctl_0003f278" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" ( (pointer_expression "*(undefined4 *)(param_1 + 0xcc)" * (cast_expression "(undefined4 *)(param_1 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) )))) , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" { (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" identifier = number_literal) ;) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 8;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) = (binary_expression "unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" identifier [ number_literal ]) | number_literal)) ;) (goto_statement "goto LAB_0001a1e8;" goto statement_identifier ;) })) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s5 = *piVar4;" (assignment_expression "unaff_s5 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" ( (pointer_expression "*(code *)PTR_strerror_0003f254" * (cast_expression "(code *)PTR_strerror_0003f254" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x4da8" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001a72c;" goto statement_identifier ;) })) }) (else_clause "else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" else (compound_statement "{\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" { (expression_statement "piVar10 = (int *)0x1;" (assignment_expression "piVar10 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s8[0x3c] = 1;" (assignment_expression "unaff_s8[0x3c] = 1" (subscript_expression "unaff_s8[0x3c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00029db0(unaff_s8);" (call_expression "FUN_00029db0(unaff_s8)" identifier (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);" (call_expression "(*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49)" (parenthesized_expression "(*(code *)PTR_gnutls_init_0003f218)" ( (pointer_expression "*(code *)PTR_gnutls_init_0003f218" * (cast_expression "(code *)PTR_gnutls_init_0003f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8 + 0x39,0x49)" ( (binary_expression "unaff_s8 + 0x39" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));" (call_expression "(*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c))" (parenthesized_expression "(*(code *)PTR_gnutls_priority_set_0003f1b0)" ( (pointer_expression "*(code *)PTR_gnutls_priority_set_0003f1b0" * (cast_expression "(code *)PTR_gnutls_priority_set_0003f1b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(param_1 + 0x10c)" * (cast_expression "(undefined4 *)(param_1 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);" (call_expression "(*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8)" (parenthesized_expression "(*(code *)PTR_gnutls_session_set_ptr_0003f258)" ( (pointer_expression "*(code *)PTR_gnutls_session_set_ptr_0003f258" * (cast_expression "(code *)PTR_gnutls_session_set_ptr_0003f258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],unaff_s8)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x110) == 1)" ( (binary_expression "*(int *)(param_1 + 0x110) == 1" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" { (expression_statement "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));" (call_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114))" (parenthesized_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)" ( (pointer_expression "*(code *)PTR_gnutls_credentials_set_0003f1d8" * (cast_expression "(code *)PTR_gnutls_credentials_set_0003f1d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x114)" * (cast_expression "(undefined4 *)(param_1 + 0x114)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);" statement_identifier : (expression_statement "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);" (call_expression "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2)" (parenthesized_expression "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)" ( (pointer_expression "*(code *)PTR_gnutls_transport_set_int2_0003f1ec" * (cast_expression "(code *)PTR_gnutls_transport_set_int2_0003f1ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],param_2,param_2)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , identifier , identifier ))) ;)) (if_statement "if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x138) != 0)" ( (binary_expression "*(int *)(param_1 + 0x138) != 0" (pointer_expression "*(int *)(param_1 + 0x138)" * (cast_expression "(int *)(param_1 + 0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x138)" ( (binary_expression "param_1 + 0x138" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);" (call_expression "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_server_set_request_0003f274" * (cast_expression "(code *)PTR_gnutls_certificate_server_set_request_0003f274" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],1)" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal ))) ;) })) (goto_statement "goto LAB_0001a03c;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x110) == 4)" ( (binary_expression "*(int *)(param_1 + 0x110) == 4" (pointer_expression "*(int *)(param_1 + 0x110)" * (cast_expression "(int *)(param_1 + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }" { (expression_statement "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));" (call_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c))" (parenthesized_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)" ( (pointer_expression "*(code *)PTR_gnutls_credentials_set_0003f1d8" * (cast_expression "(code *)PTR_gnutls_credentials_set_0003f1d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c))" ( (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);" (call_expression "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c)" (parenthesized_expression "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)" ( (pointer_expression "*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238" * (cast_expression "(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) , (binary_expression "PTR_LAB_0003f084 + -0x703c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001a950;" goto statement_identifier ;) })) (expression_statement "FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);" (call_expression "FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c)" identifier (argument_list "(unaff_s8[6],PTR_DAT_0003f05c + -0x387c)" ( (subscript_expression "unaff_s8[6]" identifier [ number_literal ]) , (binary_expression "PTR_DAT_0003f05c + -0x387c" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }" if (parenthesized_expression "((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))" ( (binary_expression "(iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) , (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal)) ))) )) (compound_statement "{\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }" { (expression_statement "uVar8 = 0x9c3;" (assignment_expression "uVar8 = 0x9c3" identifier = number_literal) ;) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;) })) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15])" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x15])" ( (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0003f05c + -0x383c" identifier + number_literal) ))) ;) }))) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" ( (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" * (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "uVar8 = 0x9ea;" (assignment_expression "uVar8 = 0x9ea" identifier = number_literal) ;) (if_statement "if (iVar9 != 0) goto LAB_0001ab1c;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab1c;" goto statement_identifier ;)) (expression_statement "unaff_s5 = 0x17;" (assignment_expression "unaff_s5 = 0x17" identifier = number_literal) ;) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea)" identifier (argument_list "(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x38dc" identifier + number_literal) , number_literal ))) ;) (labeled_statement "LAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" statement_identifier : (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" if (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" { (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" ( (pointer_expression "**(code **)(param_1 + 0x50)" * (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) , identifier , (binary_expression "unaff_s8 + 0xc" identifier + number_literal) , number_literal ))) ;) }))) (if_statement "if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }" if (parenthesized_expression "(unaff_s8[0x39] != 0)" ( (binary_expression "unaff_s8[0x39] != 0" (subscript_expression "unaff_s8[0x39]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }" { (expression_statement "(*(code *)PTR_gnutls_deinit_0003f338)();" (call_expression "(*(code *)PTR_gnutls_deinit_0003f338)()" (parenthesized_expression "(*(code *)PTR_gnutls_deinit_0003f338)" ( (pointer_expression "*(code *)PTR_gnutls_deinit_0003f338" * (cast_expression "(code *)PTR_gnutls_deinit_0003f338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" ( (pointer_expression "*(code *)PTR_close_0003f158" * (cast_expression "(code *)PTR_close_0003f158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = 0xa56;" (assignment_expression "uVar8 = 0xa56" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001aa44;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001aa44;" goto statement_identifier ;)) })) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" ( (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" * (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) goto LAB_0001ab40;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001ab40;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;" if (parenthesized_expression "((*(uint *)(param_1 + 0xf8) & 4) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 4)" ( (binary_expression "*(uint *)(param_1 + 0xf8) & 4" (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001a804;" goto statement_identifier ;)) (expression_statement "iVar9 = unaff_s8[4];" (assignment_expression "iVar9 = unaff_s8[4]" identifier = (subscript_expression "unaff_s8[4]" identifier [ number_literal ])) ;) (if_statement "if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" if (parenthesized_expression "(unaff_s8[5] == 0)" ( (binary_expression "unaff_s8[5] == 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }" { (expression_statement "*(int *)(param_1 + 0x30) = iVar9;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar9" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" else (compound_statement "{\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" { (expression_statement "*(int *)(unaff_s8[5] + 0x10) = iVar9;" (assignment_expression "*(int *)(unaff_s8[5] + 0x10) = iVar9" (pointer_expression "*(int *)(unaff_s8[5] + 0x10)" * (cast_expression "(int *)(unaff_s8[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[5] + 0x10)" ( (binary_expression "unaff_s8[5] + 0x10" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = unaff_s8[4];" (assignment_expression "iVar9 = unaff_s8[4]" identifier = (subscript_expression "unaff_s8[4]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = unaff_s8[5];" (assignment_expression "iVar6 = unaff_s8[5]" identifier = (subscript_expression "unaff_s8[5]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar9 == 0) goto LAB_0001aa64;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001aa64;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar9 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar9 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );" do (compound_statement "{\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  }" { (expression_statement "unaff_s8[4] = 0;" (assignment_expression "unaff_s8[4] = 0" (subscript_expression "unaff_s8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0001a804:\n    iVar9 = unaff_s8[2];" statement_identifier : (expression_statement "iVar9 = unaff_s8[2];" (assignment_expression "iVar9 = unaff_s8[2]" identifier = (subscript_expression "unaff_s8[2]" identifier [ number_literal ])) ;)) (if_statement "if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" if (parenthesized_expression "(unaff_s8[3] == 0)" ( (binary_expression "unaff_s8[3] == 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }" { (expression_statement "*(int *)(param_1 + 8) = iVar9;" (assignment_expression "*(int *)(param_1 + 8) = iVar9" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" else (compound_statement "{\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" { (expression_statement "*(int *)(unaff_s8[3] + 8) = iVar9;" (assignment_expression "*(int *)(unaff_s8[3] + 8) = iVar9" (pointer_expression "*(int *)(unaff_s8[3] + 8)" * (cast_expression "(int *)(unaff_s8[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[3] + 8)" ( (binary_expression "unaff_s8[3] + 8" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = unaff_s8[2];" (assignment_expression "iVar9 = unaff_s8[2]" identifier = (subscript_expression "unaff_s8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = unaff_s8[3];" (assignment_expression "iVar6 = unaff_s8[3]" identifier = (subscript_expression "unaff_s8[3]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 0xc) = iVar6;\n    }" { (expression_statement "*(int *)(param_1 + 0xc) = iVar6;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar6" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" else (compound_statement "{\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" { (expression_statement "*(int *)(iVar9 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar9 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar9 + 0xc)" * (cast_expression "(int *)(iVar9 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" identifier = identifier) ;) (expression_statement "unaff_s8[2] = 0;" (assignment_expression "unaff_s8[2] = 0" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = (*(code *)puVar1)(piVar10);" (assignment_expression "iVar9 = (*(code *)puVar1)(piVar10)" identifier = (call_expression "(*(code *)puVar1)(piVar10)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }" { (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" identifier (argument_list "(unaff_s8[10])" ( (subscript_expression "unaff_s8[10]" identifier [ number_literal ]) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15])" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8[0x15])" ( (subscript_expression "unaff_s8[0x15]" identifier [ number_literal ]) ))) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" ( (pointer_expression "*(code *)PTR_free_0003f2f8" * (cast_expression "(code *)PTR_free_0003f2f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8)" ( identifier ))) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" identifier = (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" ( (pointer_expression "*(code *)PTR___errno_location_0003f204" * (cast_expression "(code *)PTR___errno_location_0003f204" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" if (parenthesized_expression "(unaff_s5 == 0)" ( (binary_expression "unaff_s5 == 0" identifier == number_literal) )) (compound_statement "{\n        *piVar4 = 0x16;\n      }" { (expression_statement "*piVar4 = 0x16;" (assignment_expression "*piVar4 = 0x16" (pointer_expression "*piVar4" * identifier) = number_literal) ;) }) (else_clause "else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" else (compound_statement "{\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" { (expression_statement "*piVar4 = unaff_s5;" (assignment_expression "*piVar4 = unaff_s5" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return unaff_s5;\n      }" { (return_statement "return unaff_s5;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0003f2b8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003f2b8" * (cast_expression "(code *)PTR___stack_chk_fail_0003f2b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar8 = 0xa67;" (assignment_expression "uVar8 = 0xa67" identifier = number_literal) ;) (labeled_statement "LAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51b8" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0001ab40:\n    uVar8 = 0xa5b;" statement_identifier : (expression_statement "uVar8 = 0xa5b;" (assignment_expression "uVar8 = 0xa5b" identifier = number_literal) ;)) (labeled_statement "LAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x51e0" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0001ab68:\n    FUN_00019bc8();" statement_identifier : (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0001ab78:\n    uVar8 = 0x912;" statement_identifier : (expression_statement "uVar8 = 0x912;" (assignment_expression "uVar8 = 0x912" identifier = number_literal) ;)) (labeled_statement "LAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" ( (pointer_expression "**(code **)PTR_DAT_0003f070" * (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x40a0" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0003f05c + -0x3950" identifier + number_literal) ))) ;)) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;" statement_identifier : (expression_statement "*(int *)(param_1 + 0x34) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x34) = iVar6" (pointer_expression "*(int *)(param_1 + 0x34)" * (cast_expression "(int *)(param_1 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = identifier) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression 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 != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_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) ))))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_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) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (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 IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 != LIT) )) (goto_statement goto statement_identifier ;)) (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 , (binary_expression IDENT + LIT) , (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 == LIT) )) (goto_statement goto statement_identifier ;)) }))) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 != 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 *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) }))) (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 ( LIT , 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 *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_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) ))))) )) (compound_statement { (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)) ;) (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) )) == LIT) )) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (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 IDENT = IDENT) ;) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (comma_expression (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 ( ))))) , (binary_expression (pointer_expression * IDENT) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 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) ;) (goto_statement goto statement_identifier ;) })) (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 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) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (goto_statement goto statement_identifier ;) })) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT ))) ;) })) (goto_statement goto statement_identifier ;) })) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (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 ( ))))) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (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 != 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 *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (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 != LIT) )) (goto_statement goto statement_identifier ;)) (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) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (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 IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (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 IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (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 IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (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 == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "int FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int extraout_v1;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int *piVar10;\n  int unaff_s5;\n  int *unaff_s8;\n  undefined4 local_40 [2];\n  int *local_38;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  piVar10 = (int *)(uint)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = param_1;\n  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  iVar9 = *(int *)(param_1 + 0x70);\n  while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));\n  unaff_s8[10] = iVar9;\n  puVar1 = PTR_malloc_0003f25c;\n  if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);\n  iVar9 = (*(code *)puVar1)(param_4);\n  unaff_s8[0x15] = iVar9;\n  if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);\n  unaff_s8[0x24] = param_4;\n  unaff_s8[0x29] = param_2;\n  *(byte *)(unaff_s8 + 0x2a) = param_6;\n  unaff_s8[6] = param_1;\n  iVar9 = FUN_0002186c();\n  uVar7 = *(uint *)(param_1 + 0xf8);\n  unaff_s8[0x25] = iVar9;\n  if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);\n  uVar8 = 0x9ea;\n  if (iVar9 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n  if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }\n  FUN_00019c48(param_1,param_3,param_4);\n  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n  if (iVar9 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar9 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar9 == 0) goto LAB_0001aa64;\n  *(int *)(iVar9 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );\n}" (primitive_type "int") (function_declarator "FUN_00019e04(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)" (identifier "FUN_00019e04") (parameter_list "(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "char param_5" (primitive_type "char") (identifier "param_5")) (, ",") (parameter_declaration "byte param_6" (type_identifier "byte") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  int extraout_v1;\n  int iVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int *piVar10;\n  int unaff_s5;\n  int *unaff_s8;\n  undefined4 local_40 [2];\n  int *local_38;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  piVar10 = (int *)(uint)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }\n  if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;\n  unaff_s5 = param_1;\n  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }\n  iVar9 = *(int *)(param_1 + 0x70);\n  while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }\n  if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }\nLAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }\n  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);\n  if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));\n  unaff_s8[10] = iVar9;\n  puVar1 = PTR_malloc_0003f25c;\n  if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }\n  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);\n  iVar9 = (*(code *)puVar1)(param_4);\n  unaff_s8[0x15] = iVar9;\n  if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }\n  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);\n  unaff_s8[0x24] = param_4;\n  unaff_s8[0x29] = param_2;\n  *(byte *)(unaff_s8 + 0x2a) = param_6;\n  unaff_s8[6] = param_1;\n  iVar9 = FUN_0002186c();\n  uVar7 = *(uint *)(param_1 + 0xf8);\n  unaff_s8[0x25] = iVar9;\n  if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }\n  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);\n  uVar8 = 0x9ea;\n  if (iVar9 != 0) goto LAB_0001ab1c;\n  unaff_s5 = 0x17;\n  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);\nLAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }\n  if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }\n  iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n  if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }\n  FUN_00019c48(param_1,param_3,param_4);\n  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n  if (iVar9 != 0) goto LAB_0001ab40;\n  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;\n  iVar9 = unaff_s8[4];\n  if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }\n  if (iVar9 == 0) goto LAB_0001aa64;\n  *(int *)(iVar9 + 0x14) = iVar6;\n  do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int unaff_s5;" (primitive_type "int") (identifier "unaff_s5") (; ";")) (declaration "int *unaff_s8;" (primitive_type "int") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "undefined4 local_40 [2];" (type_identifier "undefined4") (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "int *local_38;" (primitive_type "int") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0003f2ec" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_0003f2ec")) (; ";")) (expression_statement "piVar10 = (int *)(uint)param_6;" (assignment_expression "piVar10 = (int *)(uint)param_6" (identifier "piVar10") (= "=") (cast_expression "(int *)(uint)param_6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)param_6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_6")))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0003f2ec" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0003f2ec" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0003f2ec" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0003f2ec")))) (; ";")) (if_statement "if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0))" (( "(") (binary_expression "(param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)" (parenthesized_expression "(param_5 != '\0')" (( "(") (binary_expression "param_5 != '\0'" (identifier "param_5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)" (( "(") (comma_expression "iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0" (assignment_expression "iVar9 = *(int *)(param_1 + 0x74)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x74)" (* "*") (cast_expression "(int *)(param_1 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")"))))) (, ",") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar7 = *(uint *)(param_1 + 0x88);\n    if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }\nLAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x900;\njoined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;\nLAB_0001a1dc:\n    unaff_s5 = 0;\n    *piVar4 = 0x17;\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "uVar7 = *(uint *)(param_1 + 0x88);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x88)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_1 + 0x88)" (* "*") (cast_expression "(uint *)(param_1 + 0x88)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (if_statement "if (uVar7 != 0) {\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar7 == 0) {\n        trap(7);\n      }\n      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;\n      uVar3 = param_2 + 1;\n      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }\n      unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);\n      goto LAB_0001a1e8;\n    }" ({ "{") (if_statement "if (uVar7 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar6 = (param_2 % uVar7) * 0x174 + iVar9;" (assignment_expression "iVar6 = (param_2 % uVar7) * 0x174 + iVar9" (identifier "iVar6") (= "=") (binary_expression "(param_2 % uVar7) * 0x174 + iVar9" (binary_expression "(param_2 % uVar7) * 0x174" (parenthesized_expression "(param_2 % uVar7)" (( "(") (binary_expression "param_2 % uVar7" (identifier "param_2") (% "%") (identifier "uVar7")) () ")")) (* "*") (number_literal "0x174")) (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "uVar3 = param_2 + 1;" (assignment_expression "uVar3 = param_2 + 1" (identifier "uVar3") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }" (if "if") (parenthesized_expression "(*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8))" (( "(") (binary_expression "*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)" (pointer_expression "*(uint *)(iVar6 + 0xec)" (* "*") (cast_expression "(uint *)(iVar6 + 0xec)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xec)" (( "(") (binary_expression "iVar6 + 0xec" (identifier "iVar6") (+ "+") (number_literal "0xec")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar6 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar6 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xe8)" (( "(") (binary_expression "iVar6 + 0xe8" (identifier "iVar6") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (compound_statement "{\n        do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));\n      }" ({ "{") (do_statement "do {\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));" (do "do") (compound_statement "{\n          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;\n          if (uVar7 == 0) {\n            trap(7);\n          }\n          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;\n          uVar3 = uVar3 + 1;\n        }" ({ "{") (if_statement "if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;" (if "if") (parenthesized_expression "(param_2 + uVar7 == uVar3)" (( "(") (binary_expression "param_2 + uVar7 == uVar3" (binary_expression "param_2 + uVar7" (identifier "param_2") (+ "+") (identifier "uVar7")) (== "==") (identifier "uVar3")) () ")")) (goto_statement "goto LAB_00019ee8;" (goto "goto") (statement_identifier "LAB_00019ee8") (; ";"))) (if_statement "if (uVar7 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            trap(7);\n          }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;" (assignment_expression "iVar6 = (uVar3 % uVar7) * 0x174 + iVar9" (identifier "iVar6") (= "=") (binary_expression "(uVar3 % uVar7) * 0x174 + iVar9" (binary_expression "(uVar3 % uVar7) * 0x174" (parenthesized_expression "(uVar3 % uVar7)" (( "(") (binary_expression "uVar3 % uVar7" (identifier "uVar3") (% "%") (identifier "uVar7")) () ")")) (* "*") (number_literal "0x174")) (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "uVar3 = uVar3 + 1;" (assignment_expression "uVar3 = uVar3 + 1" (identifier "uVar3") (= "=") (binary_expression "uVar3 + 1" (identifier "uVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8))" (( "(") (binary_expression "*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)" (pointer_expression "*(uint *)(iVar6 + 0xec)" (* "*") (cast_expression "(uint *)(iVar6 + 0xec)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xec)" (( "(") (binary_expression "iVar6 + 0xec" (identifier "iVar6") (+ "+") (number_literal "0xec")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar6 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar6 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xe8)" (( "(") (binary_expression "iVar6 + 0xe8" (identifier "iVar6") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10);" (assignment_expression "unaff_s5 = FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10)" (identifier "unaff_s5") (= "=") (call_expression "FUN_00019e04(iVar6,param_2,param_3,param_4,1,piVar10)" (identifier "FUN_00019e04") (argument_list "(iVar6,param_2,param_3,param_4,1,piVar10)" (( "(") (identifier "iVar6") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (number_literal "1") (, ",") (identifier "piVar10") () ")")))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (labeled_statement "LAB_00019ee8:\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (statement_identifier "LAB_00019ee8") (: ":") (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_0001a1dc;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a1dc;" (goto "goto") (statement_identifier "LAB_0001a1dc") (; ";"))) (expression_statement "iVar9 = *piVar4;" (assignment_expression "iVar9 = *piVar4" (identifier "iVar9") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar8 = 0x900;" (assignment_expression "uVar8 = 0x900" (identifier "uVar8") (= "=") (number_literal "0x900")) (; ";")) (labeled_statement "joined_r0x00019f14:\n    if (iVar9 == 9) goto LAB_0001aa44;" (statement_identifier "joined_r0x00019f14") (: ":") (if_statement "if (iVar9 == 9) goto LAB_0001aa44;" (if "if") (parenthesized_expression "(iVar9 == 9)" (( "(") (binary_expression "iVar9 == 9" (identifier "iVar9") (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001aa44;" (goto "goto") (statement_identifier "LAB_0001aa44") (; ";")))) (labeled_statement "LAB_0001a1dc:\n    unaff_s5 = 0;" (statement_identifier "LAB_0001a1dc") (: ":") (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";"))) (expression_statement "*piVar4 = 0x17;" (assignment_expression "*piVar4 = 0x17" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (number_literal "0x17")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (if_statement "if ((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))\n  goto LAB_0001a2ec;" (if "if") (parenthesized_expression "((0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))" (( "(") (binary_expression "(0x3ff < (int)param_2) &&\n     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_2)" (( "(") (binary_expression "0x3ff < (int)param_2" (number_literal "0x3ff") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (&& "&&") (parenthesized_expression "(piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0)" (( "(") (comma_expression "piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0" (assignment_expression "piVar4 = (int *)PTR_DAT_0003f05c" (identifier "piVar4") (= "=") (cast_expression "(int *)PTR_DAT_0003f05c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f05c"))) (, ",") (binary_expression "(*(uint *)(param_1 + 0xf8) & 0x240) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 0x240)" (( "(") (binary_expression "*(uint *)(param_1 + 0xf8) & 0x240" (pointer_expression "*(uint *)(param_1 + 0xf8)" (* "*") (cast_expression "(uint *)(param_1 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "0x240")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001a2ec;" (goto "goto") (statement_identifier "LAB_0001a2ec") (; ";"))) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" (identifier "unaff_s5") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec))" (( "(") (binary_expression "*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)" (pointer_expression "*(int *)(param_1 + 0xe8)" (* "*") (cast_expression "(int *)(param_1 + 0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe8)" (( "(") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) () ")")))) (== "==") (pointer_expression "*(int *)(param_1 + 0xec)" (* "*") (cast_expression "(int *)(param_1 + 0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xec)" (( "(") (binary_expression "param_1 + 0xec" (identifier "param_1") (+ "+") (number_literal "0xec")) () ")"))))) () ")")) (compound_statement "{\nLAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    if (iVar9 == 0) goto LAB_0001a1dc;\n    iVar9 = *piVar4;\n    uVar8 = 0x93d;\n    goto joined_r0x00019f14;\n  }" ({ "{") (labeled_statement "LAB_0001a190:\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);" (statement_identifier "LAB_0001a190") (: ":") (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc)" (identifier "FUN_00020df0") (argument_list "(param_1,PTR_DAT_0003f05c + -0x38dc)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x38dc" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x38dc")) () ")"))) (; ";"))) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_0001a1dc;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a1dc;" (goto "goto") (statement_identifier "LAB_0001a1dc") (; ";"))) (expression_statement "iVar9 = *piVar4;" (assignment_expression "iVar9 = *piVar4" (identifier "iVar9") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar8 = 0x93d;" (assignment_expression "uVar8 = 0x93d" (identifier "uVar8") (= "=") (number_literal "0x93d")) (; ";")) (goto_statement "goto joined_r0x00019f14;" (goto "goto") (statement_identifier "joined_r0x00019f14") (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(param_1 + 0x70);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x70)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x70)" (* "*") (cast_expression "(int *)(param_1 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (while_statement "while (iVar6 = iVar9, iVar6 != 0) {\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }" (while "while") (parenthesized_expression "(iVar6 = iVar9, iVar6 != 0)" (( "(") (comma_expression "iVar6 = iVar9, iVar6 != 0" (assignment_expression "iVar6 = iVar9" (identifier "iVar6") (= "=") (identifier "iVar9")) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    unaff_s5 = iVar6;\n    iVar9 = *(int *)(iVar6 + 0x70);\n  }" ({ "{") (expression_statement "unaff_s5 = iVar6;" (assignment_expression "unaff_s5 = iVar6" (identifier "unaff_s5") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar9 = *(int *)(iVar6 + 0x70);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x70)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar6 + 0x70)" (* "*") (cast_expression "(int *)(iVar6 + 0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x70)" (( "(") (binary_expression "iVar6 + 0x70" (identifier "iVar6") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(unaff_s5 + 0xf4) != 0) {\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_s5 + 0xf4) != 0)" (( "(") (binary_expression "*(int *)(unaff_s5 + 0xf4) != 0" (pointer_expression "*(int *)(unaff_s5 + 0xf4)" (* "*") (cast_expression "(int *)(unaff_s5 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s5 + 0xf4)" (( "(") (binary_expression "unaff_s5 + 0xf4" (identifier "unaff_s5") (+ "+") (number_literal "0xf4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);\n    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;\n    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);\n    if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n  }" ({ "{") (expression_statement "unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);" (assignment_expression "unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18)" (identifier "unaff_s8") (= "=") (cast_expression "(int *)(*(code *)PTR_malloc_0003f25c)(0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0003f25c)(0x18)" (parenthesized_expression "(*(code *)PTR_malloc_0003f25c)" (( "(") (pointer_expression "*(code *)PTR_malloc_0003f25c" (* "*") (cast_expression "(code *)PTR_malloc_0003f25c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0003f25c"))) () ")")) (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (if_statement "if (unaff_s8 == (int *)0x0) goto LAB_0001a190;" (if "if") (parenthesized_expression "(unaff_s8 == (int *)0x0)" (( "(") (binary_expression "unaff_s8 == (int *)0x0" (identifier "unaff_s8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001a190;" (goto "goto") (statement_identifier "LAB_0001a190") (; ";"))) (expression_statement "iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);" (assignment_expression "iVar9 = FUN_0001996c(param_3,param_4,unaff_s8)" (identifier "iVar9") (= "=") (call_expression "FUN_0001996c(param_3,param_4,unaff_s8)" (identifier "FUN_0001996c") (argument_list "(param_3,param_4,unaff_s8)" (( "(") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "unaff_s8") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar9 = unaff_s5 + 0x94;\n      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);\n      if (iVar6 != 0) goto LAB_0001ab68;\n      puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);\n      if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }\n      FUN_00019c08();\nLAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);\n      iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;\n      unaff_s5 = 0;\n      *piVar4 = 0x16;\n      goto LAB_0001a1e8;\n    }" ({ "{") (expression_statement "iVar9 = unaff_s5 + 0x94;" (assignment_expression "iVar9 = unaff_s5 + 0x94" (identifier "iVar9") (= "=") (binary_expression "unaff_s5 + 0x94" (identifier "unaff_s5") (+ "+") (number_literal "0x94"))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);" (assignment_expression "iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" (* "*") (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_lock_0003f2a8"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_0001ab68;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab68;" (goto "goto") (statement_identifier "LAB_0001ab68") (; ";"))) (expression_statement "puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);" (assignment_expression "puVar5 = (undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)\n               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" (parenthesized_expression "(*(code *)PTR_tsearch_0003f214)" (( "(") (pointer_expression "*(code *)PTR_tsearch_0003f214" (* "*") (cast_expression "(code *)PTR_tsearch_0003f214" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_tsearch_0003f214"))) () ")")) (argument_list "(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054)" (( "(") (identifier "unaff_s8") (, ",") (binary_expression "unaff_s5 + 0x78" (identifier "unaff_s5") (+ "+") (number_literal "0x78")) (, ",") (binary_expression "PTR_LAB_0003f084 + -0x7054" (identifier "PTR_LAB_0003f084") (+ "+") (number_literal "-0x7054")) () ")"))))) (; ";")) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }\n      else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" (if "if") (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined4 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);\n        FUN_00020df0(unaff_s5,piVar4);\n        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n        if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }\n      }" ({ "{") (expression_statement "piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);" (assignment_expression "piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904)" (identifier "piVar4") (= "=") (cast_expression "(int *)(PTR_DAT_0003f05c + -0x3904)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0003f05c + -0x3904)" (( "(") (binary_expression "PTR_DAT_0003f05c + -0x3904" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3904")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(unaff_s5,piVar4);" (call_expression "FUN_00020df0(unaff_s5,piVar4)" (identifier "FUN_00020df0") (argument_list "(unaff_s5,piVar4)" (( "(") (identifier "unaff_s5") (, ",") (identifier "piVar4") () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" (* "*") (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_unlock_0003f33c"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n          goto LAB_0001a190;\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (goto_statement "goto LAB_0001a190;" (goto "goto") (statement_identifier "LAB_0001a190") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" (else "else") (compound_statement "{\n        piVar4 = (int *)*puVar5;\n        if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }\n        puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }\n      }" ({ "{") (expression_statement "piVar4 = (int *)*puVar5;" (assignment_expression "piVar4 = (int *)*puVar5" (identifier "piVar4") (= "=") (cast_expression "(int *)*puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (if_statement "if (unaff_s8 != piVar4) {\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }" (if "if") (parenthesized_expression "(unaff_s8 != piVar4)" (( "(") (binary_expression "unaff_s8 != piVar4" (identifier "unaff_s8") (!= "!=") (identifier "piVar4")) () ")")) (compound_statement "{\n          (*(code *)PTR_free_0003f2f8)(unaff_s8);\n        }" ({ "{") (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" (identifier "puVar1") (= "=") (identifier "PTR_pthread_mutex_unlock_0003f33c")) (; ";")) (if_statement "if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }\n        else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" (if "if") (parenthesized_expression "((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4))" (( "(") (binary_expression "(uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)" (cast_expression "(uint)piVar4[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]"))) (< "<") (pointer_expression "*(uint *)(unaff_s5 + 0xf4)" (* "*") (cast_expression "(uint *)(unaff_s5 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s5 + 0xf4)" (( "(") (binary_expression "unaff_s5 + 0xf4" (identifier "unaff_s5") (+ "+") (number_literal "0xf4")) () ")"))))) () ")")) (compound_statement "{\n          piVar4[5] = piVar4[5] + 1;\n          iVar9 = (*(code *)puVar1)(iVar9);\n          if (iVar9 == 0) goto LAB_00019f70;\n        }" ({ "{") (expression_statement "piVar4[5] = piVar4[5] + 1;" (assignment_expression "piVar4[5] = piVar4[5] + 1" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "piVar4[5] + 1" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = (*(code *)puVar1)(iVar9);" (assignment_expression "iVar9 = (*(code *)puVar1)(iVar9)" (identifier "iVar9") (= "=") (call_expression "(*(code *)puVar1)(iVar9)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_00019f70;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019f70;" (goto "goto") (statement_identifier "LAB_00019f70") (; ";"))) (} "}")) (else_clause "else {\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" (else "else") (compound_statement "{\n          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);\n          if (iVar9 == 0) goto LAB_0001a190;\n        }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" (* "*") (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_unlock_0003f33c"))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_0001a190;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a190;" (goto "goto") (statement_identifier "LAB_0001a190") (; ";"))) (} "}")))) (} "}")))) (expression_statement "FUN_00019c08();" (call_expression "FUN_00019c08()" (identifier "FUN_00019c08") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0001a2ec:\n      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);" (statement_identifier "LAB_0001a2ec") (: ":") (expression_statement "FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);" (call_expression "FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400)" (identifier "FUN_00020df0") (argument_list "(param_1,piVar4 + -0xe4e,param_2,0x400)" (( "(") (identifier "param_1") (, ",") (binary_expression "piVar4 + -0xe4e" (identifier "piVar4") (+ "+") (number_literal "-0xe4e")) (, ",") (identifier "param_2") (, ",") (number_literal "0x400") () ")"))) (; ";"))) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;" (if "if") (parenthesized_expression "((iVar9 != 0) && (*piVar4 == 9))" (( "(") (binary_expression "(iVar9 != 0) && (*piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*piVar4 == 9)" (( "(") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9")) () ")"))) () ")")) (goto_statement "goto LAB_0001ab78;" (goto "goto") (statement_identifier "LAB_0001ab78") (; ";"))) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar4 = 0x16;" (assignment_expression "*piVar4 = 0x16" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (number_literal "0x16")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00019f70:\n  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" (statement_identifier "LAB_00019f70") (: ":") (if_statement "if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)) {\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "((*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0))" (( "(") (binary_expression "(*(code **)(param_1 + 0x40) != (code *)0x0) &&\n     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)" (parenthesized_expression "(*(code **)(param_1 + 0x40) != (code *)0x0)" (( "(") (binary_expression "*(code **)(param_1 + 0x40) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x40)" (* "*") (cast_expression "(code **)(param_1 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0)" (( "(") (comma_expression "unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),\n     unaff_s5 == 0" (assignment_expression "unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" (identifier "unaff_s5") (= "=") (call_expression "(**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" (parenthesized_expression "(**(code **)(param_1 + 0x40))" (( "(") (pointer_expression "**(code **)(param_1 + 0x40)" (* "*") (pointer_expression "*(code **)(param_1 + 0x40)" (* "*") (cast_expression "(code **)(param_1 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x44),param_3,param_4)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (, ",") (binary_expression "unaff_s5 == 0" (identifier "unaff_s5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar8 = 0x950;\n      if (*piVar4 == 9) goto LAB_0001aa44;\n    }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = 0x950;" (assignment_expression "uVar8 = 0x950" (identifier "uVar8") (= "=") (number_literal "0x950")) (; ";")) (if_statement "if (*piVar4 == 9) goto LAB_0001aa44;" (if "if") (parenthesized_expression "(*piVar4 == 9)" (( "(") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001aa44;" (goto "goto") (statement_identifier "LAB_0001aa44") (; ";"))) (} "}"))) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" (identifier "FUN_00019c48") (argument_list "(param_1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}")))) (expression_statement "unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);" (assignment_expression "unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100)" (identifier "unaff_s8") (= "=") (cast_expression "(int *)(*(code *)PTR_calloc_0003f144)(1,0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_calloc_0003f144)(1,0x100)" (parenthesized_expression "(*(code *)PTR_calloc_0003f144)" (( "(") (pointer_expression "*(code *)PTR_calloc_0003f144" (* "*") (cast_expression "(code *)PTR_calloc_0003f144" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_calloc_0003f144"))) () ")")) (argument_list "(1,0x100)" (( "(") (number_literal "1") (, ",") (number_literal "0x100") () ")"))))) (; ";")) (if_statement "if (unaff_s8 == (int *)0x0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "(unaff_s8 == (int *)0x0)" (( "(") (binary_expression "unaff_s8 == (int *)0x0" (identifier "unaff_s8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar10 = (int *)*piVar4;" (assignment_expression "piVar10 = (int *)*piVar4" (identifier "piVar10") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" (( "(") (pointer_expression "*(code *)PTR_strerror_0003f254" (* "*") (cast_expression "(code *)PTR_strerror_0003f254" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strerror_0003f254"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" (identifier "FUN_00020df0") (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x389c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x389c")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;" (if "if") (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9))" (( "(") (binary_expression "(iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 = 0x962, *piVar4 == 9)" (( "(") (comma_expression "uVar8 = 0x962, *piVar4 == 9" (assignment_expression "uVar8 = 0x962" (identifier "uVar8") (= "=") (number_literal "0x962")) (, ",") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9"))) () ")"))) () ")")) (goto_statement "goto LAB_0001aa44;" (goto "goto") (statement_identifier "LAB_0001aa44") (; ";"))) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" (identifier "FUN_00019c48") (argument_list "(param_1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "*piVar4 = (int)piVar10;" (assignment_expression "*piVar4 = (int)piVar10" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));" (assignment_expression "iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c))" (identifier "iVar9") (= "=") (call_expression "FUN_00021248(*(undefined4 *)(param_1 + 0x7c))" (identifier "FUN_00021248") (argument_list "(*(undefined4 *)(param_1 + 0x7c))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) () ")")))) (; ";")) (expression_statement "unaff_s8[10] = iVar9;" (assignment_expression "unaff_s8[10] = iVar9" (subscript_expression "unaff_s8[10]" (identifier "unaff_s8") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "puVar1 = PTR_malloc_0003f25c;" (assignment_expression "puVar1 = PTR_malloc_0003f25c" (identifier "puVar1") (= "=") (identifier "PTR_malloc_0003f25c")) (; ";")) (if_statement "if (iVar9 == 0) {\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar10 = 0xc;\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar10") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" (( "(") (pointer_expression "*(code *)PTR_strerror_0003f254" (* "*") (cast_expression "(code *)PTR_strerror_0003f254" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strerror_0003f254"))) () ")")) (argument_list "(*piVar10)" (( "(") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" (identifier "FUN_00020df0") (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x389c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x389c")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;" (if "if") (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9))" (( "(") (binary_expression "(iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 = 0x971, *piVar10 == 9)" (( "(") (comma_expression "uVar8 = 0x971, *piVar10 == 9" (assignment_expression "uVar8 = 0x971" (identifier "uVar8") (= "=") (number_literal "0x971")) (, ",") (binary_expression "*piVar10 == 9" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (== "==") (number_literal "9"))) () ")"))) () ")")) (goto_statement "goto LAB_0001aa44;" (goto "goto") (statement_identifier "LAB_0001aa44") (; ";"))) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" (identifier "FUN_00019c48") (argument_list "(param_1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "*piVar10 = 0xc;" (assignment_expression "*piVar10 = 0xc" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "unaff_s8[0x26] = *(int *)(param_1 + 0xf0);" (assignment_expression "unaff_s8[0x26] = *(int *)(param_1 + 0xf0)" (subscript_expression "unaff_s8[0x26]" (identifier "unaff_s8") ([ "[") (number_literal "0x26") (] "]")) (= "=") (pointer_expression "*(int *)(param_1 + 0xf0)" (* "*") (cast_expression "(int *)(param_1 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf0)" (( "(") (binary_expression "param_1 + 0xf0" (identifier "param_1") (+ "+") (number_literal "0xf0")) () ")"))))) (; ";")) (expression_statement "iVar9 = (*(code *)puVar1)(param_4);" (assignment_expression "iVar9 = (*(code *)puVar1)(param_4)" (identifier "iVar9") (= "=") (call_expression "(*(code *)puVar1)(param_4)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")")))) (; ";")) (expression_statement "unaff_s8[0x15] = iVar9;" (assignment_expression "unaff_s8[0x15] = iVar9" (subscript_expression "unaff_s8[0x15]" (identifier "unaff_s8") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar9 == 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    piVar10 = (int *)*piVar4;\n    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);\n    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;\n    unaff_s5 = 0;\n    FUN_00019c48(param_1,param_3,param_4);\n    FUN_00021358(unaff_s8[10]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    *piVar4 = (int)piVar10;\n    goto LAB_0001a1e8;\n  }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar10 = (int *)*piVar4;" (assignment_expression "piVar10 = (int *)*piVar4" (identifier "piVar10") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(piVar10)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" (( "(") (pointer_expression "*(code *)PTR_strerror_0003f254" (* "*") (cast_expression "(code *)PTR_strerror_0003f254" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strerror_0003f254"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" (identifier "FUN_00020df0") (argument_list "(param_1,PTR_DAT_0003f05c + -0x389c,uVar8)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x389c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x389c")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;" (if "if") (parenthesized_expression "((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9))" (( "(") (binary_expression "(iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 = 0x985, *piVar4 == 9)" (( "(") (comma_expression "uVar8 = 0x985, *piVar4 == 9" (assignment_expression "uVar8 = 0x985" (identifier "uVar8") (= "=") (number_literal "0x985")) (, ",") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9"))) () ")"))) () ")")) (goto_statement "goto LAB_0001aa44;" (goto "goto") (statement_identifier "LAB_0001aa44") (; ";"))) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" (identifier "FUN_00019c48") (argument_list "(param_1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" (identifier "FUN_00021358") (argument_list "(unaff_s8[10])" (( "(") (subscript_expression "unaff_s8[10]" (identifier "unaff_s8") ([ "[") (number_literal "10") (] "]")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "*piVar4 = (int)piVar10;" (assignment_expression "*piVar4 = (int)piVar10" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);" (call_expression "(*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4)" (parenthesized_expression "(*(code *)PTR_memcpy_0003f2f0)" (( "(") (pointer_expression "*(code *)PTR_memcpy_0003f2f0" (* "*") (cast_expression "(code *)PTR_memcpy_0003f2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_0003f2f0"))) () ")")) (argument_list "(iVar9,param_3,param_4)" (( "(") (identifier "iVar9") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "unaff_s8[0x24] = param_4;" (assignment_expression "unaff_s8[0x24] = param_4" (subscript_expression "unaff_s8[0x24]" (identifier "unaff_s8") ([ "[") (number_literal "0x24") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "unaff_s8[0x29] = param_2;" (assignment_expression "unaff_s8[0x29] = param_2" (subscript_expression "unaff_s8[0x29]" (identifier "unaff_s8") ([ "[") (number_literal "0x29") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(byte *)(unaff_s8 + 0x2a) = param_6;" (assignment_expression "*(byte *)(unaff_s8 + 0x2a) = param_6" (pointer_expression "*(byte *)(unaff_s8 + 0x2a)" (* "*") (cast_expression "(byte *)(unaff_s8 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s8 + 0x2a)" (( "(") (binary_expression "unaff_s8 + 0x2a" (identifier "unaff_s8") (+ "+") (number_literal "0x2a")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "unaff_s8[6] = param_1;" (assignment_expression "unaff_s8[6] = param_1" (subscript_expression "unaff_s8[6]" (identifier "unaff_s8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar9 = FUN_0002186c();" (assignment_expression "iVar9 = FUN_0002186c()" (identifier "iVar9") (= "=") (call_expression "FUN_0002186c()" (identifier "FUN_0002186c") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_1 + 0xf8)" (* "*") (cast_expression "(uint *)(param_1 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (expression_statement "unaff_s8[0x25] = iVar9;" (assignment_expression "unaff_s8[0x25] = iVar9" (subscript_expression "unaff_s8[0x25]" (identifier "unaff_s8") ([ "[") (number_literal "0x25") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if ((uVar7 & 2) == 0) {\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }\n  else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" (if "if") (parenthesized_expression "((uVar7 & 2) == 0)" (( "(") (binary_expression "(uVar7 & 2) == 0" (parenthesized_expression "(uVar7 & 2)" (( "(") (binary_expression "uVar7 & 2" (identifier "uVar7") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00015248(unaff_s8);\nLAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);\n    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);\n    uVar8 = 0x9e4;\n    if (iVar9 != 0) goto LAB_0001ab44;\n    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }\n  }" ({ "{") (expression_statement "FUN_00015248(unaff_s8);" (call_expression "FUN_00015248(unaff_s8)" (identifier "FUN_00015248") (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (labeled_statement "LAB_0001a03c:\n    piVar10 = (int *)(param_1 + 0xac);" (statement_identifier "LAB_0001a03c") (: ":") (expression_statement "piVar10 = (int *)(param_1 + 0xac);" (assignment_expression "piVar10 = (int *)(param_1 + 0xac)" (identifier "piVar10") (= "=") (cast_expression "(int *)(param_1 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xac)" (( "(") (binary_expression "param_1 + 0xac" (identifier "param_1") (+ "+") (number_literal "0xac")) () ")")))) (; ";"))) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" (* "*") (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_lock_0003f2a8"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "uVar8 = 0x9e4;" (assignment_expression "uVar8 = 0x9e4" (identifier "uVar8") (= "=") (number_literal "0x9e4")) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_0001ab44;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab44;" (goto "goto") (statement_identifier "LAB_0001ab44") (; ";"))) (if_statement "if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec))" (( "(") (binary_expression "*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)" (pointer_expression "*(uint *)(param_1 + 0xe8)" (* "*") (cast_expression "(uint *)(param_1 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe8)" (( "(") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) () ")")))) (< "<") (pointer_expression "*(uint *)(param_1 + 0xec)" (* "*") (cast_expression "(uint *)(param_1 + 0xec)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xec)" (( "(") (binary_expression "param_1 + 0xec" (identifier "param_1") (+ "+") (number_literal "0xec")) () ")"))))) () ")")) (compound_statement "{\n      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;\n      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }\n      iVar9 = *(int *)(param_1 + 8);\n      iVar6 = *(int *)(param_1 + 0xc);\n      unaff_s8[3] = 0;\n      unaff_s8[2] = iVar9;\n      if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }\n      puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n      *(int **)(param_1 + 8) = unaff_s8;\n      iVar9 = (*(code *)puVar1)(piVar10);\n      uVar8 = 0xa01;\n      if (iVar9 != 0) goto LAB_0001ab1c;\n      if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }\n      uVar7 = *(uint *)(param_1 + 0xf8);\n      if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }\n      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }\n      local_40[0] = 0x80000007;\n      local_38 = unaff_s8;\n      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);\n      if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      unaff_s5 = *piVar4;\n      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);\n      goto LAB_0001a72c;\n    }" ({ "{") (expression_statement "*(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;" (assignment_expression "*(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1" (pointer_expression "*(uint *)(param_1 + 0xe8)" (* "*") (cast_expression "(uint *)(param_1 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe8)" (( "(") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0xe8) + 1" (pointer_expression "*(uint *)(param_1 + 0xe8)" (* "*") (cast_expression "(uint *)(param_1 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe8)" (( "(") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0xf8) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0xf8) & 4) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 4)" (( "(") (binary_expression "*(uint *)(param_1 + 0xf8) & 4" (pointer_expression "*(uint *)(param_1 + 0xf8)" (* "*") (cast_expression "(uint *)(param_1 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x30);\n        iVar6 = *(int *)(param_1 + 0x34);\n        unaff_s8[5] = 0;\n        unaff_s8[4] = iVar9;\n        if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }\n        *(int **)(param_1 + 0x30) = unaff_s8;\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x30)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(param_1 + 0x34);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x34)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x34)" (* "*") (cast_expression "(int *)(param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[4] = iVar9;" (assignment_expression "unaff_s8[4] = iVar9" (subscript_expression "unaff_s8[4]" (identifier "unaff_s8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar6 == 0) {\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }\n        else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(int **)(param_1 + 0x34) = unaff_s8;\n        }" ({ "{") (expression_statement "*(int **)(param_1 + 0x34) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x34) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x34)" (* "*") (cast_expression "(int **)(param_1 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}")) (else_clause "else {\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" (else "else") (compound_statement "{\n          *(int **)(iVar9 + 0x14) = unaff_s8;\n        }" ({ "{") (expression_statement "*(int **)(iVar9 + 0x14) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 0x14) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 0x14)" (* "*") (cast_expression "(int **)(iVar9 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}")))) (expression_statement "*(int **)(param_1 + 0x30) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x30) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x30)" (* "*") (cast_expression "(int **)(param_1 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(param_1 + 8);" (assignment_expression "iVar9 = *(int *)(param_1 + 8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar6 = *(int *)(param_1 + 0xc)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[2] = iVar9;" (assignment_expression "unaff_s8[2] = iVar9" (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar6 == 0) {\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }\n      else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int **)(param_1 + 0xc) = unaff_s8;\n      }" ({ "{") (expression_statement "*(int **)(param_1 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0xc) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}")) (else_clause "else {\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" (else "else") (compound_statement "{\n        *(int **)(iVar9 + 0xc) = unaff_s8;\n      }" ({ "{") (expression_statement "*(int **)(iVar9 + 0xc) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 0xc) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 0xc)" (* "*") (cast_expression "(int **)(iVar9 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (} "}")))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" (identifier "puVar1") (= "=") (identifier "PTR_pthread_mutex_unlock_0003f33c")) (; ";")) (expression_statement "*(int **)(param_1 + 8) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 8) = unaff_s8" (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "iVar9 = (*(code *)puVar1)(piVar10);" (assignment_expression "iVar9 = (*(code *)puVar1)(piVar10)" (identifier "iVar9") (= "=") (call_expression "(*(code *)puVar1)(piVar10)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "uVar8 = 0xa01;" (assignment_expression "uVar8 = 0xa01" (identifier "uVar8") (= "=") (number_literal "0xa01")) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_0001ab1c;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab1c;" (goto "goto") (statement_identifier "LAB_0001ab1c") (; ";"))) (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" (if "if") (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" (( "(") (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" (* "*") (cast_expression "(code **)(param_1 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);\n      }" ({ "{") (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" (( "(") (pointer_expression "**(code **)(param_1 + 0x50)" (* "*") (pointer_expression "*(code **)(param_1 + 0x50)" (* "*") (cast_expression "(code **)(param_1 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (, ",") (identifier "unaff_s8") (, ",") (binary_expression "unaff_s8 + 0xc" (identifier "unaff_s8") (+ "+") (number_literal "0xc")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_1 + 0xf8)" (* "*") (cast_expression "(uint *)(param_1 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (if_statement "if ((uVar7 & 4) == 0) {\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }\n      else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" (if "if") (parenthesized_expression "((uVar7 & 4) == 0)" (( "(") (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" (( "(") (binary_expression "uVar7 & 4" (identifier "uVar7") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x90);\n        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);\n        unaff_s8[0x17] = iVar9;\n        if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(param_1 + 0x90);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x90)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x90)" (* "*") (cast_expression "(int *)(param_1 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "unaff_s8[0x16] = *(int *)(param_1 + 0x8c);" (assignment_expression "unaff_s8[0x16] = *(int *)(param_1 + 0x8c)" (subscript_expression "unaff_s8[0x16]" (identifier "unaff_s8") ([ "[") (number_literal "0x16") (] "]")) (= "=") (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" (identifier "param_1") (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (expression_statement "unaff_s8[0x17] = iVar9;" (assignment_expression "unaff_s8[0x17] = iVar9" (subscript_expression "unaff_s8[0x17]" (identifier "unaff_s8") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if ((uVar7 & 0x200) == 0) {\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" (if "if") (parenthesized_expression "((uVar7 & 0x200) == 0)" (( "(") (binary_expression "(uVar7 & 0x200) == 0" (parenthesized_expression "(uVar7 & 0x200)" (( "(") (binary_expression "uVar7 & 0x200" (identifier "uVar7") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001a9b8:\n          unaff_s5 = 1;\n          if (param_5 == '\0') goto LAB_0001a1e8;\n          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;\n          iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);\n          if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }\nLAB_0001a8dc:\n          unaff_s5 = 1;\n          goto LAB_0001a1e8;\n        }" ({ "{") (labeled_statement "LAB_0001a9b8:\n          unaff_s5 = 1;" (statement_identifier "LAB_0001a9b8") (: ":") (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";"))) (if_statement "if (param_5 == '\0') goto LAB_0001a1e8;" (if "if") (parenthesized_expression "(param_5 == '\0')" (( "(") (binary_expression "param_5 == '\0'" (identifier "param_5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";"))) (if_statement "if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xdc) == -1)" (( "(") (binary_expression "*(int *)(param_1 + 0xdc) == -1" (pointer_expression "*(int *)(param_1 + 0xdc)" (* "*") (cast_expression "(int *)(param_1 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xdc)" (( "(") (binary_expression "param_1 + 0xdc" (identifier "param_1") (+ "+") (number_literal "0xdc")) () ")")))) (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";"))) (expression_statement "iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);" (assignment_expression "iVar9 = (*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_write_0003f220)\n                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (parenthesized_expression "(*(code *)PTR_write_0003f220)" (( "(") (pointer_expression "*(code *)PTR_write_0003f220" (* "*") (cast_expression "(code *)PTR_write_0003f220" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_write_0003f220"))) () ")")) (argument_list "(*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8)" (( "(") (pointer_expression "*(int *)(param_1 + 0xdc)" (* "*") (cast_expression "(int *)(param_1 + 0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xdc)" (( "(") (binary_expression "param_1 + 0xdc" (identifier "param_1") (+ "+") (number_literal "0xdc")) () ")")))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x28d8" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x28d8")) (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if ((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }" (if "if") (parenthesized_expression "((iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb))" (( "(") (binary_expression "(iVar9 < 1) &&\n             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)" (parenthesized_expression "(iVar9 < 1)" (( "(") (binary_expression "iVar9 < 1" (identifier "iVar9") (< "<") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)" (( "(") (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar4 != 0xb" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (!= "!=") (number_literal "0xb"))) () ")"))) () ")")) (compound_statement "{\n            unaff_s5 = 1;\n            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);\n            goto LAB_0001a1e8;\n          }" ({ "{") (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4)" (identifier "FUN_00020df0") (argument_list "(param_1,PTR_DAT_0003f05c + -0x37f4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x37f4" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x37f4")) () ")"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (labeled_statement "LAB_0001a8dc:\n          unaff_s5 = 1;" (statement_identifier "LAB_0001a8dc") (: ":") (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" (else "else") (compound_statement "{\n        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);\n        if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }\n        uVar7 = *(uint *)(param_1 + 0xf8);\n        if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }\n      }" ({ "{") (expression_statement "iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);" (assignment_expression "iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" (identifier "iVar9") (= "=") (call_expression "FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" (identifier "FUN_00023bd4") (argument_list "(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,\n                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8)" (( "(") (binary_expression "unaff_s8 + 0x16" (identifier "unaff_s8") (+ "+") (number_literal "0x16")) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x3824" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3824")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x84)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x84)" (( "(") (binary_expression "param_1 + 0x84" (identifier "param_1") (+ "+") (number_literal "0x84")) () ")")))) (, ",") (binary_expression "PTR_LAB_0003f084 + -0x445c" (identifier "PTR_LAB_0003f084") (+ "+") (number_literal "-0x445c")) (, ",") (identifier "unaff_s8") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          unaff_s5 = *piVar4;\n          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);\n          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);\n          goto LAB_0001a72c;\n        }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "unaff_s5 = *piVar4;" (assignment_expression "unaff_s5 = *piVar4" (identifier "unaff_s5") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" (( "(") (pointer_expression "*(code *)PTR_strerror_0003f254" (* "*") (cast_expression "(code *)PTR_strerror_0003f254" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strerror_0003f254"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8)" (identifier "FUN_00020df0") (argument_list "(param_1,PTR_DAT_0003f05c + -0x3814,uVar8)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x3814" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3814")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (goto_statement "goto LAB_0001a72c;" (goto "goto") (statement_identifier "LAB_0001a72c") (; ";")) (} "}"))) (expression_statement "uVar7 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0xf8)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_1 + 0xf8)" (* "*") (cast_expression "(uint *)(param_1 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (if_statement "if ((uVar7 & 0x200) == 0) {\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" (if "if") (parenthesized_expression "((uVar7 & 0x200) == 0)" (( "(") (binary_expression "(uVar7 & 0x200) == 0" (parenthesized_expression "(uVar7 & 0x200)" (( "(") (binary_expression "uVar7 & 0x200" (identifier "uVar7") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;\n          goto LAB_0001a9b8;\n        }" ({ "{") (if_statement "if ((uVar7 & 4) != 0) goto LAB_0001a8dc;" (if "if") (parenthesized_expression "((uVar7 & 4) != 0)" (( "(") (binary_expression "(uVar7 & 4) != 0" (parenthesized_expression "(uVar7 & 4)" (( "(") (binary_expression "uVar7 & 4" (identifier "uVar7") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a8dc;" (goto "goto") (statement_identifier "LAB_0001a8dc") (; ";"))) (goto_statement "goto LAB_0001a9b8;" (goto "goto") (statement_identifier "LAB_0001a9b8") (; ";")) (} "}"))) (} "}")))) (if_statement "if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }" (if "if") (parenthesized_expression "(((uVar7 & 0x1000) != 0) && (param_5 == '\0'))" (( "(") (binary_expression "((uVar7 & 0x1000) != 0) && (param_5 == '\0')" (parenthesized_expression "((uVar7 & 0x1000) != 0)" (( "(") (binary_expression "(uVar7 & 0x1000) != 0" (parenthesized_expression "(uVar7 & 0x1000)" (( "(") (binary_expression "uVar7 & 0x1000" (identifier "uVar7") (& "&") (number_literal "0x1000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_5 == '\0')" (( "(") (binary_expression "param_5 == '\0'" (identifier "param_5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        iVar9 = *(int *)(param_1 + 0x20);\n        iVar6 = *(int *)(param_1 + 0x24);\n        unaff_s8[1] = 0;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;\n        *unaff_s8 = iVar9;\n        if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }\n        *(int **)(param_1 + 0x24) = unaff_s8;\n        unaff_s5 = 1;\n        *(int **)(param_1 + 0x20) = unaff_s8;\n        goto LAB_0001a1e8;\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x20)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x24)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "unaff_s8[1] = 0;" (assignment_expression "unaff_s8[1] = 0" (subscript_expression "unaff_s8[1]" (identifier "unaff_s8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 7;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" (identifier "unaff_s8") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (binary_expression "unaff_s8[0x2c] | 7" (subscript_expression "unaff_s8[0x2c]" (identifier "unaff_s8") ([ "[") (number_literal "0x2c") (] "]")) (| "|") (number_literal "7"))) (; ";")) (expression_statement "*unaff_s8 = iVar9;" (assignment_expression "*unaff_s8 = iVar9" (pointer_expression "*unaff_s8" (* "*") (identifier "unaff_s8")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar6 != 0) {\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(int **)(iVar9 + 4) = unaff_s8;\n          unaff_s5 = 1;\n          *(int **)(param_1 + 0x20) = unaff_s8;\n          goto LAB_0001a1e8;\n        }" ({ "{") (expression_statement "*(int **)(iVar9 + 4) = unaff_s8;" (assignment_expression "*(int **)(iVar9 + 4) = unaff_s8" (pointer_expression "*(int **)(iVar9 + 4)" (* "*") (cast_expression "(int **)(iVar9 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int **)(param_1 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x20) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x20)" (* "*") (cast_expression "(int **)(param_1 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "*(int **)(param_1 + 0x24) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x24) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x24)" (* "*") (cast_expression "(int **)(param_1 + 0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int **)(param_1 + 0x20) = unaff_s8;" (assignment_expression "*(int **)(param_1 + 0x20) = unaff_s8" (pointer_expression "*(int **)(param_1 + 0x20)" (* "*") (cast_expression "(int **)(param_1 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "unaff_s8")) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "local_40[0] = 0x80000007;" (assignment_expression "local_40[0] = 0x80000007" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x80000007")) (; ";")) (expression_statement "local_38 = unaff_s8;" (assignment_expression "local_38 = unaff_s8" (identifier "local_38") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);" (assignment_expression "iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" (parenthesized_expression "(*(code *)PTR_epoll_ctl_0003f278)" (( "(") (pointer_expression "*(code *)PTR_epoll_ctl_0003f278" (* "*") (cast_expression "(code *)PTR_epoll_ctl_0003f278" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_epoll_ctl_0003f278"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xcc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xcc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xcc)" (( "(") (binary_expression "param_1 + 0xcc" (identifier "param_1") (+ "+") (number_literal "0xcc")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "param_2") (, ",") (identifier "local_40") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        unaff_s5 = 1;\n        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;\n        goto LAB_0001a1e8;\n      }" ({ "{") (expression_statement "unaff_s5 = 1;" (assignment_expression "unaff_s5 = 1" (identifier "unaff_s5") (= "=") (number_literal "1")) (; ";")) (expression_statement "unaff_s8[0x2c] = unaff_s8[0x2c] | 8;" (assignment_expression "unaff_s8[0x2c] = unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" (identifier "unaff_s8") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (binary_expression "unaff_s8[0x2c] | 8" (subscript_expression "unaff_s8[0x2c]" (identifier "unaff_s8") ([ "[") (number_literal "0x2c") (] "]")) (| "|") (number_literal "8"))) (; ";")) (goto_statement "goto LAB_0001a1e8;" (goto "goto") (statement_identifier "LAB_0001a1e8") (; ";")) (} "}"))) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "unaff_s5 = *piVar4;" (assignment_expression "unaff_s5 = *piVar4" (identifier "unaff_s5") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);" (assignment_expression "uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5)" (identifier "uVar8") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strerror_0003f254)" (( "(") (pointer_expression "*(code *)PTR_strerror_0003f254" (* "*") (cast_expression "(code *)PTR_strerror_0003f254" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strerror_0003f254"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8)" (identifier "FUN_00020df0") (argument_list "(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x4da8" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x4da8")) (, ",") (identifier "uVar8") () ")"))) (; ";")) (goto_statement "goto LAB_0001a72c;" (goto "goto") (statement_identifier "LAB_0001a72c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" (else "else") (compound_statement "{\n    piVar10 = (int *)0x1;\n    unaff_s8[0x3c] = 1;\n    FUN_00029db0(unaff_s8);\n    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);\n    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));\n    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);\n    if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }\n    if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }\n    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);\n    iVar9 = (*(code *)PTR_close_0003f158)(param_2);\n    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }\n    FUN_00019c48(param_1,param_3,param_4);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n    (*(code *)PTR_free_0003f2f8)(unaff_s8);\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);\n  }" ({ "{") (expression_statement "piVar10 = (int *)0x1;" (assignment_expression "piVar10 = (int *)0x1" (identifier "piVar10") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "unaff_s8[0x3c] = 1;" (assignment_expression "unaff_s8[0x3c] = 1" (subscript_expression "unaff_s8[0x3c]" (identifier "unaff_s8") ([ "[") (number_literal "0x3c") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00029db0(unaff_s8);" (call_expression "FUN_00029db0(unaff_s8)" (identifier "FUN_00029db0") (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);" (call_expression "(*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49)" (parenthesized_expression "(*(code *)PTR_gnutls_init_0003f218)" (( "(") (pointer_expression "*(code *)PTR_gnutls_init_0003f218" (* "*") (cast_expression "(code *)PTR_gnutls_init_0003f218" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_init_0003f218"))) () ")")) (argument_list "(unaff_s8 + 0x39,0x49)" (( "(") (binary_expression "unaff_s8 + 0x39" (identifier "unaff_s8") (+ "+") (number_literal "0x39")) (, ",") (number_literal "0x49") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));" (call_expression "(*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c))" (parenthesized_expression "(*(code *)PTR_gnutls_priority_set_0003f1b0)" (( "(") (pointer_expression "*(code *)PTR_gnutls_priority_set_0003f1b0" (* "*") (cast_expression "(code *)PTR_gnutls_priority_set_0003f1b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_priority_set_0003f1b0"))) () ")")) (argument_list "(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c))" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x10c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);" (call_expression "(*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8)" (parenthesized_expression "(*(code *)PTR_gnutls_session_set_ptr_0003f258)" (( "(") (pointer_expression "*(code *)PTR_gnutls_session_set_ptr_0003f258" (* "*") (cast_expression "(code *)PTR_gnutls_session_set_ptr_0003f258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_session_set_ptr_0003f258"))) () ")")) (argument_list "(unaff_s8[0x39],unaff_s8)" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (identifier "unaff_s8") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x110) == 1) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x110) == 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x110) == 1" (pointer_expression "*(int *)(param_1 + 0x110)" (* "*") (cast_expression "(int *)(param_1 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));\nLAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);\n      if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }\n      goto LAB_0001a03c;\n    }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));" (call_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114))" (parenthesized_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)" (( "(") (pointer_expression "*(code *)PTR_gnutls_credentials_set_0003f1d8" (* "*") (cast_expression "(code *)PTR_gnutls_credentials_set_0003f1d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_credentials_set_0003f1d8"))) () ")")) (argument_list "(unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114))" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x114)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x114)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")")))) () ")"))) (; ";")) (labeled_statement "LAB_0001a950:\n      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);" (statement_identifier "LAB_0001a950") (: ":") (expression_statement "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);" (call_expression "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2)" (parenthesized_expression "(*(code *)PTR_gnutls_transport_set_int2_0003f1ec)" (( "(") (pointer_expression "*(code *)PTR_gnutls_transport_set_int2_0003f1ec" (* "*") (cast_expression "(code *)PTR_gnutls_transport_set_int2_0003f1ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_transport_set_int2_0003f1ec"))) () ")")) (argument_list "(unaff_s8[0x39],param_2,param_2)" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_2") () ")"))) (; ";"))) (if_statement "if (*(int *)(param_1 + 0x138) != 0) {\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x138) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x138) != 0" (pointer_expression "*(int *)(param_1 + 0x138)" (* "*") (cast_expression "(int *)(param_1 + 0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x138)" (( "(") (binary_expression "param_1 + 0x138" (identifier "param_1") (+ "+") (number_literal "0x138")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);\n      }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);" (call_expression "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_server_set_request_0003f274)" (( "(") (pointer_expression "*(code *)PTR_gnutls_certificate_server_set_request_0003f274" (* "*") (cast_expression "(code *)PTR_gnutls_certificate_server_set_request_0003f274" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_certificate_server_set_request_0003f274"))) () ")")) (argument_list "(unaff_s8[0x39],1)" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001a03c;" (goto "goto") (statement_identifier "LAB_0001a03c") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x110) == 4) {\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x110) == 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x110) == 4" (pointer_expression "*(int *)(param_1 + 0x110)" (* "*") (cast_expression "(int *)(param_1 + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      (*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));\n      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);\n      goto LAB_0001a950;\n    }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));" (call_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)\n                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c))" (parenthesized_expression "(*(code *)PTR_gnutls_credentials_set_0003f1d8)" (( "(") (pointer_expression "*(code *)PTR_gnutls_credentials_set_0003f1d8" (* "*") (cast_expression "(code *)PTR_gnutls_credentials_set_0003f1d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_credentials_set_0003f1d8"))) () ")")) (argument_list "(unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c))" (( "(") (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (, ",") (number_literal "4") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x11c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11c)" (( "(") (binary_expression "param_1 + 0x11c" (identifier "param_1") (+ "+") (number_literal "0x11c")) () ")")))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);" (call_expression "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)\n                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c)" (parenthesized_expression "(*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)" (( "(") (pointer_expression "*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238" (* "*") (cast_expression "(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_psk_set_server_credentials_function_0003f238"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x11c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11c)" (( "(") (binary_expression "param_1 + 0x11c" (identifier "param_1") (+ "+") (number_literal "0x11c")) () ")")))) (, ",") (binary_expression "PTR_LAB_0003f084 + -0x703c" (identifier "PTR_LAB_0003f084") (+ "+") (number_literal "-0x703c")) () ")"))) (; ";")) (goto_statement "goto LAB_0001a950;" (goto "goto") (statement_identifier "LAB_0001a950") (; ";")) (} "}"))) (expression_statement "FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);" (call_expression "FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c)" (identifier "FUN_00020df0") (argument_list "(unaff_s8[6],PTR_DAT_0003f05c + -0x387c)" (( "(") (subscript_expression "unaff_s8[6]" (identifier "unaff_s8") ([ "[") (number_literal "6") (] "]")) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x387c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x387c")) () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n    {\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }" (if "if") (parenthesized_expression "((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))" (( "(") (binary_expression "(iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" (( "(") (comma_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9"))) () ")"))) () ")")) (compound_statement "{\n      uVar8 = 0x9c3;\n      goto LAB_0001aa44;\n    }" ({ "{") (expression_statement "uVar8 = 0x9c3;" (assignment_expression "uVar8 = 0x9c3" (identifier "uVar8") (= "=") (number_literal "0x9c3")) (; ";")) (goto_statement "goto LAB_0001aa44;" (goto "goto") (statement_identifier "LAB_0001aa44") (; ";")) (} "}"))) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" (identifier "FUN_00019c48") (argument_list "(param_1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15])" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8[0x15])" (( "(") (subscript_expression "unaff_s8[0x15]" (identifier "unaff_s8") ([ "[") (number_literal "0x15") (] "]")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003f070" (* "*") (pointer_expression "*(code **)PTR_DAT_0003f070" (* "*") (cast_expression "(code **)PTR_DAT_0003f070" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003f070")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,\n               PTR_DAT_0003f05c + -0x383c)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003f068" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f068"))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) (, ",") (number_literal "0x9c9") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x383c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x383c")) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_unlock_0003f33c)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_unlock_0003f33c" (* "*") (cast_expression "(code *)PTR_pthread_mutex_unlock_0003f33c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_unlock_0003f33c"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "uVar8 = 0x9ea;" (assignment_expression "uVar8 = 0x9ea" (identifier "uVar8") (= "=") (number_literal "0x9ea")) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_0001ab1c;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab1c;" (goto "goto") (statement_identifier "LAB_0001ab1c") (; ";"))) (expression_statement "unaff_s5 = 0x17;" (assignment_expression "unaff_s5 = 0x17" (identifier "unaff_s5") (= "=") (number_literal "0x17")) (; ";")) (expression_statement "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);" (call_expression "FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea)" (identifier "FUN_00020df0") (argument_list "(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x38dc" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x38dc")) (, ",") (number_literal "0x9ea") () ")"))) (; ";")) (labeled_statement "LAB_0001a72c:\n  if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" (statement_identifier "LAB_0001a72c") (: ":") (if_statement "if (*(code **)(param_1 + 0x50) != (code *)0x0) {\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" (if "if") (parenthesized_expression "(*(code **)(param_1 + 0x50) != (code *)0x0)" (( "(") (binary_expression "*(code **)(param_1 + 0x50) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x50)" (* "*") (cast_expression "(code **)(param_1 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);\n  }" ({ "{") (expression_statement "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);" (call_expression "(**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" (parenthesized_expression "(**(code **)(param_1 + 0x50))" (( "(") (pointer_expression "**(code **)(param_1 + 0x50)" (* "*") (pointer_expression "*(code **)(param_1 + 0x50)" (* "*") (cast_expression "(code **)(param_1 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (, ",") (identifier "unaff_s8") (, ",") (binary_expression "unaff_s8 + 0xc" (identifier "unaff_s8") (+ "+") (number_literal "0xc")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")))) (if_statement "if (unaff_s8[0x39] != 0) {\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }" (if "if") (parenthesized_expression "(unaff_s8[0x39] != 0)" (( "(") (binary_expression "unaff_s8[0x39] != 0" (subscript_expression "unaff_s8[0x39]" (identifier "unaff_s8") ([ "[") (number_literal "0x39") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_gnutls_deinit_0003f338)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_deinit_0003f338)();" (call_expression "(*(code *)PTR_gnutls_deinit_0003f338)()" (parenthesized_expression "(*(code *)PTR_gnutls_deinit_0003f338)" (( "(") (pointer_expression "*(code *)PTR_gnutls_deinit_0003f338" (* "*") (cast_expression "(code *)PTR_gnutls_deinit_0003f338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_deinit_0003f338"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = (*(code *)PTR_close_0003f158)(param_2);" (assignment_expression "iVar9 = (*(code *)PTR_close_0003f158)(param_2)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_2)" (parenthesized_expression "(*(code *)PTR_close_0003f158)" (( "(") (pointer_expression "*(code *)PTR_close_0003f158" (* "*") (cast_expression "(code *)PTR_close_0003f158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0003f158"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar8 = 0xa56;\n    if (*piVar4 == 9) goto LAB_0001aa44;\n  }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = 0xa56;" (assignment_expression "uVar8 = 0xa56" (identifier "uVar8") (= "=") (number_literal "0xa56")) (; ";")) (if_statement "if (*piVar4 == 9) goto LAB_0001aa44;" (if "if") (parenthesized_expression "(*piVar4 == 9)" (( "(") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001aa44;" (goto "goto") (statement_identifier "LAB_0001aa44") (; ";"))) (} "}"))) (expression_statement "FUN_00019c48(param_1,param_3,param_4);" (call_expression "FUN_00019c48(param_1,param_3,param_4)" (identifier "FUN_00019c48") (argument_list "(param_1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);" (assignment_expression "iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_lock_0003f2a8)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_lock_0003f2a8" (* "*") (cast_expression "(code *)PTR_pthread_mutex_lock_0003f2a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_lock_0003f2a8"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_0001ab40;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab40;" (goto "goto") (statement_identifier "LAB_0001ab40") (; ";"))) (if_statement "if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0xf8) & 4) != 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0xf8) & 4) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0xf8) & 4)" (( "(") (binary_expression "*(uint *)(param_1 + 0xf8) & 4" (pointer_expression "*(uint *)(param_1 + 0xf8)" (* "*") (cast_expression "(uint *)(param_1 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a804;" (goto "goto") (statement_identifier "LAB_0001a804") (; ";"))) (expression_statement "iVar9 = unaff_s8[4];" (assignment_expression "iVar9 = unaff_s8[4]" (identifier "iVar9") (= "=") (subscript_expression "unaff_s8[4]" (identifier "unaff_s8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (unaff_s8[5] == 0) {\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }\n  else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" (if "if") (parenthesized_expression "(unaff_s8[5] == 0)" (( "(") (binary_expression "unaff_s8[5] == 0" (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(param_1 + 0x30) = iVar9;\n    iVar6 = 0;\n  }" ({ "{") (expression_statement "*(int *)(param_1 + 0x30) = iVar9;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar9" (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" (else "else") (compound_statement "{\n    *(int *)(unaff_s8[5] + 0x10) = iVar9;\n    iVar9 = unaff_s8[4];\n    iVar6 = unaff_s8[5];\n  }" ({ "{") (expression_statement "*(int *)(unaff_s8[5] + 0x10) = iVar9;" (assignment_expression "*(int *)(unaff_s8[5] + 0x10) = iVar9" (pointer_expression "*(int *)(unaff_s8[5] + 0x10)" (* "*") (cast_expression "(int *)(unaff_s8[5] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s8[5] + 0x10)" (( "(") (binary_expression "unaff_s8[5] + 0x10" (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar9 = unaff_s8[4];" (assignment_expression "iVar9 = unaff_s8[4]" (identifier "iVar9") (= "=") (subscript_expression "unaff_s8[4]" (identifier "unaff_s8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar6 = unaff_s8[5];" (assignment_expression "iVar6 = unaff_s8[5]" (identifier "iVar6") (= "=") (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar9 == 0) goto LAB_0001aa64;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001aa64;" (goto "goto") (statement_identifier "LAB_0001aa64") (; ";"))) (expression_statement "*(int *)(iVar9 + 0x14) = iVar6;" (assignment_expression "*(int *)(iVar9 + 0x14) = iVar6" (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (do_statement "do {\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  } while( true );" (do "do") (compound_statement "{\n    unaff_s8[4] = 0;\n    unaff_s8[5] = 0;\nLAB_0001a804:\n    iVar9 = unaff_s8[2];\n    if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }\n    if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }\n    puVar1 = PTR_pthread_mutex_unlock_0003f33c;\n    unaff_s8[2] = 0;\n    unaff_s8[3] = 0;\n    iVar9 = (*(code *)puVar1)(piVar10);\n    if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }\n    uVar8 = 0xa67;\nLAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);\nLAB_0001ab40:\n    uVar8 = 0xa5b;\nLAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);\nLAB_0001ab68:\n    FUN_00019bc8();\nLAB_0001ab78:\n    uVar8 = 0x912;\nLAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);\n    iVar6 = extraout_v1;\nLAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;\n  }" ({ "{") (expression_statement "unaff_s8[4] = 0;" (assignment_expression "unaff_s8[4] = 0" (subscript_expression "unaff_s8[4]" (identifier "unaff_s8") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[5] = 0;" (assignment_expression "unaff_s8[5] = 0" (subscript_expression "unaff_s8[5]" (identifier "unaff_s8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001a804:\n    iVar9 = unaff_s8[2];" (statement_identifier "LAB_0001a804") (: ":") (expression_statement "iVar9 = unaff_s8[2];" (assignment_expression "iVar9 = unaff_s8[2]" (identifier "iVar9") (= "=") (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (unaff_s8[3] == 0) {\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }\n    else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" (if "if") (parenthesized_expression "(unaff_s8[3] == 0)" (( "(") (binary_expression "unaff_s8[3] == 0" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(param_1 + 8) = iVar9;\n      iVar6 = 0;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 8) = iVar9;" (assignment_expression "*(int *)(param_1 + 8) = iVar9" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" (else "else") (compound_statement "{\n      *(int *)(unaff_s8[3] + 8) = iVar9;\n      iVar9 = unaff_s8[2];\n      iVar6 = unaff_s8[3];\n    }" ({ "{") (expression_statement "*(int *)(unaff_s8[3] + 8) = iVar9;" (assignment_expression "*(int *)(unaff_s8[3] + 8) = iVar9" (pointer_expression "*(int *)(unaff_s8[3] + 8)" (* "*") (cast_expression "(int *)(unaff_s8[3] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s8[3] + 8)" (( "(") (binary_expression "unaff_s8[3] + 8" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar9 = unaff_s8[2];" (assignment_expression "iVar9 = unaff_s8[2]" (identifier "iVar9") (= "=") (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar6 = unaff_s8[3];" (assignment_expression "iVar6 = unaff_s8[3]" (identifier "iVar6") (= "=") (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar9 == 0) {\n      *(int *)(param_1 + 0xc) = iVar6;\n    }\n    else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(param_1 + 0xc) = iVar6;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 0xc) = iVar6;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar6" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" (else "else") (compound_statement "{\n      *(int *)(iVar9 + 0xc) = iVar6;\n    }" ({ "{") (expression_statement "*(int *)(iVar9 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar9 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar9 + 0xc)" (* "*") (cast_expression "(int *)(iVar9 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (} "}")))) (expression_statement "puVar1 = PTR_pthread_mutex_unlock_0003f33c;" (assignment_expression "puVar1 = PTR_pthread_mutex_unlock_0003f33c" (identifier "puVar1") (= "=") (identifier "PTR_pthread_mutex_unlock_0003f33c")) (; ";")) (expression_statement "unaff_s8[2] = 0;" (assignment_expression "unaff_s8[2] = 0" (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s8[3] = 0;" (assignment_expression "unaff_s8[3] = 0" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = (*(code *)puVar1)(piVar10);" (assignment_expression "iVar9 = (*(code *)puVar1)(piVar10)" (identifier "iVar9") (= "=") (call_expression "(*(code *)puVar1)(piVar10)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00021358(unaff_s8[10]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);\n      (*(code *)PTR_free_0003f2f8)(unaff_s8);\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }\nLAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }\n      (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    }" ({ "{") (expression_statement "FUN_00021358(unaff_s8[10]);" (call_expression "FUN_00021358(unaff_s8[10])" (identifier "FUN_00021358") (argument_list "(unaff_s8[10])" (( "(") (subscript_expression "unaff_s8[10]" (identifier "unaff_s8") ([ "[") (number_literal "10") (] "]")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8[0x15])" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8[0x15])" (( "(") (subscript_expression "unaff_s8[0x15]" (identifier "unaff_s8") ([ "[") (number_literal "0x15") (] "]")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0003f2f8)(unaff_s8);" (call_expression "(*(code *)PTR_free_0003f2f8)(unaff_s8)" (parenthesized_expression "(*(code *)PTR_free_0003f2f8)" (( "(") (pointer_expression "*(code *)PTR_free_0003f2f8" (* "*") (cast_expression "(code *)PTR_free_0003f2f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003f2f8"))) () ")")) (argument_list "(unaff_s8)" (( "(") (identifier "unaff_s8") () ")"))) (; ";")) (expression_statement "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0003f204)()" (parenthesized_expression "(*(code *)PTR___errno_location_0003f204)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0003f204" (* "*") (cast_expression "(code *)PTR___errno_location_0003f204" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0003f204"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (unaff_s5 == 0) {\n        *piVar4 = 0x16;\n      }\n      else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" (if "if") (parenthesized_expression "(unaff_s5 == 0)" (( "(") (binary_expression "unaff_s5 == 0" (identifier "unaff_s5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *piVar4 = 0x16;\n      }" ({ "{") (expression_statement "*piVar4 = 0x16;" (assignment_expression "*piVar4 = 0x16" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (number_literal "0x16")) (; ";")) (} "}")) (else_clause "else {\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" (else "else") (compound_statement "{\n        *piVar4 = unaff_s5;\n        unaff_s5 = 0;\n      }" ({ "{") (expression_statement "*piVar4 = unaff_s5;" (assignment_expression "*piVar4 = unaff_s5" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0001a1e8:\n      if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }" (statement_identifier "LAB_0001a1e8") (: ":") (if_statement "if (local_2c == *(int *)puVar2) {\n        return unaff_s5;\n      }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar2)" (( "(") (binary_expression "local_2c == *(int *)puVar2" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n        return unaff_s5;\n      }" ({ "{") (return_statement "return unaff_s5;" (return "return") (identifier "unaff_s5") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_0003f2b8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003f2b8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0003f2b8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0003f2b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0003f2b8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar8 = 0xa67;" (assignment_expression "uVar8 = 0xa67" (identifier "uVar8") (= "=") (number_literal "0xa67")) (; ";")) (labeled_statement "LAB_0001ab1c:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);" (statement_identifier "LAB_0001ab1c") (: ":") (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003f070" (* "*") (pointer_expression "*(code **)PTR_DAT_0003f070" (* "*") (cast_expression "(code **)PTR_DAT_0003f070" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003f070")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51b8)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003f068" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f068"))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x51b8" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x51b8")) () ")"))) (; ";"))) (labeled_statement "LAB_0001ab40:\n    uVar8 = 0xa5b;" (statement_identifier "LAB_0001ab40") (: ":") (expression_statement "uVar8 = 0xa5b;" (assignment_expression "uVar8 = 0xa5b" (identifier "uVar8") (= "=") (number_literal "0xa5b")) (; ";"))) (labeled_statement "LAB_0001ab44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);" (statement_identifier "LAB_0001ab44") (: ":") (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003f070" (* "*") (pointer_expression "*(code **)PTR_DAT_0003f070" (* "*") (cast_expression "(code **)PTR_DAT_0003f070" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003f070")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x51e0)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003f068" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f068"))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x51e0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x51e0")) () ")"))) (; ";"))) (labeled_statement "LAB_0001ab68:\n    FUN_00019bc8();" (statement_identifier "LAB_0001ab68") (: ":") (expression_statement "FUN_00019bc8();" (call_expression "FUN_00019bc8()" (identifier "FUN_00019bc8") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_0001ab78:\n    uVar8 = 0x912;" (statement_identifier "LAB_0001ab78") (: ":") (expression_statement "uVar8 = 0x912;" (assignment_expression "uVar8 = 0x912" (identifier "uVar8") (= "=") (number_literal "0x912")) (; ";"))) (labeled_statement "LAB_0001aa44:\n    (**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);" (statement_identifier "LAB_0001aa44") (: ":") (expression_statement "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950);" (call_expression "(**(code **)PTR_DAT_0003f070)\n              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950)" (parenthesized_expression "(**(code **)PTR_DAT_0003f070)" (( "(") (pointer_expression "**(code **)PTR_DAT_0003f070" (* "*") (pointer_expression "*(code **)PTR_DAT_0003f070" (* "*") (cast_expression "(code **)PTR_DAT_0003f070" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0003f070")))) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,\n               PTR_DAT_0003f05c + -0x3950)" (( "(") (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" (* "*") (cast_expression "(undefined4 *)PTR_DAT_0003f068" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0003f068"))) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x40a0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x40a0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x3950" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3950")) () ")"))) (; ";"))) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" (identifier "iVar6") (= "=") (identifier "extraout_v1")) (; ";")) (labeled_statement "LAB_0001aa64:\n    *(int *)(param_1 + 0x34) = iVar6;" (statement_identifier "LAB_0001aa64") (: ":") (expression_statement "*(int *)(param_1 + 0x34) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x34) = iVar6" (pointer_expression "*(int *)(param_1 + 0x34)" (* "*") (cast_expression "(int *)(param_1 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "iVar6")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */
/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */
/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */

int function_1
              (type_1 *daemon,type_2 var_4,type_3 *addr,type_4 addrlen,
              type_5 external_add,type_5 non_blck)

{
  type_6 *puVar1;
  type_6 *puVar2;
  int var_40;
  type_7 var_5;
  int var_6;
  int *piVar6;
  type_8 *var_22;
  type_3 *var_23;
  type_9 tVar9;
  type_10 *var_17;
  type_11 *var_16;
  type_12 var_26;
  type_10 *var_30;
  type_10 *extraout_v1;
  type_13 MVar14;
  type_1 *var_12;
  type_7 var_2;
  type_11 uVar17;
  type_1 *var_1;
  type_14 *pMVar19;
  type_1 *var_19;
  type_10 *var_13;
  type_15 event;
  
  puVar2 = PTR___stack_chk_guard_0003f2ec;
  pMVar19 = (type_14 *)(type_7)non_blck;
  var_40 = *(int *)PTR___stack_chk_guard_0003f2ec;
  if ((external_add) && (var_1 = daemon->worker_pool, var_1 != (type_1 *)0x0)) {
    var_2 = daemon->worker_pool_size;
    if (var_2 != 0) {
      if (var_2 == 0) {
        var_3(7);
      }
      var_12 = var_1 + (type_7)var_4 % var_2;
      var_5 = var_4 + 1;
      if (var_12->connection_limit <= var_12->connections) {
        do {
          if (var_4 + var_2 == var_5) goto LAB_00019ee8;
          if (var_2 == 0) {
            var_3(7);
          }
          var_12 = var_1 + var_5 % var_2;
          var_5 = var_5 + 1;
        } while (var_12->connection_limit <= var_12->connections);
      }
      var_19 = (type_1 *)
                 function_1(var_12,var_4,addr,addrlen,true,non_blck);
      goto LAB_0001a1e8;
    }
LAB_00019ee8:
    var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
    piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
    if (var_6 == 0) goto LAB_0001a1dc;
    var_6 = *piVar6;
    uVar17 = 0x900;
joined_r0x00019f14:
    if (var_6 == 9) goto LAB_0001aa44;
LAB_0001a1dc:
    var_19 = (type_1 *)0x0;
    *piVar6 = 0x17;
    goto LAB_0001a1e8;
  }
  if ((0x3ff < var_4) &&
     (var_17 = (type_10 *)var_11,
     (daemon->options & (var_7|var_8)) == var_9)) goto LAB_0001a2ec;
  var_19 = daemon;
  if (daemon->connections == daemon->connection_limit) {
LAB_0001a190:
    var_10(daemon,var_11 + -0x38dc);
    var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
    piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
    if (var_6 == 0) goto LAB_0001a1dc;
    var_6 = *piVar6;
    uVar17 = 0x93d;
    goto joined_r0x00019f14;
  }
  var_1 = daemon->master;
  while (var_12 = var_1, var_12 != (type_1 *)0x0) {
    var_19 = var_12;
    var_1 = var_12->master;
  }
  if (var_19->per_ip_connection_limit != 0) {
    var_13 = (type_10 *)(*(type_16 *)PTR_malloc_0003f25c)(0x18);
    if (var_13 == (type_10 *)0x0) goto LAB_0001a190;
    var_6 = var_14(addr,addrlen,(type_17 *)var_13);
    if (var_6 != 0) {
      var_12 = (type_1 *)&var_19->per_ip_connection_mutex;
      var_1 = var_12;
      var_6 = (*(type_16 *)PTR_pthread_mutex_lock_0003f2a8)();
      if (var_6 != 0) goto LAB_0001ab68;
      var_16 = (type_11 *)
                (*(type_16 *)PTR_tsearch_0003f214)
                          (var_13,&var_19->per_ip_connection_count,var_15 + -0x7054);
      if (var_16 == (type_11 *)0x0) {
        var_17 = (type_10 *)(var_11 + -0x3904);
        var_10(var_19,(char *)var_17);
        var_6 = (*(type_16 *)PTR_pthread_mutex_unlock_0003f33c)();
        if (var_6 == 0) {
          (*(type_16 *)PTR_free_0003f2f8)(var_13);
          goto LAB_0001a190;
        }
      }
      else {
        var_17 = (type_10 *)*var_16;
        if (var_13 != var_17) {
          (*(type_16 *)PTR_free_0003f2f8)(var_13);
        }
        puVar1 = PTR_pthread_mutex_unlock_0003f33c;
        if (var_17->prevX < (type_10 *)var_19->per_ip_connection_limit) {
          var_17->prevX = (type_10 *)((int)&var_17->prevX->nextE + 1);
          var_6 = (*(type_16 *)puVar1)();
          if (var_6 == 0) goto LAB_00019f70;
        }
        else {
          var_6 = (*(type_16 *)PTR_pthread_mutex_unlock_0003f33c)();
          if (var_6 == 0) goto LAB_0001a190;
        }
      }
      var_18(var_12);
LAB_0001a2ec:
      var_10(daemon,(char *)&var_17[-0x3a].current_chunk_size,var_4,0x400);
      var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
      piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
      if ((var_6 != 0) && (*piVar6 == 9)) goto LAB_0001ab78;
      var_19 = (type_1 *)0x0;
      *piVar6 = 0x16;
      goto LAB_0001a1e8;
    }
    (*(type_16 *)PTR_free_0003f2f8)(var_13);
  }
LAB_00019f70:
  if ((daemon->apc != (type_18)0x0) &&
     (var_19 = (type_1 *)(*daemon->apc)(daemon->apc_cls,addr,addrlen),
     var_19 == (type_1 *)0x0)) {
    var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
    if (var_6 != 0) {
      piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
      uVar17 = 0x950;
      if (*piVar6 == 9) goto LAB_0001aa44;
    }
    var_20(daemon,addr,addrlen);
    goto LAB_0001a1e8;
  }
  var_13 = (type_10 *)(*(type_16 *)PTR_calloc_0003f144)(1,0x100);
  if (var_13 == (type_10 *)0x0) {
    piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
    pMVar19 = (type_14 *)*piVar6;
    uVar17 = (*(type_16 *)PTR_strerror_0003f254)(pMVar19);
    var_10(daemon,var_11 + -0x389c,uVar17);
    var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
    if ((var_6 != 0) && (uVar17 = 0x962, *piVar6 == 9)) goto LAB_0001aa44;
    var_19 = (type_1 *)0x0;
    var_20(daemon,addr,addrlen);
    *piVar6 = (int)pMVar19;
    goto LAB_0001a1e8;
  }
  var_22 = var_21(daemon->pool_size);
  var_13->pool = var_22;
  puVar1 = PTR_malloc_0003f25c;
  if (var_22 == (type_8 *)0x0) {
    pMVar19 = (type_14 *)(*(type_16 *)PTR___errno_location_0003f204)();
    uVar17 = (*(type_16 *)PTR_strerror_0003f254)((pMVar19->__data).__lock);
    var_10(daemon,var_11 + -0x389c,uVar17);
    var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
    if ((var_6 != 0) && (uVar17 = 0x971, (pMVar19->__data).__lock == 9)) goto LAB_0001aa44;
    var_19 = (type_1 *)0x0;
    var_20(daemon,addr,addrlen);
    (*(type_16 *)PTR_free_0003f2f8)(var_13);
    (pMVar19->__data).__lock = 0xc;
    goto LAB_0001a1e8;
  }
  var_13->connection_timeout = daemon->connection_timeout;
  var_23 = (type_3 *)(*(type_16 *)puVar1)(addrlen);
  var_13->addr = var_23;
  if (var_23 == (type_3 *)0x0) {
    piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
    pMVar19 = (type_14 *)*piVar6;
    uVar17 = (*(type_16 *)PTR_strerror_0003f254)(pMVar19);
    var_10(daemon,var_11 + -0x389c,uVar17);
    var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
    if ((var_6 != 0) && (uVar17 = 0x985, *piVar6 == 9)) goto LAB_0001aa44;
    var_19 = (type_1 *)0x0;
    var_20(daemon,addr,addrlen);
    var_24(var_13->pool);
    (*(type_16 *)PTR_free_0003f2f8)(var_13);
    *piVar6 = (int)pMVar19;
    goto LAB_0001a1e8;
  }
  (*(type_16 *)PTR_memcpy_0003f2f0)(var_23,addr,addrlen);
  var_13->addr_len = addrlen;
  var_13->socket_fd = var_4;
  var_13->sk_nonblck = non_blck;
  var_13->daemon = daemon;
  tVar9 = var_25();
  var_26 = daemon->options;
  var_13->last_activity = tVar9;
  if ((var_26 & var_27) == var_9) {
    var_28(var_13);
LAB_0001a03c:
    pMVar19 = &daemon->cleanup_connection_mutex;
    var_6 = (*(type_16 *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);
    uVar17 = 0x9e4;
    if (var_6 != 0) goto LAB_0001ab44;
    if (daemon->connections < daemon->connection_limit) {
      daemon->connections = daemon->connections + 1;
      if ((daemon->options & var_29) == var_9) {
        var_17 = daemon->normal_timeout_head;
        var_30 = daemon->normal_timeout_tail;
        var_13->prevX = (type_10 *)0x0;
        var_13->nextX = var_17;
        if (var_30 == (type_10 *)0x0) {
          daemon->normal_timeout_tail = var_13;
        }
        else {
          var_17->prevX = var_13;
        }
        daemon->normal_timeout_head = var_13;
      }
      var_17 = daemon->connections_head;
      var_30 = daemon->connections_tail;
      var_13->prev = (type_10 *)0x0;
      var_13->next = var_17;
      if (var_30 == (type_10 *)0x0) {
        daemon->connections_tail = var_13;
      }
      else {
        var_17->prev = var_13;
      }
      puVar1 = PTR_pthread_mutex_unlock_0003f33c;
      daemon->connections_head = var_13;
      var_6 = (*(type_16 *)puVar1)(pMVar19);
      uVar17 = 0xa01;
      if (var_6 != 0) goto LAB_0001ab1c;
      if (daemon->notify_connection != (type_19)0x0) {
        (*daemon->notify_connection)
                  (daemon->notify_connection_cls,var_13,&var_13->socket_context,
                   MHD_CONNECTION_NOTIFY_STARTED);
      }
      var_26 = daemon->options;
      if ((var_26 & var_29) == var_9) {
        MVar14 = (daemon->pid).ID;
        (var_13->pid).handle = (daemon->pid).handle;
        (var_13->pid).ID = MVar14;
        if ((var_26 & var_7) == var_9) {
LAB_0001a9b8:
          var_19 = (type_1 *)0x1;
          if (!external_add) goto LAB_0001a1e8;
          var_6 = (daemon->itc).fd;
          if (var_6 == -1) goto LAB_0001a1e8;
          var_6 = (*(type_16 *)PTR_write_0003f220)(var_6,var_11 + -0x28d8,8);
          if ((var_6 < 1) &&
             (piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)(), *piVar6 != 0xb)) {
            var_19 = (type_1 *)0x1;
            var_10(daemon,var_11 + -0x37f4);
            goto LAB_0001a1e8;
          }
LAB_0001a8dc:
          var_19 = (type_1 *)0x1;
          goto LAB_0001a1e8;
        }
      }
      else {
        var_6 = var_31
                          (&var_13->pid,var_11 + -0x3824,daemon->thread_stack_size,
                           (MHD_THREAD_START_ROUTINE_)(var_15 + -0x445c),var_13);
        if (var_6 == 0) {
          piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
          var_19 = (type_1 *)*piVar6;
          uVar17 = (*(type_16 *)PTR_strerror_0003f254)(var_19);
          var_10(daemon,var_11 + -0x3814,uVar17);
          goto LAB_0001a72c;
        }
        var_26 = daemon->options;
        if ((var_26 & var_7) == var_9) {
          if ((var_26 & var_29) != var_9) goto LAB_0001a8dc;
          goto LAB_0001a9b8;
        }
      }
      if (((var_26 & var_32) != var_9) && (!external_add)) {
        var_17 = daemon->eready_head;
        var_30 = daemon->eready_tail;
        var_13->prevE = (type_10 *)0x0;
        var_13->epoll_state =
             var_13->epoll_state |
             (var_33|var_34|var_35)
        ;
        var_13->nextE = var_17;
        if (var_30 != (type_10 *)0x0) {
          var_17->prevE = var_13;
          var_19 = (type_1 *)0x1;
          daemon->eready_head = var_13;
          goto LAB_0001a1e8;
        }
        daemon->eready_tail = var_13;
        var_19 = (type_1 *)0x1;
        daemon->eready_head = var_13;
        goto LAB_0001a1e8;
      }
      event.events = 0x80000007;
      event.data.fd = (int)var_13;
      var_6 = (*(type_16 *)PTR_epoll_ctl_0003f278)(daemon->epoll_fd,1,var_4,&event);
      if (var_6 == 0) {
        var_19 = (type_1 *)0x1;
        var_13->epoll_state = var_13->epoll_state | var_36;
        goto LAB_0001a1e8;
      }
      piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
      var_19 = (type_1 *)*piVar6;
      uVar17 = (*(type_16 *)PTR_strerror_0003f254)(var_19);
      var_10(daemon,var_11 + -0x4da8,uVar17);
      goto LAB_0001a72c;
    }
  }
  else {
    pMVar19 = (type_14 *)0x1;
    var_13->tls_state = MHD_TLS_CONN_INIT;
    var_37(var_13);
    (*(type_16 *)PTR_gnutls_init_0003f218)(&var_13->tls_session,0x49);
    (*(type_16 *)PTR_gnutls_priority_set_0003f1b0)(var_13->tls_session,daemon->priority_cache);
    (*(type_16 *)PTR_gnutls_session_set_ptr_0003f258)(var_13->tls_session,var_13);
    if (daemon->cred_type == var_38) {
      (*(type_16 *)PTR_gnutls_credentials_set_0003f1d8)(var_13->tls_session,1,daemon->x509_cred);
LAB_0001a950:
      (*(type_16 *)PTR_gnutls_transport_set_int2_0003f1ec)
                (var_13->tls_session,var_4,var_4);
      if (daemon->https_mem_trust != (char *)0x0) {
        (*(type_16 *)PTR_gnutls_certificate_server_set_request_0003f274)(var_13->tls_session,1);
      }
      goto LAB_0001a03c;
    }
    if (daemon->cred_type == var_39) {
      (*(type_16 *)PTR_gnutls_credentials_set_0003f1d8)(var_13->tls_session,4,daemon->psk_cred);
      (*(type_16 *)PTR_gnutls_psk_set_server_credentials_function_0003f238)
                (daemon->psk_cred,var_15 + -0x703c);
      goto LAB_0001a950;
    }
    var_10(var_13->daemon,var_11 + -0x387c);
    var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
    if ((var_6 != 0) && (piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)(), *piVar6 == 9))
    {
      uVar17 = 0x9c3;
      goto LAB_0001aa44;
    }
    var_20(daemon,addr,addrlen);
    (*(type_16 *)PTR_free_0003f2f8)(var_13->addr);
    (*(type_16 *)PTR_free_0003f2f8)(var_13);
    (**(type_16 **)PTR_mhd_panic_0003f070)
              (*(type_11 *)PTR_mhd_panic_cls_0003f068,var_11 + -0x40a0,0x9c9,
               var_11 + -0x383c);
  }
  var_6 = (*(type_16 *)PTR_pthread_mutex_unlock_0003f33c)(pMVar19);
  uVar17 = 0x9ea;
  if (var_6 != 0) goto LAB_0001ab1c;
  var_19 = (type_1 *)0x17;
  var_10(daemon,var_11 + -0x38dc,0x9ea);
LAB_0001a72c:
  if (daemon->notify_connection != (type_19)0x0) {
    (*daemon->notify_connection)
              (daemon->notify_connection_cls,var_13,&var_13->socket_context,
               MHD_CONNECTION_NOTIFY_CLOSED);
  }
  if (var_13->tls_session != (type_20)0x0) {
    (*(type_16 *)PTR_gnutls_deinit_0003f338)();
  }
  var_6 = (*(type_16 *)PTR_close_0003f158)(var_4);
  if (var_6 != 0) {
    piVar6 = (int *)(*(type_16 *)PTR___errno_location_0003f204)();
    uVar17 = 0xa56;
    if (*piVar6 == 9) goto LAB_0001aa44;
  }
  var_20(daemon,addr,addrlen);
  var_6 = (*(type_16 *)PTR_pthread_mutex_lock_0003f2a8)(pMVar19);
  if (var_6 != 0) goto LAB_0001ab40;
  if ((daemon->options & var_29) != var_9) goto LAB_0001a804;
  var_17 = var_13->nextX;
  if (var_13->prevX == (type_10 *)0x0) {
    daemon->normal_timeout_head = var_17;
    var_30 = (type_10 *)0x0;
  }
  else {
    var_13->prevX->nextX = var_17;
    var_17 = var_13->nextX;
    var_30 = var_13->prevX;
  }
  if (var_17 == (type_10 *)0x0) goto LAB_0001aa64;
  var_17->prevX = var_30;
  do {
    var_13->nextX = (type_10 *)0x0;
    var_13->prevX = (type_10 *)0x0;
LAB_0001a804:
    var_17 = var_13->next;
    if (var_13->prev == (type_10 *)0x0) {
      daemon->connections_head = var_17;
      var_30 = (type_10 *)0x0;
    }
    else {
      var_13->prev->next = var_17;
      var_17 = var_13->next;
      var_30 = var_13->prev;
    }
    if (var_17 == (type_10 *)0x0) {
      daemon->connections_tail = var_30;
    }
    else {
      var_17->prev = var_30;
    }
    puVar1 = PTR_pthread_mutex_unlock_0003f33c;
    var_13->next = (type_10 *)0x0;
    var_13->prev = (type_10 *)0x0;
    var_6 = (*(type_16 *)puVar1)(pMVar19);
    if (var_6 == 0) {
      var_24(var_13->pool);
      (*(type_16 *)PTR_free_0003f2f8)(var_13->addr);
      (*(type_16 *)PTR_free_0003f2f8)(var_13);
      var_16 = (type_11 *)(*(type_16 *)PTR___errno_location_0003f204)();
      if (var_19 == (type_1 *)0x0) {
        *var_16 = 0x16;
      }
      else {
        *var_16 = var_19;
        var_19 = (type_1 *)0x0;
      }
LAB_0001a1e8:
      if (var_40 == *(int *)puVar2) {
        return (int)var_19;
      }
      (*(type_16 *)PTR___stack_chk_fail_0003f2b8)();
    }
    uVar17 = 0xa67;
LAB_0001ab1c:
    (**(type_16 **)PTR_mhd_panic_0003f070)
              (*(type_11 *)PTR_mhd_panic_cls_0003f068,var_11 + -0x40a0,uVar17,
               var_11 + -0x51b8);
LAB_0001ab40:
    uVar17 = 0xa5b;
LAB_0001ab44:
    var_1 = *(type_1 **)PTR_mhd_panic_cls_0003f068;
    (**(type_16 **)PTR_mhd_panic_0003f070)
              (var_1,var_11 + -0x40a0,uVar17,var_11 + -0x51e0);
LAB_0001ab68:
    var_41(var_1);
LAB_0001ab78:
    uVar17 = 0x912;
LAB_0001aa44:
    (**(type_16 **)PTR_mhd_panic_0003f070)
              (*(type_11 *)PTR_mhd_panic_cls_0003f068,var_11 + -0x40a0,uVar17,
               var_11 + -0x3950);
    var_30 = extraout_v1;
LAB_0001aa64:
    daemon->normal_timeout_tail = var_30;
  } while( true );
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) 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: (type_identifier) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) consequence: (goto_statement label: (statement_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: (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))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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))))))))) (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: (primitive_type) 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 (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: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (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: (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) (binary_expression left: (identifier) right: (number_literal)) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (compound_statement (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 (identifier)))) (goto_statement label: (statement_identifier))))) 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: (pointer_expression argument: (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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (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: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_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 (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_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: (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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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 (number_literal) (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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: (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 (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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 (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (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 (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_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 (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (type_identifier) 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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (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)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (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))))) right: (identifier)))))) (expression_statement (assignment_expression left: (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))))) right: (identifier))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (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))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_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: (cast_expression type: (type_descriptor type: (type_identifier) 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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (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: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (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))))) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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)))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (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: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (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)) 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: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) 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)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (goto_statement label: (statement_identifier))))) 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)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (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 (subscript_expression argument: (identifier) index: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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 (subscript_expression argument: (identifier) index: (number_literal)) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))))) (goto_statement label: (statement_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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)))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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 (subscript_expression argument: (identifier) index: (number_literal))))) (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 (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: (identifier))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (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: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_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: (cast_expression type: (type_descriptor type: (type_identifier) 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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (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: (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: (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: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (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: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (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: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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)))) alternative: (else_clause (compound_statement (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (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 (subscript_expression argument: (identifier) index: (number_literal))))) (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_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 (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: (number_literal))) (labeled_statement label: (statement_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: (identifier))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_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: (identifier))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_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: (identifier))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))))) condition: (parenthesized_expression (true))))))

int MASKED(int param_1,uint param_2,undefined4 param_3,int param_4,char param_5,byte param_6)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  int *piVar4;
  undefined4 *puVar5;
  int extraout_v1;
  int iVar6;
  uint uVar7;
  undefined4 uVar8;
  int iVar9;
  int *piVar10;
  int unaff_s5;
  int *unaff_s8;
  undefined4 local_40 [2];
  int *local_38;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0003f2ec;
  piVar10 = (int *)(uint)param_6;
  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;
  if ((param_5 != '\0') && (iVar9 = *(int *)(param_1 + 0x74), iVar9 != 0)) {
    uVar7 = *(uint *)(param_1 + 0x88);
    if (uVar7 != 0) {
      if (uVar7 == 0) {
        trap(7);
      }
      iVar6 = (param_2 % uVar7) * 0x174 + iVar9;
      uVar3 = param_2 + 1;
      if (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8)) {
        do {
          if (param_2 + uVar7 == uVar3) goto LAB_00019ee8;
          if (uVar7 == 0) {
            trap(7);
          }
          iVar6 = (uVar3 % uVar7) * 0x174 + iVar9;
          uVar3 = uVar3 + 1;
        } while (*(uint *)(iVar6 + 0xec) <= *(uint *)(iVar6 + 0xe8));
      }
      unaff_s5 = MASKED(iVar6,param_2,param_3,param_4,1,piVar10);
      goto LAB_0001a1e8;
    }
LAB_00019ee8:
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    if (iVar9 == 0) goto LAB_0001a1dc;
    iVar9 = *piVar4;
    uVar8 = 0x900;
joined_r0x00019f14:
    if (iVar9 == 9) goto LAB_0001aa44;
LAB_0001a1dc:
    unaff_s5 = 0;
    *piVar4 = 0x17;
    goto LAB_0001a1e8;
  }
  if ((0x3ff < (int)param_2) &&
     (piVar4 = (int *)PTR_DAT_0003f05c, (*(uint *)(param_1 + 0xf8) & 0x240) == 0))
  goto LAB_0001a2ec;
  unaff_s5 = param_1;
  if (*(int *)(param_1 + 0xe8) == *(int *)(param_1 + 0xec)) {
LAB_0001a190:
    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    if (iVar9 == 0) goto LAB_0001a1dc;
    iVar9 = *piVar4;
    uVar8 = 0x93d;
    goto joined_r0x00019f14;
  }
  iVar9 = *(int *)(param_1 + 0x70);
  while (iVar6 = iVar9, iVar6 != 0) {
    unaff_s5 = iVar6;
    iVar9 = *(int *)(iVar6 + 0x70);
  }
  if (*(int *)(unaff_s5 + 0xf4) != 0) {
    unaff_s8 = (int *)(*(code *)PTR_malloc_0003f25c)(0x18);
    if (unaff_s8 == (int *)0x0) goto LAB_0001a190;
    iVar9 = FUN_0001996c(param_3,param_4,unaff_s8);
    if (iVar9 != 0) {
      iVar9 = unaff_s5 + 0x94;
      iVar6 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(iVar9);
      if (iVar6 != 0) goto LAB_0001ab68;
      puVar5 = (undefined4 *)
               (*(code *)PTR_tsearch_0003f214)(unaff_s8,unaff_s5 + 0x78,PTR_LAB_0003f084 + -0x7054);
      if (puVar5 == (undefined4 *)0x0) {
        piVar4 = (int *)(PTR_DAT_0003f05c + -0x3904);
        FUN_00020df0(unaff_s5,piVar4);
        iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);
        if (iVar9 == 0) {
          (*(code *)PTR_free_0003f2f8)(unaff_s8);
          goto LAB_0001a190;
        }
      }
      else {
        piVar4 = (int *)*puVar5;
        if (unaff_s8 != piVar4) {
          (*(code *)PTR_free_0003f2f8)(unaff_s8);
        }
        puVar1 = PTR_pthread_mutex_unlock_0003f33c;
        if ((uint)piVar4[5] < *(uint *)(unaff_s5 + 0xf4)) {
          piVar4[5] = piVar4[5] + 1;
          iVar9 = (*(code *)puVar1)(iVar9);
          if (iVar9 == 0) goto LAB_00019f70;
        }
        else {
          iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(iVar9);
          if (iVar9 == 0) goto LAB_0001a190;
        }
      }
      FUN_00019c08();
LAB_0001a2ec:
      FUN_00020df0(param_1,piVar4 + -0xe4e,param_2,0x400);
      iVar9 = (*(code *)PTR_close_0003f158)(param_2);
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      if ((iVar9 != 0) && (*piVar4 == 9)) goto LAB_0001ab78;
      unaff_s5 = 0;
      *piVar4 = 0x16;
      goto LAB_0001a1e8;
    }
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
  }
LAB_00019f70:
  if ((*(code **)(param_1 + 0x40) != (code *)0x0) &&
     (unaff_s5 = (**(code **)(param_1 + 0x40))(*(undefined4 *)(param_1 + 0x44),param_3,param_4),
     unaff_s5 == 0)) {
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if (iVar9 != 0) {
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      uVar8 = 0x950;
      if (*piVar4 == 9) goto LAB_0001aa44;
    }
    FUN_00019c48(param_1,param_3,param_4);
    goto LAB_0001a1e8;
  }
  unaff_s8 = (int *)(*(code *)PTR_calloc_0003f144)(1,0x100);
  if (unaff_s8 == (int *)0x0) {
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    piVar10 = (int *)*piVar4;
    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);
    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if ((iVar9 != 0) && (uVar8 = 0x962, *piVar4 == 9)) goto LAB_0001aa44;
    unaff_s5 = 0;
    FUN_00019c48(param_1,param_3,param_4);
    *piVar4 = (int)piVar10;
    goto LAB_0001a1e8;
  }
  iVar9 = FUN_00021248(*(undefined4 *)(param_1 + 0x7c));
  unaff_s8[10] = iVar9;
  puVar1 = PTR_malloc_0003f25c;
  if (iVar9 == 0) {
    piVar10 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar8 = (*(code *)PTR_strerror_0003f254)(*piVar10);
    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if ((iVar9 != 0) && (uVar8 = 0x971, *piVar10 == 9)) goto LAB_0001aa44;
    unaff_s5 = 0;
    FUN_00019c48(param_1,param_3,param_4);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    *piVar10 = 0xc;
    goto LAB_0001a1e8;
  }
  unaff_s8[0x26] = *(int *)(param_1 + 0xf0);
  iVar9 = (*(code *)puVar1)(param_4);
  unaff_s8[0x15] = iVar9;
  if (iVar9 == 0) {
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    piVar10 = (int *)*piVar4;
    uVar8 = (*(code *)PTR_strerror_0003f254)(piVar10);
    FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x389c,uVar8);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if ((iVar9 != 0) && (uVar8 = 0x985, *piVar4 == 9)) goto LAB_0001aa44;
    unaff_s5 = 0;
    FUN_00019c48(param_1,param_3,param_4);
    FUN_00021358(unaff_s8[10]);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    *piVar4 = (int)piVar10;
    goto LAB_0001a1e8;
  }
  (*(code *)PTR_memcpy_0003f2f0)(iVar9,param_3,param_4);
  unaff_s8[0x24] = param_4;
  unaff_s8[0x29] = param_2;
  *(byte *)(unaff_s8 + 0x2a) = param_6;
  unaff_s8[6] = param_1;
  iVar9 = FUN_0002186c();
  uVar7 = *(uint *)(param_1 + 0xf8);
  unaff_s8[0x25] = iVar9;
  if ((uVar7 & 2) == 0) {
    FUN_00015248(unaff_s8);
LAB_0001a03c:
    piVar10 = (int *)(param_1 + 0xac);
    iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);
    uVar8 = 0x9e4;
    if (iVar9 != 0) goto LAB_0001ab44;
    if (*(uint *)(param_1 + 0xe8) < *(uint *)(param_1 + 0xec)) {
      *(uint *)(param_1 + 0xe8) = *(uint *)(param_1 + 0xe8) + 1;
      if ((*(uint *)(param_1 + 0xf8) & 4) == 0) {
        iVar9 = *(int *)(param_1 + 0x30);
        iVar6 = *(int *)(param_1 + 0x34);
        unaff_s8[5] = 0;
        unaff_s8[4] = iVar9;
        if (iVar6 == 0) {
          *(int **)(param_1 + 0x34) = unaff_s8;
        }
        else {
          *(int **)(iVar9 + 0x14) = unaff_s8;
        }
        *(int **)(param_1 + 0x30) = unaff_s8;
      }
      iVar9 = *(int *)(param_1 + 8);
      iVar6 = *(int *)(param_1 + 0xc);
      unaff_s8[3] = 0;
      unaff_s8[2] = iVar9;
      if (iVar6 == 0) {
        *(int **)(param_1 + 0xc) = unaff_s8;
      }
      else {
        *(int **)(iVar9 + 0xc) = unaff_s8;
      }
      puVar1 = PTR_pthread_mutex_unlock_0003f33c;
      *(int **)(param_1 + 8) = unaff_s8;
      iVar9 = (*(code *)puVar1)(piVar10);
      uVar8 = 0xa01;
      if (iVar9 != 0) goto LAB_0001ab1c;
      if (*(code **)(param_1 + 0x50) != (code *)0x0) {
        (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,0);
      }
      uVar7 = *(uint *)(param_1 + 0xf8);
      if ((uVar7 & 4) == 0) {
        iVar9 = *(int *)(param_1 + 0x90);
        unaff_s8[0x16] = *(int *)(param_1 + 0x8c);
        unaff_s8[0x17] = iVar9;
        if ((uVar7 & 0x200) == 0) {
LAB_0001a9b8:
          unaff_s5 = 1;
          if (param_5 == '\0') goto LAB_0001a1e8;
          if (*(int *)(param_1 + 0xdc) == -1) goto LAB_0001a1e8;
          iVar9 = (*(code *)PTR_write_0003f220)
                            (*(int *)(param_1 + 0xdc),PTR_DAT_0003f05c + -0x28d8,8);
          if ((iVar9 < 1) &&
             (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 != 0xb)) {
            unaff_s5 = 1;
            FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x37f4);
            goto LAB_0001a1e8;
          }
LAB_0001a8dc:
          unaff_s5 = 1;
          goto LAB_0001a1e8;
        }
      }
      else {
        iVar9 = FUN_00023bd4(unaff_s8 + 0x16,PTR_DAT_0003f05c + -0x3824,
                             *(undefined4 *)(param_1 + 0x84),PTR_LAB_0003f084 + -0x445c,unaff_s8);
        if (iVar9 == 0) {
          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
          unaff_s5 = *piVar4;
          uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);
          FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x3814,uVar8);
          goto LAB_0001a72c;
        }
        uVar7 = *(uint *)(param_1 + 0xf8);
        if ((uVar7 & 0x200) == 0) {
          if ((uVar7 & 4) != 0) goto LAB_0001a8dc;
          goto LAB_0001a9b8;
        }
      }
      if (((uVar7 & 0x1000) != 0) && (param_5 == '\0')) {
        iVar9 = *(int *)(param_1 + 0x20);
        iVar6 = *(int *)(param_1 + 0x24);
        unaff_s8[1] = 0;
        unaff_s8[0x2c] = unaff_s8[0x2c] | 7;
        *unaff_s8 = iVar9;
        if (iVar6 != 0) {
          *(int **)(iVar9 + 4) = unaff_s8;
          unaff_s5 = 1;
          *(int **)(param_1 + 0x20) = unaff_s8;
          goto LAB_0001a1e8;
        }
        *(int **)(param_1 + 0x24) = unaff_s8;
        unaff_s5 = 1;
        *(int **)(param_1 + 0x20) = unaff_s8;
        goto LAB_0001a1e8;
      }
      local_40[0] = 0x80000007;
      local_38 = unaff_s8;
      iVar9 = (*(code *)PTR_epoll_ctl_0003f278)(*(undefined4 *)(param_1 + 0xcc),1,param_2,local_40);
      if (iVar9 == 0) {
        unaff_s5 = 1;
        unaff_s8[0x2c] = unaff_s8[0x2c] | 8;
        goto LAB_0001a1e8;
      }
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      unaff_s5 = *piVar4;
      uVar8 = (*(code *)PTR_strerror_0003f254)(unaff_s5);
      FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x4da8,uVar8);
      goto LAB_0001a72c;
    }
  }
  else {
    piVar10 = (int *)0x1;
    unaff_s8[0x3c] = 1;
    FUN_00029db0(unaff_s8);
    (*(code *)PTR_gnutls_init_0003f218)(unaff_s8 + 0x39,0x49);
    (*(code *)PTR_gnutls_priority_set_0003f1b0)(unaff_s8[0x39],*(undefined4 *)(param_1 + 0x10c));
    (*(code *)PTR_gnutls_session_set_ptr_0003f258)(unaff_s8[0x39],unaff_s8);
    if (*(int *)(param_1 + 0x110) == 1) {
      (*(code *)PTR_gnutls_credentials_set_0003f1d8)
                (unaff_s8[0x39],1,*(undefined4 *)(param_1 + 0x114));
LAB_0001a950:
      (*(code *)PTR_gnutls_transport_set_int2_0003f1ec)(unaff_s8[0x39],param_2,param_2);
      if (*(int *)(param_1 + 0x138) != 0) {
        (*(code *)PTR_gnutls_certificate_server_set_request_0003f274)(unaff_s8[0x39],1);
      }
      goto LAB_0001a03c;
    }
    if (*(int *)(param_1 + 0x110) == 4) {
      (*(code *)PTR_gnutls_credentials_set_0003f1d8)
                (unaff_s8[0x39],4,*(undefined4 *)(param_1 + 0x11c));
      (*(code *)PTR_gnutls_psk_set_server_credentials_function_0003f238)
                (*(undefined4 *)(param_1 + 0x11c),PTR_LAB_0003f084 + -0x703c);
      goto LAB_0001a950;
    }
    FUN_00020df0(unaff_s8[6],PTR_DAT_0003f05c + -0x387c);
    iVar9 = (*(code *)PTR_close_0003f158)(param_2);
    if ((iVar9 != 0) && (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))
    {
      uVar8 = 0x9c3;
      goto LAB_0001aa44;
    }
    FUN_00019c48(param_1,param_3,param_4);
    (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);
    (*(code *)PTR_free_0003f2f8)(unaff_s8);
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x9c9,
               PTR_DAT_0003f05c + -0x383c);
  }
  iVar9 = (*(code *)PTR_pthread_mutex_unlock_0003f33c)(piVar10);
  uVar8 = 0x9ea;
  if (iVar9 != 0) goto LAB_0001ab1c;
  unaff_s5 = 0x17;
  FUN_00020df0(param_1,PTR_DAT_0003f05c + -0x38dc,0x9ea);
LAB_0001a72c:
  if (*(code **)(param_1 + 0x50) != (code *)0x0) {
    (**(code **)(param_1 + 0x50))(*(undefined4 *)(param_1 + 0x54),unaff_s8,unaff_s8 + 0xc,1);
  }
  if (unaff_s8[0x39] != 0) {
    (*(code *)PTR_gnutls_deinit_0003f338)();
  }
  iVar9 = (*(code *)PTR_close_0003f158)(param_2);
  if (iVar9 != 0) {
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar8 = 0xa56;
    if (*piVar4 == 9) goto LAB_0001aa44;
  }
  FUN_00019c48(param_1,param_3,param_4);
  iVar9 = (*(code *)PTR_pthread_mutex_lock_0003f2a8)(piVar10);
  if (iVar9 != 0) goto LAB_0001ab40;
  if ((*(uint *)(param_1 + 0xf8) & 4) != 0) goto LAB_0001a804;
  iVar9 = unaff_s8[4];
  if (unaff_s8[5] == 0) {
    *(int *)(param_1 + 0x30) = iVar9;
    iVar6 = 0;
  }
  else {
    *(int *)(unaff_s8[5] + 0x10) = iVar9;
    iVar9 = unaff_s8[4];
    iVar6 = unaff_s8[5];
  }
  if (iVar9 == 0) goto LAB_0001aa64;
  *(int *)(iVar9 + 0x14) = iVar6;
  do {
    unaff_s8[4] = 0;
    unaff_s8[5] = 0;
LAB_0001a804:
    iVar9 = unaff_s8[2];
    if (unaff_s8[3] == 0) {
      *(int *)(param_1 + 8) = iVar9;
      iVar6 = 0;
    }
    else {
      *(int *)(unaff_s8[3] + 8) = iVar9;
      iVar9 = unaff_s8[2];
      iVar6 = unaff_s8[3];
    }
    if (iVar9 == 0) {
      *(int *)(param_1 + 0xc) = iVar6;
    }
    else {
      *(int *)(iVar9 + 0xc) = iVar6;
    }
    puVar1 = PTR_pthread_mutex_unlock_0003f33c;
    unaff_s8[2] = 0;
    unaff_s8[3] = 0;
    iVar9 = (*(code *)puVar1)(piVar10);
    if (iVar9 == 0) {
      FUN_00021358(unaff_s8[10]);
      (*(code *)PTR_free_0003f2f8)(unaff_s8[0x15]);
      (*(code *)PTR_free_0003f2f8)(unaff_s8);
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      if (unaff_s5 == 0) {
        *piVar4 = 0x16;
      }
      else {
        *piVar4 = unaff_s5;
        unaff_s5 = 0;
      }
LAB_0001a1e8:
      if (local_2c == *(int *)puVar2) {
        return unaff_s5;
      }
      (*(code *)PTR___stack_chk_fail_0003f2b8)();
    }
    uVar8 = 0xa67;
LAB_0001ab1c:
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,
               PTR_DAT_0003f05c + -0x51b8);
LAB_0001ab40:
    uVar8 = 0xa5b;
LAB_0001ab44:
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,
               PTR_DAT_0003f05c + -0x51e0);
LAB_0001ab68:
    FUN_00019bc8();
LAB_0001ab78:
    uVar8 = 0x912;
LAB_0001aa44:
    (**(code **)PTR_DAT_0003f070)
              (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar8,
               PTR_DAT_0003f05c + -0x3950);
    iVar6 = extraout_v1;
LAB_0001aa64:
    *(int *)(param_1 + 0x34) = iVar6;
  } while( true );
}

