
/* 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 */

MHD_Daemon *
MHD_start_daemon_va(uint flags,uint16_t port,MHD_AcceptPolicyCallback apc,void *apc_cls,
                   MHD_AccessHandlerCallback dh,void *dh_cls,va_list ap)

{
  undefined *puVar1;
  undefined *puVar2;
  MHD_Daemon *daemon;
  int iVar3;
  MHD_NonceNc *pMVar4;
  int *piVar5;
  MHD_mutex_ *pMVar6;
  uchar *puVar7;
  uint uVar8;
  MHD_Daemon *pMVar9;
  MHD_Daemon *pMVar10;
  undefined4 *puVar11;
  int iVar12;
  MHD_THREAD_START_ROUTINE_ start_routine;
  gnutls_priority_t pgVar13;
  MHD_Daemon *pMVar14;
  MHD_Connection **ppMVar15;
  undefined2 in_register_00000014;
  uint uVar16;
  char *pcVar17;
  MHD_Connection *pMVar18;
  undefined4 uVar19;
  MHD_Connection *pMVar20;
  void *pvVar21;
  MHD_FLAG MVar22;
  MHD_mutex_ *pMVar23;
  code *pcVar24;
  uint uVar25;
  MHD_SCKT_OPT_BOOL_ on;
  sockaddr *servaddr;
  socklen_t addrlen;
  gnutls_datum_t key;
  MHD_SCKT_OPT_BOOL_ v6_only;
  undefined4 local_dc;
  sockaddr_in servaddr4;
  sockaddr_in6 servaddr6;
  sockaddr_storage servaddr_1;
  
  puVar2 = PTR___stack_chk_guard_0003f2ec;
  pMVar6 = (MHD_mutex_ *)CONCAT22(in_register_00000014,port);
  iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;
  on = 1;
  servaddr = (sockaddr *)0x0;
  if ((flags & 0x8000) != 0) {
    flags = flags | MHD_ALLOW_SUSPEND_RESUME;
  }
  if (dh == (MHD_AccessHandlerCallback)0x0) goto LAB_0001f94c;
  if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) == (MHD_USE_EPOLL|MHD_USE_POLL)) goto LAB_0001f94c;
  if ((flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) ==
      (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) goto LAB_0001f94c;
  if ((flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)) == MHD_USE_POLL)
  goto LAB_0001f94c;
  if ((int)(flags << 0xf) < 0) {
    if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) goto LAB_0001f94c;
    if ((flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {
      flags = flags | MHD_USE_EPOLL;
    }
    else {
      flags = flags | MHD_USE_POLL;
    }
  }
  daemon = (MHD_Daemon *)(*(code *)PTR_calloc_0003f144)(1,0x174);
  if (daemon == (MHD_Daemon *)0x0) goto LAB_0001f94c;
  MVar22 = flags & MHD_USE_SSL;
  daemon->priority_cache = (gnutls_priority_t)0x0;
  daemon->epoll_fd = -1;
  daemon->epoll_upgrade_fd = -1;
  if (MVar22 != MHD_NO_FLAG) {
    (*(code *)PTR_gnutls_priority_init_0003f2e0)
              (&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0);
  }
  daemon->listening_address_reuse = 0;
  daemon->options = flags;
  daemon->connection_limit = 0x3fc;
  daemon->strict_for_client = (flags << 0x1a) >> 0x1f;
  daemon->pool_size = 0x8000;
  daemon->listen_fd = -1;
  daemon->pool_increment = 0x400;
  puVar1 = PTR_LAB_0003f084;
  daemon->port = port;
  daemon->apc = apc;
  daemon->apc_cls = apc_cls;
  daemon->default_handler = dh;
  daemon->unescape_callback = (UnescapeCallback)(puVar1 + -0x6eb8);
  daemon->default_handler_cls = dh_cls;
  daemon->listen_backlog_size = 0x80;
  puVar1 = PTR_vfprintf_0003f1c0;
  daemon->connections = 0;
  daemon->connection_timeout = 0;
  daemon->custom_error_log = (_func_void_void_ptr_char_ptr_va_list *)puVar1;
  puVar1 = PTR_stderr_0003f304;
  (daemon->itc).fd = -1;
  daemon->custom_error_log_cls = *(void **)puVar1;
  if ((flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)) ==
      MHD_USE_THREAD_PER_CONNECTION) {
    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ff0);
    flags = daemon->options | MHD_USE_INTERNAL_POLLING_THREAD;
    daemon->options = flags;
LAB_0001f9b4:
    if ((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {
      MVar22 = daemon->options & MHD_USE_SSL;
    }
    else {
      daemon->options = flags | MHD_USE_ITC;
      MVar22 = flags & MHD_USE_SSL;
    }
  }
  else {
    if ((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG) goto LAB_0001f9b4;
    flags = flags & ~MHD_USE_ITC;
    daemon->options = flags;
  }
  daemon->digest_auth_rand_size = 0;
  daemon->digest_auth_random = (char *)0x0;
  daemon->nonce_nc_size = 4;
  if (MVar22 != MHD_NO_FLAG) {
    daemon->cred_type = GNUTLS_CRD_CERTIFICATE;
  }
  iVar3 = parse_options_va(daemon,&servaddr,ap);
  if (iVar3 != 1) {
    if ((daemon->options & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;
LAB_0001fc74:
    pgVar13 = daemon->priority_cache;
joined_r0x0002099c:
    if (pgVar13 == (gnutls_priority_t)0x0) goto LAB_0001fc50;
    (*(code *)PTR_gnutls_priority_deinit_0003f170)();
    goto LAB_0001fc50;
  }
  MVar22 = daemon->options;
  if ((daemon->notify_completed == (MHD_RequestCompletedCallback)0x0) ||
     ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) {
    if ((MVar22 & MHD_USE_ITC) != MHD_NO_FLAG) goto LAB_0001f9d4;
  }
  else {
    daemon->options = MVar22 | MHD_USE_ITC;
LAB_0001f9d4:
    if (daemon->worker_pool_size == 0) {
      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);
      (daemon->itc).fd = iVar3;
      if (iVar3 == -1) {
        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);
        pgVar13 = daemon->priority_cache;
        goto joined_r0x0002099c;
      }
      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {
        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);
        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);
        if (iVar3 == 0) {
          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = 0x1636;
          if (*piVar5 == 9) goto LAB_0001f91c;
        }
        goto LAB_0001fc74;
      }
    }
  }
  uVar16 = daemon->nonce_nc_size;
  if (uVar16 != 0) {
    if (uVar16 != (uVar16 * 0x98) / 0x98) {
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);
      MVar22 = daemon->options;
joined_r0x0001fc44:
      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;
      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);
      goto LAB_0001fc50;
    }
    pMVar4 = (MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)();
    daemon->nnc = pMVar4;
    if (pMVar4 == (MHD_NonceNc *)0x0) {
      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
      uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);
      MVar22 = daemon->options;
      goto joined_r0x0001fc44;
    }
  }
  dh = (MHD_AccessHandlerCallback)&daemon->nnc_lock;
  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(dh,0);
  if (iVar3 != 0) {
    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e3c);
    if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {
      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);
    }
    (*(code *)PTR_free_0003f2f8)(daemon->nnc);
    pMVar9 = (MHD_Daemon *)0x0;
    (*(code *)PTR_free_0003f2f8)(daemon);
    goto LAB_0001f950;
  }
  MVar22 = daemon->options;
  if (((MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG) && (daemon->worker_pool_size != 0)
     ) {
    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e10);
    goto LAB_0001f860;
  }
  flags = daemon->listen_fd;
  if (flags == ~MHD_NO_FLAG) {
    if ((MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {
      iVar3 = 10;
      if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {
        iVar3 = 2;
      }
      flags = MHD_socket_create_listen_(iVar3);
      if (flags == ~MHD_NO_FLAG) {
        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);
        goto LAB_0001f860;
      }
      if (daemon->listening_address_reuse == 0) {
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);
        if (iVar3 < 0) {
          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);
        }
      }
      else if (0 < daemon->listening_address_reuse) {
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);
        if (iVar3 < 0) {
          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);
        }
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);
        if (iVar3 < 0) {
          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);
          goto LAB_0001f860;
        }
      }
      if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {
        addrlen = 0x10;
        if (servaddr == (sockaddr *)0x0) {
          servaddr4.sin_addr.s_addr = 0;
          servaddr4.sin_zero[0] = '\0';
          servaddr4.sin_zero[1] = '\0';
          servaddr4.sin_zero[2] = '\0';
          servaddr4.sin_zero[3] = '\0';
          servaddr4.sin_family = 2;
          servaddr = (sockaddr *)&servaddr4;
          servaddr4.sin_zero[4] = '\0';
          servaddr4.sin_zero[5] = '\0';
          servaddr4.sin_zero[6] = '\0';
          servaddr4.sin_zero[7] = '\0';
          daemon->listen_fd = flags;
          servaddr4.sin_port = port;
        }
        else {
          daemon->listen_fd = flags;
        }
      }
      else {
        addrlen = 0x1c;
        if (servaddr == (sockaddr *)0x0) {
          servaddr6.sin6_flowinfo = 0;
          servaddr6.sin6_scope_id = 0;
          servaddr6.sin6_family = 10;
          servaddr = (sockaddr *)&servaddr6;
          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;
          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;
          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;
          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;
          daemon->listen_fd = flags;
          servaddr6.sin6_port = port;
        }
        else {
          daemon->listen_fd = flags;
        }
        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)
        ;
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);
        if (iVar3 < 0) {
          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);
        }
      }
      iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);
      puVar1 = PTR_setsockopt_0003f340;
      if (iVar3 == -1) {
        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();
        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);
        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);
        iVar3 = (*(code *)PTR_close_0003f158)(flags);
        if (iVar3 == 0) goto LAB_0001f860;
        iVar3 = *piVar5;
        uVar19 = 0x1753;
        goto joined_r0x00020848;
      }
      if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {
        if (daemon->fastopen_queue_size == 0) {
          daemon->fastopen_queue_size = 10;
        }
        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);
        if (iVar3 != 0) {
          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);
        }
      }
      iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);
      if (iVar3 < 0) {
        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();
        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);
        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);
        iVar3 = (*(code *)PTR_close_0003f158)(flags);
        if (iVar3 == 0) goto LAB_0001f860;
        iVar3 = (pMVar6->__data).__lock;
        uVar19 = 0x1771;
        goto joined_r0x00020848;
      }
      goto LAB_0001f7e0;
    }
LAB_0001f82c:
    if (((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)) {
      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;
      iVar3 = setup_epoll_to_listen(daemon);
      if (iVar3 != 1) goto LAB_0001f860;
    }
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);
    if (iVar3 != 0) {
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);
      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;
LAB_0001ff08:
      iVar3 = (*(code *)PTR_close_0003f158)(flags);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar5;
      uVar19 = 0x17fc;
      goto joined_r0x00020848;
    }
  }
  else {
LAB_0001f7e0:
    if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {
      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);
      addrlen = 0x80;
      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);
      if (iVar3 == 0) {
        if (addrlen < 0x81) {
          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {
            daemon->port = servaddr_1.__ss_padding._0_2_;
          }
          else {
            if (servaddr_1.ss_family != 1) {
              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);
            }
            daemon->port = 0;
          }
        }
        else {
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);
        }
      }
      else {
        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);
      }
    }
    iVar3 = MHD_socket_nonblocking_(flags);
    if (iVar3 != 0) {
      MVar22 = daemon->options;
      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))
      goto LAB_0002006c;
      goto LAB_0001f82c;
    }
    pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();
    uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);
    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19);
    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) goto LAB_00020280;
    if (daemon->worker_pool_size != 0) goto LAB_00020280;
    if ((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) {
LAB_0002006c:
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);
      iVar3 = (*(code *)PTR_close_0003f158)(flags);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar5;
      uVar19 = 0x17dc;
      goto joined_r0x00020848;
    }
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);
    if (iVar3 != 0) {
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);
      goto LAB_0001ff08;
    }
  }
  pMVar23 = &daemon->per_ip_connection_mutex;
  if (daemon->worker_pool_size == 0) {
    pMVar6 = &daemon->cleanup_connection_mutex;
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0);
    if (iVar3 != 0) {
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);
      uVar19 = 0x1809;
      if (iVar3 != 0) goto LAB_0002025c;
      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;
      iVar3 = (*(code *)PTR_close_0003f158)(flags);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar5;
      uVar19 = 0x180c;
      goto joined_r0x00020848;
    }
  }
  MVar22 = daemon->options;
  if ((MVar22 & MHD_USE_SSL) != MHD_NO_FLAG) {
    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {
      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);
      if (iVar3 != 0) goto LAB_000201cc;
      if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {
        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);
      }
      pcVar17 = daemon->https_mem_trust;
      if (pcVar17 != (char *)0x0) {
        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;
        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);
        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)
                          (daemon->x509_cred,&v6_only,1);
        if (iVar3 < 0) {
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);
          goto LAB_000201cc;
        }
      }
      if (daemon->have_dhparams != false) {
        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)
                  (daemon->x509_cred,daemon->https_mem_dhparams);
      }
      pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;
      if ((pMVar6 == (MHD_mutex_ *)0x0) ||
         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {
        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);
          goto LAB_000201cc;
        }
      }
      else {
        key.data = puVar7;
        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);
        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;
        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);
        if (daemon->https_key_password == (char *)0x0) {
          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)
                            (daemon->x509_cred,&v6_only,&key,1);
        }
        else {
          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)
                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);
        }
        if (iVar3 != 0) {
          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);
          goto LAB_000201cc;
        }
      }
    }
    else {
      if (daemon->cred_type != GNUTLS_CRD_PSK) {
        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);
LAB_000201cc:
        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);
        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {
          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = 0x181c;
          if (*piVar5 == 9) goto LAB_0001fdd8;
        }
        if (daemon->worker_pool_size == 0) {
          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);
          uVar19 = 0x181f;
          if (iVar3 != 0) goto LAB_0002025c;
        }
        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);
        uVar19 = 0x1820;
        if (iVar3 != 0) goto LAB_0002025c;
        goto LAB_0001f860;
      }
      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);
      if (iVar3 != 0) goto LAB_000201cc;
    }
    MVar22 = daemon->options;
  }
  if ((MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)) ==
      MHD_USE_INTERNAL_POLLING_THREAD) {
    uVar16 = daemon->worker_pool_size;
    if (uVar16 != 0) {
      uVar8 = daemon->connection_limit;
      if (uVar16 == 0) {
        trap(7);
      }
      uVar25 = uVar8 / uVar16;
      pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);
      daemon->worker_pool = pMVar9;
      puVar1 = PTR_DAT_0003f05c;
      if (pMVar9 == (MHD_Daemon *)0x0) {
LAB_00020778:
        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {
          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = 0x18b3;
          if (*piVar5 == 9) goto LAB_0001fdd8;
        }
        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);
        uVar19 = 0x18b4;
        if (iVar3 != 0) goto LAB_0002025c;
        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;
        (*(code *)PTR_free_0003f2f8)();
        goto LAB_0001f860;
      }
      pMVar6 = (MHD_mutex_ *)0x0;
      pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);
      start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);
      do {
        pMVar9 = pMVar9 + (int)pMVar6;
        pMVar10 = pMVar9;
        pMVar14 = daemon;
        do {
          ppMVar15 = &pMVar14->suspended_connections_head;
          pvVar21 = pMVar14->default_handler_cls;
          pMVar20 = pMVar14->connections_head;
          pMVar18 = pMVar14->connections_tail;
          pMVar10->default_handler = pMVar14->default_handler;
          pMVar10->default_handler_cls = pvVar21;
          pMVar10->connections_head = pMVar20;
          pMVar10->connections_tail = pMVar18;
          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;
          pMVar14 = (MHD_Daemon *)ppMVar15;
        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);
        *(MHD_Connection **)pMVar10 = *ppMVar15;
        pMVar9->master = daemon;
        pMVar9->worker_pool_size = 0;
        pMVar9->worker_pool = (MHD_Daemon *)0x0;
        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {
          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);
          (pMVar9->itc).fd = iVar3;
          if (iVar3 == -1) {
            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);
          }
          else {
            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)
               ) goto LAB_00020648;
            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);
            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);
            if ((iVar3 == 0) &&
               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))
            goto LAB_00020b10;
          }
LAB_00020770:
          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;
          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;
          goto LAB_00020778;
        }
        (pMVar9->itc).fd = -1;
LAB_00020648:
        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {
          pMVar9->connection_limit = uVar25 + 1;
        }
        else {
          pMVar9->connection_limit = uVar25;
        }
        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&
           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;
        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);
        if (iVar3 != 0) {
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);
          goto LAB_00020770;
        }
        iVar3 = MHD_create_named_thread_
                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,
                           pMVar9);
        if (iVar3 == 0) {
          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);
          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);
          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);
          uVar19 = 0x189b;
          if (iVar3 != 0) goto LAB_0002025c;
          goto LAB_00020770;
        }
        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);
        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;
        pMVar9 = daemon->worker_pool;
      } while( true );
    }
    if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {
      pcVar17 = PTR_DAT_0003f05c + -0x3004;
    }
    else {
      pcVar17 = PTR_DAT_0003f05c + -0x3010;
    }
    iVar3 = MHD_create_named_thread_
                      (&daemon->pid,pcVar17,daemon->thread_stack_size,
                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon);
    if (iVar3 == 0) {
      pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();
      uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);
      uVar19 = 0x1837;
      if (iVar3 != 0) goto LAB_0002025c;
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);
      uVar19 = 0x1838;
      if (iVar3 != 0) goto LAB_0002025c;
      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;
      iVar3 = (*(code *)PTR_close_0003f158)(flags);
      if (iVar3 == 0) goto LAB_0001f860;
      iVar3 = (pMVar6->__data).__lock;
      uVar19 = 0x183a;
      goto joined_r0x00020848;
    }
  }
LAB_0001fcdc:
  daemon->https_key_password = (char *)0x0;
  pMVar9 = daemon;
LAB_0001f950:
  if (iVar12 == *(int *)puVar2) {
    return pMVar9;
  }
  (*(code *)PTR___stack_chk_fail_0003f2b8)();
  daemon = pMVar9;
LAB_00020ae0:
  uVar19 = 0x18dc;
LAB_0002025c:
  (**(code **)PTR_mhd_panic_0003f070)
            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,
             PTR_DAT_0003f05c + -0x302c);
LAB_00020280:
  iVar3 = (*(code *)PTR_close_0003f158)(flags);
  if (iVar3 != 0) {
    iVar3 = (pMVar6->__data).__lock;
    uVar19 = 0x17cd;
joined_r0x00020848:
    if (iVar3 == 9) {
LAB_0001fdd8:
      (**(code **)PTR_mhd_panic_0003f070)
                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,
                 PTR_DAT_0003f05c + -0x3950);
LAB_0001fdf8:
      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);
    }
  }
LAB_0001f860:
  iVar3 = daemon->epoll_fd;
  if (daemon->upgrade_fd_in_epoll == false) goto LAB_0001f86c;
  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,daemon->epoll_upgrade_fd,0);
  if (iVar3 == 0) {
    iVar3 = daemon->epoll_fd;
    daemon->upgrade_fd_in_epoll = false;
    goto LAB_0001f86c;
  }
  (**(code **)PTR_mhd_panic_0003f070)
            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,
             PTR_DAT_0003f05c + -0x4f40);
LAB_00020b10:
  uVar19 = 0x1871;
  goto LAB_0001f91c;
LAB_0001f86c:
  if (iVar3 != -1) {
    (*(code *)PTR_close_0003f158)();
  }
  if (daemon->epoll_upgrade_fd != -1) {
    (*(code *)PTR_close_0003f158)();
  }
  (*(code *)PTR_free_0003f2f8)(daemon->nnc);
  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(dh);
  if (iVar3 == 0) goto code_r0x0001f8c8;
  goto LAB_00020ae0;
code_r0x0001f8c8:
  if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {
    (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);
  }
  if (((daemon->itc).fd != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {
    piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar19 = 0x18e4;
    if (*piVar5 == 9) {
LAB_0001f91c:
      pcVar24 = *(code **)PTR_mhd_panic_0003f070;
      (*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,
                 PTR_DAT_0003f05c + -0x3044);
LAB_0001f93c:
      daemon->worker_pool_size = (uint)pMVar6;
      (*pcVar24)(daemon);
LAB_0001f94c:
      pMVar9 = (MHD_Daemon *)0x0;
      goto LAB_0001f950;
    }
  }
LAB_0001fc50:
  (*(code *)PTR_free_0003f2f8)(daemon);
  pMVar9 = (MHD_Daemon *)0x0;
  goto LAB_0001f950;
}



undefined4 *
MHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,
                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  int *piVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  undefined *puVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  undefined *puVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined2 uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 *puVar17;
  code *pcVar18;
  uint uVar19;
  undefined4 local_f4;
  undefined2 *local_f0;
  uint local_ec;
  int local_e8;
  undefined4 local_e4;
  int *local_e0;
  undefined4 local_dc;
  undefined2 local_d8;
  undefined2 local_d6;
  undefined4 local_d4;
  undefined4 local_d0;
  undefined4 local_cc;
  undefined2 local_c8;
  undefined2 local_c6;
  undefined4 local_c4;
  undefined4 local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  undefined4 local_b4;
  undefined4 local_b0;
  short local_ac;
  undefined2 local_aa;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0003f2ec;
  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;
  local_f4 = 1;
  local_f0 = (undefined2 *)0x0;
  if ((param_1 & 0x8000) != 0) {
    param_1 = param_1 | 0x2400;
  }
  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;
  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;
  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;
  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;
  if ((int)(param_1 << 0xf) < 0) {
    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;
    if ((param_1 & 4) == 0) {
      param_1 = param_1 | 0x200;
    }
    else {
      param_1 = param_1 | 0x40;
    }
  }
  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);
  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;
  uVar15 = param_1 & 2;
  puVar2[0x43] = 0;
  puVar2[0x33] = 0xffffffff;
  puVar2[0x35] = 0xffffffff;
  if (uVar15 != 0) {
    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);
  }
  puVar2[0x32] = 0;
  puVar2[0x3e] = param_1;
  puVar2[0x3b] = 0x3fc;
  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;
  puVar2[0x1f] = 0x8000;
  puVar2[0x31] = 0xffffffff;
  puVar2[0x20] = 0x400;
  puVar10 = PTR_LAB_0003f084;
  uVar14 = SUB42(param_2,0);
  *(undefined2 *)(puVar2 + 0x3f) = uVar14;
  puVar2[0x10] = param_3;
  puVar2[0x11] = param_4;
  *puVar2 = param_5;
  puVar2[0x18] = puVar10 + -0x6eb8;
  puVar2[1] = param_6;
  puVar2[0x5c] = 0x80;
  puVar10 = PTR_vfprintf_0003f1c0;
  puVar2[0x3a] = 0;
  puVar2[0x3c] = 0;
  puVar2[0x1a] = puVar10;
  puVar10 = PTR_stderr_0003f304;
  puVar2[0x37] = 0xffffffff;
  puVar2[0x1b] = *(undefined4 *)puVar10;
  if ((param_1 & 0xc) == 4) {
    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);
    param_1 = puVar2[0x3e] | 8;
    puVar2[0x3e] = param_1;
LAB_0001f9b4:
    if ((param_1 & 0x100) == 0) {
      uVar15 = puVar2[0x3e] & 2;
    }
    else {
      puVar2[0x3e] = param_1 | 0x400;
      uVar15 = param_1 & 2;
    }
  }
  else {
    if ((param_1 & 8) != 0) goto LAB_0001f9b4;
    param_1 = param_1 & 0xfffffbff;
    puVar2[0x3e] = param_1;
  }
  puVar2[0x59] = 0;
  puVar2[0x51] = 0;
  puVar2[0x5a] = 4;
  if (uVar15 != 0) {
    puVar2[0x44] = 1;
  }
  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);
  if (iVar3 != 1) {
    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;
LAB_0001fc74:
    iVar3 = puVar2[0x43];
joined_r0x0002099c:
    if (iVar3 == 0) goto LAB_0001fc50;
    (*(code *)PTR_gnutls_priority_deinit_0003f170)();
    goto LAB_0001fc50;
  }
  uVar15 = puVar2[0x3e];
  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {
    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;
  }
  else {
    puVar2[0x3e] = uVar15 | 0x400;
LAB_0001f9d4:
    if (puVar2[0x22] == 0) {
      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);
      puVar2[0x37] = iVar3;
      if (iVar3 == -1) {
        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);
        iVar3 = puVar2[0x43];
        goto joined_r0x0002099c;
      }
      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);
        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);
        if (iVar3 == 0) {
          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = 0x1636;
          if (*piVar4 == 9) goto LAB_0001f91c;
        }
        goto LAB_0001fc74;
      }
    }
  }
  uVar15 = puVar2[0x5a];
  if (uVar15 != 0) {
    if (uVar15 != (uVar15 * 0x98) / 0x98) {
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);
      uVar15 = puVar2[0x3e];
joined_r0x0001fc44:
      if ((uVar15 & 2) == 0) goto LAB_0001fc50;
      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);
      goto LAB_0001fc50;
    }
    iVar3 = (*(code *)PTR_malloc_0003f25c)();
    puVar2[0x52] = iVar3;
    if (iVar3 == 0) {
      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);
      uVar15 = puVar2[0x3e];
      goto joined_r0x0001fc44;
    }
  }
  param_5 = puVar2 + 0x53;
  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);
  if (iVar3 != 0) {
    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);
    if ((puVar2[0x3e] & 2) != 0) {
      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);
    }
    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);
    puVar5 = (undefined4 *)0x0;
    (*(code *)PTR_free_0003f2f8)(puVar2);
    goto LAB_0001f950;
  }
  uVar15 = puVar2[0x3e];
  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {
    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);
    goto LAB_0001f860;
  }
  param_1 = puVar2[0x31];
  if (param_1 == 0xffffffff) {
    if ((uVar15 & 0x100) == 0) {
      uVar11 = 10;
      if ((uVar15 & 0x10) == 0) {
        uVar11 = 2;
      }
      param_1 = FUN_0002234c(uVar11);
      if (param_1 == 0xffffffff) {
        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);
        goto LAB_0001f860;
      }
      if (puVar2[0x32] == 0) {
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);
        if (iVar3 < 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
        }
      }
      else if (0 < (int)puVar2[0x32]) {
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);
        if (iVar3 < 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
        }
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);
        if (iVar3 < 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
          goto LAB_0001f860;
        }
      }
      if ((puVar2[0x3e] & 0x10) == 0) {
        local_ec = 0x10;
        if (local_f0 == (undefined2 *)0x0) {
          local_d4 = 0;
          local_d0 = 0;
          local_d8 = 2;
          local_f0 = &local_d8;
          local_cc = 0;
          puVar2[0x31] = param_1;
          local_d6 = uVar14;
        }
        else {
          puVar2[0x31] = param_1;
        }
      }
      else {
        local_ec = 0x1c;
        if (local_f0 == (undefined2 *)0x0) {
          local_c4 = 0;
          local_b0 = 0;
          local_c8 = 10;
          local_f0 = &local_c8;
          local_c0 = 0;
          local_bc = 0;
          local_b8 = 0;
          local_b4 = 0;
          puVar2[0x31] = param_1;
          local_c6 = uVar14;
        }
        else {
          puVar2[0x31] = param_1;
        }
        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);
        if (iVar3 < 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
        }
      }
      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);
      puVar10 = PTR_setsockopt_0003f340;
      if (iVar3 == -1) {
        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);
        iVar3 = (*(code *)PTR_close_0003f158)(param_1);
        if (iVar3 == 0) goto LAB_0001f860;
        iVar3 = *piVar4;
        uVar11 = 0x1753;
        goto joined_r0x00020848;
      }
      if ((puVar2[0x3e] & 0x4000) != 0) {
        if (puVar2[0x5b] == 0) {
          puVar2[0x5b] = 10;
        }
        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);
        if (iVar3 != 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
        }
      }
      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);
      if (iVar3 < 0) {
        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);
        iVar3 = (*(code *)PTR_close_0003f158)(param_1);
        if (iVar3 == 0) goto LAB_0001f860;
        iVar3 = *param_2;
        uVar11 = 0x1771;
        goto joined_r0x00020848;
      }
      goto LAB_0001f7e0;
    }
LAB_0001f82c:
    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {
      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;
      iVar3 = FUN_0001b338(puVar2);
      if (iVar3 != 1) goto LAB_0001f860;
    }
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);
    if (iVar3 != 0) {
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);
      if (param_1 == 0xffffffff) goto LAB_0001f860;
LAB_0001ff08:
      iVar3 = (*(code *)PTR_close_0003f158)(param_1);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar4;
      uVar11 = 0x17fc;
      goto joined_r0x00020848;
    }
  }
  else {
LAB_0001f7e0:
    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {
      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);
      local_ec = 0x80;
      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);
      if (iVar3 == 0) {
        if (local_ec < 0x81) {
          if ((local_ac == 2) || (local_ac == 10)) {
            *(undefined2 *)(puVar2 + 0x3f) = local_aa;
          }
          else {
            if (local_ac != 1) {
              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);
            }
            *(undefined2 *)(puVar2 + 0x3f) = 0;
          }
        }
        else {
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);
        }
      }
      else {
        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);
      }
    }
    iVar3 = FUN_00022234(param_1);
    if (iVar3 != 0) {
      uVar15 = puVar2[0x3e];
      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;
      goto LAB_0001f82c;
    }
    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);
    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);
    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;
    if (puVar2[0x22] != 0) goto LAB_00020280;
    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {
LAB_0002006c:
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);
      iVar3 = (*(code *)PTR_close_0003f158)(param_1);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar4;
      uVar11 = 0x17dc;
      goto joined_r0x00020848;
    }
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);
    if (iVar3 != 0) {
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);
      goto LAB_0001ff08;
    }
  }
  puVar5 = puVar2 + 0x25;
  if (puVar2[0x22] == 0) {
    param_2 = puVar2 + 0x2b;
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);
    if (iVar3 != 0) {
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);
      uVar11 = 0x1809;
      if (iVar3 != 0) goto LAB_0002025c;
      if (param_1 == 0xffffffff) goto LAB_0001f860;
      iVar3 = (*(code *)PTR_close_0003f158)(param_1);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar4;
      uVar11 = 0x180c;
      goto joined_r0x00020848;
    }
  }
  uVar15 = puVar2[0x3e];
  if ((uVar15 & 2) != 0) {
    if (puVar2[0x44] == 1) {
      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);
      if (iVar3 != 0) goto LAB_000201cc;
      if (puVar2[0x48] != 0) {
        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);
      }
      piVar4 = (int *)puVar2[0x4e];
      if (piVar4 != (int *)0x0) {
        local_e0 = piVar4;
        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);
        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)
                          (puVar2[0x45],&local_e0,1);
        if (iVar3 < 0) {
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);
          goto LAB_000201cc;
        }
      }
      if (*(char *)(puVar2 + 0x50) != '\0') {
        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);
      }
      param_2 = (int *)puVar2[0x4c];
      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {
        if (puVar2[0x48] == 0) {
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);
          goto LAB_000201cc;
        }
      }
      else {
        local_e8 = iVar3;
        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);
        local_e0 = param_2;
        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);
        if (puVar2[0x4d] == 0) {
          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)
                            (puVar2[0x45],&local_e0,&local_e8,1);
        }
        else {
          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)
                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);
        }
        if (iVar3 != 0) {
          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);
          goto LAB_000201cc;
        }
      }
    }
    else {
      if (puVar2[0x44] != 4) {
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);
LAB_000201cc:
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);
        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))
        {
          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = 0x181c;
          if (*piVar4 == 9) goto LAB_0001fdd8;
        }
        if (puVar2[0x22] == 0) {
          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);
          uVar11 = 0x181f;
          if (iVar3 != 0) goto LAB_0002025c;
        }
        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);
        uVar11 = 0x1820;
        if (iVar3 != 0) goto LAB_0002025c;
        goto LAB_0001f860;
      }
      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);
      if (iVar3 != 0) goto LAB_000201cc;
    }
    uVar15 = puVar2[0x3e];
  }
  if ((uVar15 & 0x108) == 8) {
    uVar16 = puVar2[0x22];
    if (uVar16 != 0) {
      uVar15 = puVar2[0x3b];
      if (uVar16 == 0) {
        trap(7);
      }
      uVar19 = uVar15 / uVar16;
      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);
      puVar2[0x1d] = iVar3;
      puVar10 = PTR_DAT_0003f05c;
      if (iVar3 == 0) {
LAB_00020778:
        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))
        {
          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = 0x18b3;
          if (*piVar4 == 9) goto LAB_0001fdd8;
        }
        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);
        uVar11 = 0x18b4;
        if (iVar3 != 0) goto LAB_0002025c;
        if (puVar2[0x1d] == 0) goto LAB_0001f860;
        (*(code *)PTR_free_0003f2f8)();
        goto LAB_0001f860;
      }
      param_2 = (int *)0x0;
      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);
      puVar7 = PTR_LAB_0003f084 + -6000;
      do {
        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);
        puVar6 = puVar17;
        puVar8 = puVar2;
        do {
          puVar9 = puVar8 + 4;
          uVar13 = puVar8[1];
          uVar12 = puVar8[2];
          uVar11 = puVar8[3];
          *puVar6 = *puVar8;
          puVar6[1] = uVar13;
          puVar6[2] = uVar12;
          puVar6[3] = uVar11;
          puVar6 = puVar6 + 4;
          puVar8 = puVar9;
        } while (puVar9 != puVar2 + 0x5c);
        *puVar6 = *puVar9;
        puVar17[0x1c] = puVar2;
        puVar17[0x22] = 0;
        puVar17[0x1d] = 0;
        if ((puVar2[0x3e] & 0x400) != 0) {
          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);
          puVar17[0x37] = iVar3;
          if (iVar3 == -1) {
            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);
            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);
          }
          else {
            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;
            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);
            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);
            if ((iVar3 == 0) &&
               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))
            goto LAB_00020b10;
          }
LAB_00020770:
          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;
          if (param_2 != (int *)0x0) goto LAB_0001f93c;
          goto LAB_00020778;
        }
        puVar17[0x37] = 0xffffffff;
LAB_00020648:
        if (param_2 < (int *)(uVar15 % uVar16)) {
          puVar17[0x3b] = uVar19 + 1;
        }
        else {
          puVar17[0x3b] = uVar19;
        }
        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))
        goto LAB_00020770;
        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);
        if (iVar3 != 0) {
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);
          goto LAB_00020770;
        }
        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);
        if (iVar3 == 0) {
          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);
          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);
          uVar11 = 0x189b;
          if (iVar3 != 0) goto LAB_0002025c;
          goto LAB_00020770;
        }
        param_2 = (int *)((int)param_2 + 1);
        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;
        iVar3 = puVar2[0x1d];
      } while( true );
    }
    if ((uVar15 & 4) == 0) {
      puVar10 = PTR_DAT_0003f05c + -0x3004;
    }
    else {
      puVar10 = PTR_DAT_0003f05c + -0x3010;
    }
    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);
    if (iVar3 == 0) {
      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();
      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);
      uVar11 = 0x1837;
      if (iVar3 != 0) goto LAB_0002025c;
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);
      uVar11 = 0x1838;
      if (iVar3 != 0) goto LAB_0002025c;
      if (param_1 == 0xffffffff) goto LAB_0001f860;
      iVar3 = (*(code *)PTR_close_0003f158)(param_1);
      if (iVar3 == 0) goto LAB_0001f860;
      iVar3 = *param_2;
      uVar11 = 0x183a;
      goto joined_r0x00020848;
    }
  }
LAB_0001fcdc:
  puVar2[0x4d] = 0;
  puVar5 = puVar2;
LAB_0001f950:
  if (local_2c == *(int *)puVar1) {
    return puVar5;
  }
  (*(code *)PTR___stack_chk_fail_0003f2b8)();
  puVar2 = puVar5;
LAB_00020ae0:
  uVar11 = 0x18dc;
LAB_0002025c:
  (**(code **)PTR_DAT_0003f070)
            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,
             PTR_DAT_0003f05c + -0x302c);
LAB_00020280:
  iVar3 = (*(code *)PTR_close_0003f158)(param_1);
  if (iVar3 != 0) {
    iVar3 = *param_2;
    uVar11 = 0x17cd;
joined_r0x00020848:
    if (iVar3 == 9) {
LAB_0001fdd8:
      (**(code **)PTR_DAT_0003f070)
                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,
                 PTR_DAT_0003f05c + -0x3950);
LAB_0001fdf8:
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);
    }
  }
LAB_0001f860:
  iVar3 = puVar2[0x33];
  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;
  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);
  if (iVar3 == 0) {
    iVar3 = puVar2[0x33];
    *(undefined1 *)(puVar2 + 0x36) = 0;
    goto LAB_0001f86c;
  }
  (**(code **)PTR_DAT_0003f070)
            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,
             PTR_DAT_0003f05c + -0x4f40);
LAB_00020b10:
  uVar11 = 0x1871;
  goto LAB_0001f91c;
LAB_0001f86c:
  if (iVar3 != -1) {
    (*(code *)PTR_close_0003f158)();
  }
  if (puVar2[0x35] != -1) {
    (*(code *)PTR_close_0003f158)();
  }
  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);
  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);
  if (iVar3 == 0) goto code_r0x0001f8c8;
  goto LAB_00020ae0;
code_r0x0001f8c8:
  if ((puVar2[0x3e] & 2) != 0) {
    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);
  }
  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar11 = 0x18e4;
    if (*piVar4 == 9) {
LAB_0001f91c:
      pcVar18 = *(code **)PTR_DAT_0003f070;
      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,
                 PTR_DAT_0003f05c + -0x3044);
LAB_0001f93c:
      puVar2[0x22] = param_2;
      (*pcVar18)(puVar2);
LAB_0001f94c:
      puVar5 = (undefined4 *)0x0;
      goto LAB_0001f950;
    }
  }
LAB_0001fc50:
  (*(code *)PTR_free_0003f2f8)(puVar2);
  puVar5 = (undefined4 *)0x0;
  goto LAB_0001f950;
}


lui gp,0x2
addiu gp,gp,0x7ad8
addu gp,gp,t9
addiu sp,sp,-0x130
andi v0,a0,0x8000
sw s0,0x108(sp)
sw s7,0x124(sp)
or s7,a2,zero
sw s6,0x120(sp)
sw s5,0x11c(sp)
sw s3,0x114(sp)
or s3,a1,zero
sw s2,0x110(sp)
sw s1,0x10c(sp)
or s1,a0,zero
sw gp,0x18(sp)
li a0,0x1
sw ra,0x12c(sp)
sw s8,0x128(sp)
sw s4,0x118(sp)
lw s0,-0x7d44(gp)
lw s2,0x140(sp)
lw s6,0x144(sp)
lw s5,0x148(sp)
lw v1,0x0(s0)
sw a0,0x3c(sp)
sw zero,0x40(sp)
sw v1,0x104(sp)
beq v0,zero,0x0001f5d4
_nop
ori s1,s1,0x2400
beq s2,zero,0x0001f94c
_li v1,0x240
andi v0,s1,0x240
beq v0,v1,0x0001f94c
_li v1,0x204
andi a0,s1,0x204
beq a0,v1,0x0001f94c
_li v1,0x40
andi a0,s1,0x4c
beq a0,v1,0x0001f94c
_ext v1,s1,0x10,0x1
beq v1,zero,0x0001f620
_lw t9,-0x7eec(gp)
bne v0,zero,0x0001f94c
_andi v0,s1,0x4
beq v0,zero,0x0001fa8c
_nop
ori s1,s1,0x40
lw t9,-0x7eec(gp)
li a1,0x174
li a0,0x1
jalr t9
_sw a3,0x24(sp)
lw gp,0x18(sp)
beq v0,zero,0x0001f94c
_or s8,v0,zero
li v0,-0x1
lw a3,0x24(sp)
andi s4,s1,0x2
sw zero,0x10c(s8)
sw v0,0xcc(s8)
bne s4,zero,0x0001fa68
_sw v0,0xd4(s8)
li a0,0x3fc
sw zero,0xc8(s8)
ext v0,s1,0x5,0x1
sw s1,0xf8(s8)
sw a0,0xec(s8)
ori a0,zero,0x8000
li a1,-0x1
sw v0,0x100(s8)
sw a0,0x7c(s8)
li a0,0x400
li a2,0x4
sw a1,0xc4(s8)
sw a0,0x80(s8)
andi v0,s1,0xc
lw a0,-0x7fac(gp)
sh s3,0xfc(s8)
sw s7,0x40(s8)
addiu a0,a0,-0x6eb8
sw a3,0x44(s8)
sw s2,0x0(s8)
sw a0,0x60(s8)
li a0,0x80
sw s6,0x4(s8)
sw a0,0x170(s8)
lw a0,-0x7e70(gp)
sw zero,0xe8(s8)
sw zero,0xf0(s8)
sw a0,0x68(s8)
lw a0,-0x7d2c(gp)
sw a1,0xdc(s8)
lw a0,0x0(a0)
beq v0,a2,0x0001f990
_sw a0,0x6c(s8)
andi v0,s1,0x8
bne v0,zero,0x0001f9b4
_li v0,-0x401
and s1,s1,v0
sw s1,0xf8(s8)
li v0,0x4
sw zero,0x164(s8)
sw zero,0x144(s8)
beq s4,zero,0x0001f70c
_sw v0,0x168(s8)
li v0,0x1
sw v0,0x110(s8)
lw t9,-0x7fac(gp)
addiu a1,sp,0x40
or a0,s8,zero
addiu t9,t9,-0x6ea0
bal 0x00019160
_or a2,s5,zero
li a0,0x1
bne v0,a0,0x0001fc64
_lw gp,0x18(sp)
lw a0,0x48(s8)
beq a0,zero,0x0001f748
_lw v0,0xf8(s8)
andi a0,v0,0x4
bne a0,zero,0x0001f9cc
_nop
andi v0,v0,0x400
bne v0,zero,0x0001f9d4
_nop
lw a1,0x168(s8)
beq a1,zero,0x0001f798
_li a0,0x98
lui a2,0x1af2
mul a0,a1,a0
ori a2,a2,0x86bd
srl v0,a0,0x3
multu v0,a2
mfhi v0
srl v0,v0,0x1
bne a1,v0,0x0001fc28
_lw t9,-0x7dd4(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x0001fe14
_sw v0,0x148(s8)
lw t9,-0x7d54(gp)
addiu s2,s8,0x14c
or a1,zero,zero
jalr t9
_or a0,s2,zero
bne v0,zero,0x00020150
_lw gp,0x18(sp)
lw a0,0xf8(s8)
andi v0,a0,0x8
bne v0,zero,0x0001f7d0
_nop
lw v0,0x88(s8)
bne v0,zero,0x0001fce4
_lw a1,-0x7fd4(gp)
lw s1,0xc4(s8)
li s4,-0x1
beq s1,s4,0x0001faa0
_andi v0,a0,0x100
lhu v0,0xfc(s8)
bne v0,zero,0x0001f800
_lw t9,-0x7f84(gp)
lw v0,0xf8(s8)
andi v0,v0,0x100
beq v0,zero,0x0001ff44
_lw t9,-0x7e24(gp)
lw t9,-0x7f84(gp)
bal 0x00022234
_or a0,s1,zero
beq v0,zero,0x0001ffc8
_lw gp,0x18(sp)
slti v0,s1,0x400
bne v0,zero,0x0001f828
_lw a0,0xf8(s8)
andi v0,a0,0x240
beq v0,zero,0x0002006c
_lw a1,-0x7fd4(gp)
andi v0,a0,0x200
beq v0,zero,0x0001fc98
_lw t9,-0x7d54(gp)
lw v0,0x88(s8)
bne v0,zero,0x0001fc98
_andi a0,a0,0x4
bne a0,zero,0x0001fdf8
_lw t9,-0x7fac(gp)
addiu t9,t9,-0x4cc8
bal 0x0001b338
_or a0,s8,zero
li a0,0x1
beq v0,a0,0x0001fc94
_lw gp,0x18(sp)
lbu v0,0xd8(s8)
bne v0,zero,0x0001feb0
_lw a0,0xcc(s8)
li v0,-0x1
beq a0,v0,0x0001f884
_lw t9,-0x7ed8(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0xd4(s8)
li v0,-0x1
beq a0,v0,0x0001f8a8
_lw t9,-0x7d38(gp)
lw t9,-0x7ed8(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_lw a0,0x148(s8)
lw gp,0x18(sp)
lw t9,-0x7d1c(gp)
jalr t9
_or a0,s2,zero
bne v0,zero,0x00020ae0
_lw gp,0x18(sp)
lw v0,0xf8(s8)
andi v0,v0,0x2
bne v0,zero,0x0001fed8
_lw t9,-0x7ec0(gp)
lw a0,0xdc(s8)
li v0,-0x1
beq a0,v0,0x0001fc4c
_lw t9,-0x7ed8(gp)
jalr t9
_nop
bne v0,zero,0x0001fc4c
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li a0,0x9
lw v0,0x0(v0)
li a2,0x18e4
bne v0,a0,0x0001fc4c
_lw gp,0x18(sp)
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x3044
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
or a0,s8,zero
jalr t9
_sw s3,0x88(s8)
lw gp,0x18(sp)
or s8,zero,zero
lw a0,0x104(sp)
or v0,s8,zero
lw v1,0x0(s0)
bne a0,v1,0x00020ad4
_lw ra,0x12c(sp)
lw s8,0x128(sp)
lw s7,0x124(sp)
lw s6,0x120(sp)
lw s5,0x11c(sp)
lw s4,0x118(sp)
lw s3,0x114(sp)
lw s2,0x110(sp)
lw s1,0x10c(sp)
lw s0,0x108(sp)
jr ra
_addiu sp,sp,0x130
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2ff0
lw s1,0xf8(s8)
lw gp,0x18(sp)
ori s1,s1,0x8
sw s1,0xf8(s8)
andi v0,s1,0x100
beq v0,zero,0x0001fa94
_ori v0,s1,0x400
sw v0,0xf8(s8)
b 0x0001f6f0
_andi s4,s1,0x2
ori v0,v0,0x400
sw v0,0xf8(s8)
lw v0,0x88(s8)
bne v0,zero,0x0001f754
_lui a1,0x8
lw t9,-0x7eb0(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x80
li a0,-0x1
lw gp,0x18(sp)
beq v0,a0,0x00020960
_sw v0,0xdc(s8)
lw a0,0xf8(s8)
andi a0,a0,0x240
bne a0,zero,0x0001f754
_slti v0,v0,0x400
bne v0,zero,0x0001f754
_lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2ee4
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_lw a0,0xdc(s8)
bne v0,zero,0x0001fc74
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li a0,0x9
lw v0,0x0(v0)
li a2,0x1636
bne v0,a0,0x0001fc74
_lw gp,0x18(sp)
b 0x0001f91c
_lw v0,-0x7fc8(gp)
lw a1,-0x7fd4(gp)
or a2,zero,zero
lw t9,-0x7d50(gp)
addiu a0,s8,0x10c
jalr t9
_addiu a1,a1,-0x2ff8
lw gp,0x18(sp)
b 0x0001f658
_lw a3,0x24(sp)
b 0x0001f61c
_ori s1,s1,0x200
lw s4,0xf8(s8)
b 0x0001f6f0
_andi s4,s4,0x2
bne v0,zero,0x0001f82c
_andi v0,a0,0x200
li a1,0x2
lw t9,-0x7f74(gp)
li v0,0xa
andi a0,a0,0x10
movz v0,a1,a0
bal 0x0002234c
_or a0,v0,zero
lw gp,0x18(sp)
beq v0,s4,0x000208e0
_or s1,v0,zero
lw v0,0xc8(s8)
beq v0,zero,0x000202c0
_lw t9,-0x7cf0(gp)
bgtz v0,0x00020364
_li v0,0x4
lw v0,0xf8(s8)
andi a0,v0,0x10
beq a0,zero,0x000202a8
_lw a1,0x40(sp)
li a0,0x1c
beq a1,zero,0x00020888
_sw a0,0x44(sp)
sw s1,0xc4(s8)
andi v0,v0,0x810
lw t9,-0x7cf0(gp)
li a0,0x4
xori v0,v0,0x810
sltu v0,zero,v0
sw a0,0x10(sp)
addiu a3,sp,0x50
sw v0,0x50(sp)
li a2,0x1a
li a1,0x29
jalr t9
_or a0,s1,zero
bltz v0,0x0001fe70
_lw gp,0x18(sp)
lw a1,0x40(sp)
lw a2,0x44(sp)
lw t9,-0x7e14(gp)
jalr t9
_or a0,s1,zero
li a0,-0x1
beq v0,a0,0x000207e8
_lw gp,0x18(sp)
lw v0,0xf8(s8)
andi v0,v0,0x4000
beq v0,zero,0x0001fba8
_lw t9,-0x7e78(gp)
lw v0,0x16c(s8)
bne v0,zero,0x0001fb80
_lw t9,-0x7cf0(gp)
li v0,0xa
sw v0,0x16c(s8)
li v0,0x4
addiu a3,s8,0x16c
li a2,0x17
sw v0,0x10(sp)
li a1,0x6
jalr t9
_or a0,s1,zero
bne v0,zero,0x00020920
_lw gp,0x18(sp)
lw t9,-0x7e78(gp)
or a0,s1,zero
jalr t9
_lw a1,0x170(s8)
bgez v0,0x0001f7e0
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s3,v0,zero
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2d68
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0001f860
_lw gp,0x18(sp)
lw a0,0x0(s3)
li v0,0x9
bne a0,v0,0x0001f860
_li a2,0x1771
b 0x0001fdd8
_lw v0,-0x7fc8(gp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2e94
lw v0,0xf8(s8)
andi v0,v0,0x2
bne v0,zero,0x0001fe5c
_lw gp,0x18(sp)
lw t9,-0x7d38(gp)
or a0,s8,zero
jalr t9
_or s8,zero,zero
b 0x0001f950
_lw gp,0x18(sp)
lw v0,0xf8(s8)
andi v0,v0,0x2
beq v0,zero,0x0001fc50
_lw t9,-0x7d38(gp)
lw a0,0x10c(s8)
beq a0,zero,0x0001fc50
_lw t9,-0x7d38(gp)
lw t9,-0x7ec0(gp)
jalr t9
_nop
b 0x0001fc4c
_lw gp,0x18(sp)
lw t9,-0x7d54(gp)
addiu s4,s8,0x94
or a1,zero,zero
jalr t9
_or a0,s4,zero
bne v0,zero,0x0001fee8
_lw gp,0x18(sp)
lw v0,0x88(s8)
beq v0,zero,0x000200c4
_lw t9,-0x7d54(gp)
lw v0,0xf8(s8)
andi a0,v0,0x2
bne a0,zero,0x0002019c
_nop
li a0,0x8
andi a1,v0,0x108
beq a1,a0,0x0001fcfc
_nop
b 0x0001f950
_sw zero,0x134(s8)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2e10
b 0x0001f860
_lw gp,0x18(sp)
lw s7,0x88(s8)
bne s7,zero,0x00020568
_andi v0,v0,0x4
bne v0,zero,0x0002055c
_addiu a0,s8,0x8c
lw a1,-0x7fd4(gp)
addiu a1,a1,-0x3004
lw a3,-0x7fac(gp)
lw t9,-0x7f98(gp)
lw a2,0x84(s8)
addiu a3,a3,-0x1770
bal 0x00023bd4
_sw s8,0x10(sp)
bne v0,zero,0x0001fcdc
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s3,v0,zero
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2b18
lw gp,0x18(sp)
lw t9,-0x7d1c(gp)
jalr t9
_addiu a0,s8,0xac
li a2,0x1837
bne v0,zero,0x00020258
_lw gp,0x18(sp)
lw t9,-0x7d1c(gp)
jalr t9
_or a0,s4,zero
li a2,0x1838
bne v0,zero,0x00020258
_lw gp,0x18(sp)
li v0,-0x1
beq s1,v0,0x0001f860
_lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0001f860
_lw gp,0x18(sp)
lw a0,0x0(s3)
li v0,0x9
bne a0,v0,0x0001f860
_li a2,0x183a
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
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2c78
b 0x0001f860
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2e6c
lw v0,0xf8(s8)
andi v0,v0,0x2
beq v0,zero,0x0001fc4c
_lw gp,0x18(sp)
lw t9,-0x7ec0(gp)
jalr t9
_lw a0,0x10c(s8)
b 0x0001fc4c
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2da0
b 0x0001fb3c
_lw gp,0x18(sp)
lw t9,-0x7db8(gp)
or a3,zero,zero
lw a2,0xd4(s8)
jalr t9
_li a1,0x2
bne v0,zero,0x00020ae8
_lw gp,0x18(sp)
lw a0,0xcc(s8)
b 0x0001f86c
_sb zero,0xd8(s8)
jalr t9
_lw a0,0x10c(s8)
b 0x0001f8d8
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2c28
li v0,-0x1
beq s1,v0,0x0001f860
_lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0001f860
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li a0,0x9
lw v0,0x0(v0)
li a2,0x17fc
bne v0,a0,0x0001f860
_lw gp,0x18(sp)
b 0x0001fdd8
_lw v0,-0x7fc8(gp)
addiu a3,sp,0x84
li a2,0x80
or a1,zero,zero
jalr t9
_or a0,a3,zero
addiu a2,sp,0x44
lw gp,0x18(sp)
or a1,v0,zero
li v0,0x80
or a0,s1,zero
lw t9,-0x7e94(gp)
jalr t9
_sw v0,0x44(sp)
bne v0,zero,0x00020324
_lw gp,0x18(sp)
lw v0,0x44(sp)
sltiu v0,v0,0x81
beq v0,zero,0x00020540
_lhu v0,0x84(sp)
li a0,0x2
beq v0,a0,0x00020534
_li a0,0xa
beq v0,a0,0x00020534
_li a0,0x1
beq v0,a0,0x0001ffc0
_lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2ccc
lw gp,0x18(sp)
b 0x0001f7fc
_sh zero,0xfc(s8)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s3,v0,zero
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2cb0
lw v0,0xf8(s8)
andi a0,v0,0x200
bne a0,zero,0x0002027c
_lw gp,0x18(sp)
lw a0,0x88(s8)
bne a0,zero,0x00020280
_lw t9,-0x7ed8(gp)
slti a0,s1,0x400
bne a0,zero,0x00020034
_andi v0,v0,0x240
beq v0,zero,0x0002006c
_lw a1,-0x7fd4(gp)
lw t9,-0x7d54(gp)
addiu s4,s8,0x94
or a1,zero,zero
jalr t9
_or a0,s4,zero
beq v0,zero,0x0001fcb0
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2c28
b 0x0001ff08
_lw gp,0x18(sp)
li a3,0x400
lw t9,-0x7fc4(gp)
or a0,s8,zero
or a2,s1,zero
bal 0x00020df0
_addiu a1,a1,-0x3938
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0001f860
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li a0,0x9
lw v0,0x0(v0)
li a2,0x17dc
bne v0,a0,0x0001f860
_lw gp,0x18(sp)
b 0x0001fdd8
_lw v0,-0x7fc8(gp)
addiu s3,s8,0xac
or a1,zero,zero
jalr t9
_or a0,s3,zero
beq v0,zero,0x0001fcbc
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2c28
lw gp,0x18(sp)
lw t9,-0x7d1c(gp)
jalr t9
_or a0,s3,zero
li a2,0x1809
bne v0,zero,0x00020258
_lw gp,0x18(sp)
li v0,-0x1
beq s1,v0,0x0001f860
_lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0001f860
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li a0,0x9
lw v0,0x0(v0)
li a2,0x180c
bne v0,a0,0x0001f860
_lw gp,0x18(sp)
b 0x0001fdd8
_lw v0,-0x7fc8(gp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2e3c
lw v0,0xf8(s8)
andi v0,v0,0x2
bne v0,zero,0x000203f0
_lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_lw a0,0x148(s8)
or a0,s8,zero
lw gp,0x18(sp)
lw t9,-0x7d38(gp)
jalr t9
_or s8,zero,zero
b 0x0001f950
_lw gp,0x18(sp)
lw a2,0x110(s8)
li v0,0x1
beq a2,v0,0x0002041c
_li v0,0x4
beq a2,v0,0x00020404
_lw t9,-0x7e8c(gp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2b6c
lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2b3c
li v0,-0x1
beq s1,v0,0x00020220
_lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x00020220
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li a0,0x9
lw v0,0x0(v0)
li a2,0x181c
beq v0,a0,0x0001fdd4
_lw gp,0x18(sp)
lw v0,0x88(s8)
bne v0,zero,0x00020244
_lw t9,-0x7d1c(gp)
jalr t9
_addiu a0,s8,0xac
li a2,0x181f
bne v0,zero,0x00020258
_lw gp,0x18(sp)
lw t9,-0x7d1c(gp)
jalr t9
_or a0,s4,zero
li a2,0x1820
beq v0,zero,0x0001f860
_lw gp,0x18(sp)
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x302c
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0001f860
_lw gp,0x18(sp)
lw a0,0x0(s3)
li v0,0x9
bne a0,v0,0x0001f860
_li a2,0x17cd
b 0x0001fdd8
_lw v0,-0x7fc8(gp)
li v0,0x10
beq a1,zero,0x00020858
_sw v0,0x44(sp)
sw s1,0xc4(s8)
b 0x0001fb44
_li a2,0x10
li v0,0x4
addiu a3,sp,0x3c
li a2,0x4
sw v0,0x10(sp)
ori a1,zero,0xffff
jalr t9
_or a0,s1,zero
bgez v0,0x0001fae4
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2da0
b 0x0001fae4
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2d40
b 0x0001f7fc
_lw gp,0x18(sp)
addiu s4,sp,0x3c
li a2,0x4
sw v0,0x10(sp)
ori a1,zero,0xffff
or a3,s4,zero
jalr t9
_or a0,s1,zero
bltz v0,0x000209c0
_lw gp,0x18(sp)
lw t9,-0x7cf0(gp)
li v0,0x4
li a2,0x200
ori a1,zero,0xffff
sw v0,0x10(sp)
or a3,s4,zero
jalr t9
_or a0,s1,zero
bgez v0,0x0001fae4
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2da0
b 0x0001f860
_lw gp,0x18(sp)
lw t9,-0x7ec0(gp)
jalr t9
_lw a0,0x10c(s8)
b 0x00020174
_lw gp,0x18(sp)
jalr t9
_addiu a0,s8,0x11c
bne v0,zero,0x000201cc
_lw gp,0x18(sp)
b 0x0001fccc
_lw v0,0xf8(s8)
lw t9,-0x7ee0(gp)
jalr t9
_addiu a0,s8,0x114
bne v0,zero,0x000201cc
_lw gp,0x18(sp)
lw a1,0x120(s8)
beq a1,zero,0x00020448
_lw t9,-0x7d14(gp)
jalr t9
_lw a0,0x114(s8)
lw gp,0x18(sp)
lw v0,0x138(s8)
beq v0,zero,0x00020484
_lw t9,-0x7e08(gp)
or a0,v0,zero
jalr t9
_sw v0,0x50(sp)
li a2,0x1
lw gp,0x18(sp)
addiu a1,sp,0x50
lw a0,0x114(s8)
lw t9,-0x7d94(gp)
jalr t9
_sw v0,0x54(sp)
bltz v0,0x00020b18
_lw gp,0x18(sp)
lbu v0,0x140(s8)
bne v0,zero,0x000209ac
_lw t9,-0x7e3c(gp)
lw s3,0x130(s8)
beq s3,zero,0x000208bc
_nop
lw v0,0x12c(s8)
beq v0,zero,0x000208bc
_lw t9,-0x7e08(gp)
or a0,v0,zero
jalr t9
_sw v0,0x48(sp)
or a0,s3,zero
lw gp,0x18(sp)
sw v0,0x4c(sp)
lw t9,-0x7e08(gp)
jalr t9
_sw s3,0x50(sp)
lw t0,0x134(s8)
lw gp,0x18(sp)
lw a0,0x114(s8)
beq t0,zero,0x00020a78
_sw v0,0x54(sp)
lw t9,-0x7d24(gp)
li a3,0x1
addiu a2,sp,0x48
sw zero,0x14(sp)
addiu a1,sp,0x50
jalr t9
_sw t0,0x10(sp)
lw gp,0x18(sp)
beq v0,zero,0x00020414
_lw t9,-0x7e7c(gp)
jalr t9
_or a0,v0,zero
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2bd4
b 0x000201cc
_lw gp,0x18(sp)
lhu v0,0x86(sp)
b 0x0001f7fc
_sh v0,0xfc(s8)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2d18
b 0x0001f7fc
_lw gp,0x18(sp)
lw a1,-0x7fd4(gp)
b 0x0001fd18
_addiu a1,a1,-0x3010
lw v0,0xec(s8)
li a0,0x174
lw t9,-0x7dd4(gp)
mul a0,s7,a0
teq s7,zero
divu v0,s7
mfhi v0
sw v0,0x28(sp)
mflo v0
jalr t9
_sw v0,0x24(sp)
lw gp,0x18(sp)
beq v0,zero,0x00020778
_sw v0,0x74(s8)
lw v1,-0x7fd4(gp)
or s3,zero,zero
lw a0,-0x7fac(gp)
addiu s5,s8,0x170
sw v1,0x30(sp)
addiu v1,a0,-0x4cc8
lw a0,-0x7fac(gp)
sw v1,0x34(sp)
addiu v1,a0,-0x1770
sw v1,0x2c(sp)
li a3,0x174
or a0,s8,zero
mul v1,s3,a3
addu s7,v1,v0
or v0,s7,zero
lw t1,0x0(a0)
addiu a0,a0,0x10
lw t0,-0xc(a0)
lw a2,-0x8(a0)
lw a1,-0x4(a0)
swl t1,0x0(v0)
swr t1,0x3(v0)
swl t0,0x4(v0)
swr t0,0x7(v0)
swl a2,0x8(v0)
swr a2,0xb(v0)
swl a1,0xc(v0)
swr a1,0xf(v0)
bne a0,s5,0x000205dc
_addiu v0,v0,0x10
lw a0,0x0(a0)
swl a0,0x0(v0)
swr a0,0x3(v0)
sw s8,0x70(s7)
sw zero,0x88(s7)
sw zero,0x74(s7)
lw v0,0xf8(s8)
andi v0,v0,0x400
bne v0,zero,0x000206ec
_li v0,-0x1
sw v0,0xdc(s7)
lw v0,0x28(sp)
sltu v0,s3,v0
bne v0,zero,0x000206e0
_lw v0,0x24(sp)
sw v0,0xec(s7)
lw v0,0xf8(s8)
andi v0,v0,0x200
beq v0,zero,0x00020684
_lw t9,-0x7d54(gp)
lw t9,0x34(sp)
jalr t9
_or a0,s7,zero
li a0,0x1
bne v0,a0,0x00020770
_lw gp,0x18(sp)
lw t9,-0x7d54(gp)
addiu s6,s7,0xac
or a1,zero,zero
jalr t9
_or a0,s6,zero
bne v0,zero,0x00020a5c
_lw gp,0x18(sp)
lw v0,0x30(sp)
addiu a0,s7,0x8c
lw t9,-0x7f98(gp)
lw a2,0x84(s8)
lw a3,0x2c(sp)
addiu a1,v0,-0x2a28
bal 0x00023bd4
_sw s7,0x10(sp)
beq v0,zero,0x00020a00
_lw gp,0x18(sp)
lw v0,0x88(s8)
addiu s3,s3,0x1
sltu v0,s3,v0
beq v0,zero,0x0001fcdc
_nop
b 0x000205c8
_lw v0,0x74(s8)
addiu v0,v0,0x1
b 0x00020658
_sw v0,0xec(s7)
lui a1,0x8
lw t9,-0x7eb0(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x80
li a0,-0x1
lw gp,0x18(sp)
beq v0,a0,0x00020a94
_sw v0,0xdc(s7)
lw a0,0xf8(s8)
andi a0,a0,0x240
bne a0,zero,0x00020644
_slti v0,v0,0x400
bne v0,zero,0x00020648
_lw v0,0x28(sp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2ab4
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_lw a0,0xdc(s7)
bne v0,zero,0x00020770
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li a0,0x9
lw v0,0x0(v0)
beq v0,a0,0x00020b10
_lw gp,0x18(sp)
bne s3,zero,0x0001f93c
_lw t9,-0x7e84(gp)
li v0,-0x1
beq s1,v0,0x000207b4
_lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x000207b4
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
li a0,0x9
lw v0,0x0(v0)
li a2,0x18b3
beq v0,a0,0x0001fdd4
_lw gp,0x18(sp)
lw t9,-0x7d1c(gp)
jalr t9
_or a0,s4,zero
li a2,0x18b4
bne v0,zero,0x00020258
_lw gp,0x18(sp)
lw a0,0x74(s8)
beq a0,zero,0x0001f860
_lw t9,-0x7d38(gp)
jalr t9
_nop
b 0x0001f860
_lw gp,0x18(sp)
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,s8,zero
lw gp,0x18(sp)
or a3,v0,zero
or a2,s3,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2d88
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
jalr t9
_or a0,s1,zero
beq v0,zero,0x0001f860
_lw gp,0x18(sp)
lw a0,0x0(s4)
li v0,0x9
bne a0,v0,0x0001f860
_li a2,0x1753
b 0x0001fdd8
_lw v0,-0x7fc8(gp)
li v0,0x2
sw zero,0x5c(sp)
sw zero,0x60(sp)
li a2,0x10
sh v0,0x58(sp)
addiu v0,sp,0x58
sw zero,0x64(sp)
sh s3,0x5a(sp)
or a1,v0,zero
sw v0,0x40(sp)
b 0x0001fb44
_sw s1,0xc4(s8)
li a0,0xa
sw zero,0x6c(sp)
sw zero,0x80(sp)
sh a0,0x68(sp)
addiu a0,sp,0x68
sh s3,0x6a(sp)
sw zero,0x70(sp)
sw zero,0x74(sp)
sw zero,0x78(sp)
sw zero,0x7c(sp)
sw a0,0x40(sp)
b 0x0001fb04
_sw s1,0xc4(s8)
lw v0,0x120(s8)
bne v0,zero,0x00020414
_lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2ba0
b 0x000201cc
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2dcc
b 0x0001f860
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2da0
b 0x0001fba4
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2f20
lw a0,0x10c(s8)
bne a0,zero,0x0001fc80
_lw gp,0x18(sp)
b 0x0001fc50
_lw t9,-0x7d38(gp)
lw a1,0x13c(s8)
jalr t9
_lw a0,0x114(s8)
b 0x00020490
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2da0
b 0x00020388
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2a1c
lw gp,0x18(sp)
lw t9,-0x7d1c(gp)
jalr t9
_or a0,s6,zero
li a2,0x189b
beq v0,zero,0x00020770
_lw gp,0x18(sp)
b 0x0002025c
_lw v0,-0x7fc8(gp)
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2a5c
b 0x00020770
_lw gp,0x18(sp)
lw t9,-0x7d10(gp)
li a3,0x1
addiu a2,sp,0x48
jalr t9
_addiu a1,sp,0x50
b 0x00020500
_lw gp,0x18(sp)
lw t9,-0x7e2c(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x7ddc(gp)
jalr t9
_lw a0,0x0(v0)
or a0,s8,zero
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2af4
b 0x00020770
_lw gp,0x18(sp)
lw t9,-0x7d78(gp)
jalr t9
_nop
b 0x00020258
_li a2,0x18dc
lw v0,-0x7fc8(gp)
li a2,0x18ce
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x4f40
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x40a0
b 0x0001f918
_li a2,0x1871
lw a1,-0x7fd4(gp)
or a0,s8,zero
lw t9,-0x7fc4(gp)
bal 0x00020df0
_addiu a1,a1,-0x2bf4
b 0x000201cc
_lw gp,0x18(sp)
(translation_unit "undefined4 *\nMHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined2 uVar14;\n  uint uVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 local_f4;\n  undefined2 *local_f0;\n  uint local_ec;\n  int local_e8;\n  undefined4 local_e4;\n  int *local_e0;\n  undefined4 local_dc;\n  undefined2 local_d8;\n  undefined2 local_d6;\n  undefined4 local_d4;\n  undefined4 local_d0;\n  undefined4 local_cc;\n  undefined2 local_c8;\n  undefined2 local_c6;\n  undefined4 local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  undefined4 local_b0;\n  short local_ac;\n  undefined2 local_aa;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  local_f4 = 1;\n  local_f0 = (undefined2 *)0x0;\n  if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }\n  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;\n  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;\n  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;\n  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;\n  if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }\n  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;\n  uVar15 = param_1 & 2;\n  puVar2[0x43] = 0;\n  puVar2[0x33] = 0xffffffff;\n  puVar2[0x35] = 0xffffffff;\n  if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  puVar2[0x32] = 0;\n  puVar2[0x3e] = param_1;\n  puVar2[0x3b] = 0x3fc;\n  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;\n  puVar2[0x1f] = 0x8000;\n  puVar2[0x31] = 0xffffffff;\n  puVar2[0x20] = 0x400;\n  puVar10 = PTR_LAB_0003f084;\n  uVar14 = SUB42(param_2,0);\n  *(undefined2 *)(puVar2 + 0x3f) = uVar14;\n  puVar2[0x10] = param_3;\n  puVar2[0x11] = param_4;\n  *puVar2 = param_5;\n  puVar2[0x18] = puVar10 + -0x6eb8;\n  puVar2[1] = param_6;\n  puVar2[0x5c] = 0x80;\n  puVar10 = PTR_vfprintf_0003f1c0;\n  puVar2[0x3a] = 0;\n  puVar2[0x3c] = 0;\n  puVar2[0x1a] = puVar10;\n  puVar10 = PTR_stderr_0003f304;\n  puVar2[0x37] = 0xffffffff;\n  puVar2[0x1b] = *(undefined4 *)puVar10;\n  if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }\n  puVar2[0x59] = 0;\n  puVar2[0x51] = 0;\n  puVar2[0x5a] = 4;\n  if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }\n  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);\n  if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  uVar15 = puVar2[0x3e];\n  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar15 = puVar2[0x5a];\n  if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }\n  param_5 = puVar2 + 0x53;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);\n  if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }\n  uVar15 = puVar2[0x3e];\n  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  param_1 = puVar2[0x31];\n  if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  puVar5 = puVar2 + 0x25;\n  if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  uVar15 = puVar2[0x3e];\n  if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }\n  if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  puVar2[0x4d] = 0;\n  puVar5 = puVar2;\nLAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  puVar2 = puVar5;\nLAB_00020ae0:\n  uVar11 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n  if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = puVar2[0x33];\n  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);\n  if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar11 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }\n  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);\n  puVar5 = (undefined4 *)0x0;\n  goto LAB_0001f950;\n}\n\n" (function_definition "undefined4 *\nMHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined2 uVar14;\n  uint uVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 local_f4;\n  undefined2 *local_f0;\n  uint local_ec;\n  int local_e8;\n  undefined4 local_e4;\n  int *local_e0;\n  undefined4 local_dc;\n  undefined2 local_d8;\n  undefined2 local_d6;\n  undefined4 local_d4;\n  undefined4 local_d0;\n  undefined4 local_cc;\n  undefined2 local_c8;\n  undefined2 local_c6;\n  undefined4 local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  undefined4 local_b0;\n  short local_ac;\n  undefined2 local_aa;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  local_f4 = 1;\n  local_f0 = (undefined2 *)0x0;\n  if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }\n  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;\n  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;\n  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;\n  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;\n  if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }\n  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;\n  uVar15 = param_1 & 2;\n  puVar2[0x43] = 0;\n  puVar2[0x33] = 0xffffffff;\n  puVar2[0x35] = 0xffffffff;\n  if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  puVar2[0x32] = 0;\n  puVar2[0x3e] = param_1;\n  puVar2[0x3b] = 0x3fc;\n  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;\n  puVar2[0x1f] = 0x8000;\n  puVar2[0x31] = 0xffffffff;\n  puVar2[0x20] = 0x400;\n  puVar10 = PTR_LAB_0003f084;\n  uVar14 = SUB42(param_2,0);\n  *(undefined2 *)(puVar2 + 0x3f) = uVar14;\n  puVar2[0x10] = param_3;\n  puVar2[0x11] = param_4;\n  *puVar2 = param_5;\n  puVar2[0x18] = puVar10 + -0x6eb8;\n  puVar2[1] = param_6;\n  puVar2[0x5c] = 0x80;\n  puVar10 = PTR_vfprintf_0003f1c0;\n  puVar2[0x3a] = 0;\n  puVar2[0x3c] = 0;\n  puVar2[0x1a] = puVar10;\n  puVar10 = PTR_stderr_0003f304;\n  puVar2[0x37] = 0xffffffff;\n  puVar2[0x1b] = *(undefined4 *)puVar10;\n  if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }\n  puVar2[0x59] = 0;\n  puVar2[0x51] = 0;\n  puVar2[0x5a] = 4;\n  if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }\n  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);\n  if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  uVar15 = puVar2[0x3e];\n  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar15 = puVar2[0x5a];\n  if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }\n  param_5 = puVar2 + 0x53;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);\n  if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }\n  uVar15 = puVar2[0x3e];\n  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  param_1 = puVar2[0x31];\n  if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  puVar5 = puVar2 + 0x25;\n  if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  uVar15 = puVar2[0x3e];\n  if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }\n  if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  puVar2[0x4d] = 0;\n  puVar5 = puVar2;\nLAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  puVar2 = puVar5;\nLAB_00020ae0:\n  uVar11 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n  if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = puVar2[0x33];\n  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);\n  if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar11 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }\n  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);\n  puVar5 = (undefined4 *)0x0;\n  goto LAB_0001f950;\n}" type_identifier (pointer_declarator "*\nMHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" * (function_declarator "MHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" identifier (parameter_list "(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined2 uVar14;\n  uint uVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 local_f4;\n  undefined2 *local_f0;\n  uint local_ec;\n  int local_e8;\n  undefined4 local_e4;\n  int *local_e0;\n  undefined4 local_dc;\n  undefined2 local_d8;\n  undefined2 local_d6;\n  undefined4 local_d4;\n  undefined4 local_d0;\n  undefined4 local_cc;\n  undefined2 local_c8;\n  undefined2 local_c6;\n  undefined4 local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  undefined4 local_b0;\n  short local_ac;\n  undefined2 local_aa;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  local_f4 = 1;\n  local_f0 = (undefined2 *)0x0;\n  if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }\n  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;\n  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;\n  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;\n  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;\n  if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }\n  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;\n  uVar15 = param_1 & 2;\n  puVar2[0x43] = 0;\n  puVar2[0x33] = 0xffffffff;\n  puVar2[0x35] = 0xffffffff;\n  if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  puVar2[0x32] = 0;\n  puVar2[0x3e] = param_1;\n  puVar2[0x3b] = 0x3fc;\n  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;\n  puVar2[0x1f] = 0x8000;\n  puVar2[0x31] = 0xffffffff;\n  puVar2[0x20] = 0x400;\n  puVar10 = PTR_LAB_0003f084;\n  uVar14 = SUB42(param_2,0);\n  *(undefined2 *)(puVar2 + 0x3f) = uVar14;\n  puVar2[0x10] = param_3;\n  puVar2[0x11] = param_4;\n  *puVar2 = param_5;\n  puVar2[0x18] = puVar10 + -0x6eb8;\n  puVar2[1] = param_6;\n  puVar2[0x5c] = 0x80;\n  puVar10 = PTR_vfprintf_0003f1c0;\n  puVar2[0x3a] = 0;\n  puVar2[0x3c] = 0;\n  puVar2[0x1a] = puVar10;\n  puVar10 = PTR_stderr_0003f304;\n  puVar2[0x37] = 0xffffffff;\n  puVar2[0x1b] = *(undefined4 *)puVar10;\n  if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }\n  puVar2[0x59] = 0;\n  puVar2[0x51] = 0;\n  puVar2[0x5a] = 4;\n  if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }\n  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);\n  if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  uVar15 = puVar2[0x3e];\n  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar15 = puVar2[0x5a];\n  if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }\n  param_5 = puVar2 + 0x53;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);\n  if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }\n  uVar15 = puVar2[0x3e];\n  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  param_1 = puVar2[0x31];\n  if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  puVar5 = puVar2 + 0x25;\n  if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  uVar15 = puVar2[0x3e];\n  if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }\n  if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  puVar2[0x4d] = 0;\n  puVar5 = puVar2;\nLAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  puVar2 = puVar5;\nLAB_00020ae0:\n  uVar11 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n  if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = puVar2[0x33];\n  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);\n  if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar11 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }\n  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);\n  puVar5 = (undefined4 *)0x0;\n  goto LAB_0001f950;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined2 uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 local_f4;" type_identifier identifier ;) (declaration "undefined2 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "undefined4 local_e4;" type_identifier identifier ;) (declaration "int *local_e0;" primitive_type (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined4 local_dc;" type_identifier identifier ;) (declaration "undefined2 local_d8;" type_identifier identifier ;) (declaration "undefined2 local_d6;" type_identifier identifier ;) (declaration "undefined4 local_d4;" type_identifier identifier ;) (declaration "undefined4 local_d0;" type_identifier identifier ;) (declaration "undefined4 local_cc;" type_identifier identifier ;) (declaration "undefined2 local_c8;" type_identifier identifier ;) (declaration "undefined2 local_c6;" type_identifier identifier ;) (declaration "undefined4 local_c4;" type_identifier identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined4 local_bc;" type_identifier identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined4 local_b4;" type_identifier identifier ;) (declaration "undefined4 local_b0;" type_identifier identifier ;) (declaration "short local_ac;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined2 local_aa;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0003f2ec" 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))) ;) (expression_statement "local_f4 = 1;" (assignment_expression "local_f4 = 1" identifier = number_literal) ;) (expression_statement "local_f0 = (undefined2 *)0x0;" (assignment_expression "local_f0 = (undefined2 *)0x0" identifier = (cast_expression "(undefined2 *)0x0" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }" if (parenthesized_expression "((param_1 & 0x8000) != 0)" ( (binary_expression "(param_1 & 0x8000) != 0" (parenthesized_expression "(param_1 & 0x8000)" ( (binary_expression "param_1 & 0x8000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    param_1 = param_1 | 0x2400;\n  }" { (expression_statement "param_1 = param_1 | 0x2400;" (assignment_expression "param_1 = param_1 | 0x2400" identifier = (binary_expression "param_1 | 0x2400" identifier | number_literal)) ;) })) (if_statement "if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;" if (parenthesized_expression "(param_5 == (undefined4 *)0x0)" ( (binary_expression "param_5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;" if (parenthesized_expression "((param_1 & 0x240) == 0x240)" ( (binary_expression "(param_1 & 0x240) == 0x240" (parenthesized_expression "(param_1 & 0x240)" ( (binary_expression "param_1 & 0x240" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;" if (parenthesized_expression "((param_1 & 0x204) == 0x204)" ( (binary_expression "(param_1 & 0x204) == 0x204" (parenthesized_expression "(param_1 & 0x204)" ( (binary_expression "param_1 & 0x204" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;" if (parenthesized_expression "((param_1 & 0x4c) == 0x40)" ( (binary_expression "(param_1 & 0x4c) == 0x40" (parenthesized_expression "(param_1 & 0x4c)" ( (binary_expression "param_1 & 0x4c" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }" if (parenthesized_expression "((int)(param_1 << 0xf) < 0)" ( (binary_expression "(int)(param_1 << 0xf) < 0" (cast_expression "(int)(param_1 << 0xf)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 << 0xf)" ( (binary_expression "param_1 << 0xf" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }" { (if_statement "if ((param_1 & 0x240) != 0) goto LAB_0001f94c;" if (parenthesized_expression "((param_1 & 0x240) != 0)" ( (binary_expression "(param_1 & 0x240) != 0" (parenthesized_expression "(param_1 & 0x240)" ( (binary_expression "param_1 & 0x240" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }" if (parenthesized_expression "((param_1 & 4) == 0)" ( (binary_expression "(param_1 & 4) == 0" (parenthesized_expression "(param_1 & 4)" ( (binary_expression "param_1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1 = param_1 | 0x200;\n    }" { (expression_statement "param_1 = param_1 | 0x200;" (assignment_expression "param_1 = param_1 | 0x200" identifier = (binary_expression "param_1 | 0x200" identifier | number_literal)) ;) }) (else_clause "else {\n      param_1 = param_1 | 0x40;\n    }" else (compound_statement "{\n      param_1 = param_1 | 0x40;\n    }" { (expression_statement "param_1 = param_1 | 0x40;" (assignment_expression "param_1 = param_1 | 0x40" identifier = (binary_expression "param_1 | 0x40" identifier | number_literal)) ;) }))) })) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_0003f144)(1,0x174)" (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,0x174)" ( number_literal , number_literal ))))) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (expression_statement "uVar15 = param_1 & 2;" (assignment_expression "uVar15 = param_1 & 2" identifier = (binary_expression "param_1 & 2" identifier & number_literal)) ;) (expression_statement "puVar2[0x43] = 0;" (assignment_expression "puVar2[0x43] = 0" (subscript_expression "puVar2[0x43]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x33] = 0xffffffff;" (assignment_expression "puVar2[0x33] = 0xffffffff" (subscript_expression "puVar2[0x33]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x35] = 0xffffffff;" (assignment_expression "puVar2[0x35] = 0xffffffff" (subscript_expression "puVar2[0x35]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }" { (expression_statement "(*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);" (call_expression "(*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0)" (parenthesized_expression "(*(code *)PTR_gnutls_priority_init_0003f2e0)" ( (pointer_expression "*(code *)PTR_gnutls_priority_init_0003f2e0" * (cast_expression "(code *)PTR_gnutls_priority_init_0003f2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0)" ( (binary_expression "puVar2 + 0x43" identifier + number_literal) , (binary_expression "PTR_DAT_0003f05c + -0x2ff8" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "puVar2[0x32] = 0;" (assignment_expression "puVar2[0x32] = 0" (subscript_expression "puVar2[0x32]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[0x3b] = 0x3fc;" (assignment_expression "puVar2[0x3b] = 0x3fc" (subscript_expression "puVar2[0x3b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;" (assignment_expression "puVar2[0x40] = (param_1 << 0x1a) >> 0x1f" (subscript_expression "puVar2[0x40]" identifier [ number_literal ]) = (binary_expression "(param_1 << 0x1a) >> 0x1f" (parenthesized_expression "(param_1 << 0x1a)" ( (binary_expression "param_1 << 0x1a" identifier << number_literal) )) >> number_literal)) ;) (expression_statement "puVar2[0x1f] = 0x8000;" (assignment_expression "puVar2[0x1f] = 0x8000" (subscript_expression "puVar2[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x31] = 0xffffffff;" (assignment_expression "puVar2[0x31] = 0xffffffff" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x20] = 0x400;" (assignment_expression "puVar2[0x20] = 0x400" (subscript_expression "puVar2[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10 = PTR_LAB_0003f084;" (assignment_expression "puVar10 = PTR_LAB_0003f084" identifier = identifier) ;) (expression_statement "uVar14 = SUB42(param_2,0);" (assignment_expression "uVar14 = SUB42(param_2,0)" identifier = (call_expression "SUB42(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = uVar14;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = uVar14" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" * (cast_expression "(undefined2 *)(puVar2 + 0x3f)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x3f)" ( (binary_expression "puVar2 + 0x3f" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[0x10] = param_3;" (assignment_expression "puVar2[0x10] = param_3" (subscript_expression "puVar2[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[0x11] = param_4;" (assignment_expression "puVar2[0x11] = param_4" (subscript_expression "puVar2[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar2 = param_5;" (assignment_expression "*puVar2 = param_5" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[0x18] = puVar10 + -0x6eb8;" (assignment_expression "puVar2[0x18] = puVar10 + -0x6eb8" (subscript_expression "puVar2[0x18]" identifier [ number_literal ]) = (binary_expression "puVar10 + -0x6eb8" identifier + number_literal)) ;) (expression_statement "puVar2[1] = param_6;" (assignment_expression "puVar2[1] = param_6" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[0x5c] = 0x80;" (assignment_expression "puVar2[0x5c] = 0x80" (subscript_expression "puVar2[0x5c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10 = PTR_vfprintf_0003f1c0;" (assignment_expression "puVar10 = PTR_vfprintf_0003f1c0" identifier = identifier) ;) (expression_statement "puVar2[0x3a] = 0;" (assignment_expression "puVar2[0x3a] = 0" (subscript_expression "puVar2[0x3a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x3c] = 0;" (assignment_expression "puVar2[0x3c] = 0" (subscript_expression "puVar2[0x3c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x1a] = puVar10;" (assignment_expression "puVar2[0x1a] = puVar10" (subscript_expression "puVar2[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = PTR_stderr_0003f304;" (assignment_expression "puVar10 = PTR_stderr_0003f304" identifier = identifier) ;) (expression_statement "puVar2[0x37] = 0xffffffff;" (assignment_expression "puVar2[0x37] = 0xffffffff" (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x1b] = *(undefined4 *)puVar10;" (assignment_expression "puVar2[0x1b] = *(undefined4 *)puVar10" (subscript_expression "puVar2[0x1b]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)puVar10" * (cast_expression "(undefined4 *)puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" if (parenthesized_expression "((param_1 & 0xc) == 4)" ( (binary_expression "(param_1 & 0xc) == 4" (parenthesized_expression "(param_1 & 0xc)" ( (binary_expression "param_1 & 0xc" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ff0)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ff0" identifier + number_literal) ))) ;) (expression_statement "param_1 = puVar2[0x3e] | 8;" (assignment_expression "param_1 = puVar2[0x3e] | 8" identifier = (binary_expression "puVar2[0x3e] | 8" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" statement_identifier : (if_statement "if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" if (parenthesized_expression "((param_1 & 0x100) == 0)" ( (binary_expression "(param_1 & 0x100) == 0" (parenthesized_expression "(param_1 & 0x100)" ( (binary_expression "param_1 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar15 = puVar2[0x3e] & 2;\n    }" { (expression_statement "uVar15 = puVar2[0x3e] & 2;" (assignment_expression "uVar15 = puVar2[0x3e] & 2" identifier = (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal)) ;) }) (else_clause "else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" else (compound_statement "{\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" { (expression_statement "puVar2[0x3e] = param_1 | 0x400;" (assignment_expression "puVar2[0x3e] = param_1 | 0x400" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = (binary_expression "param_1 | 0x400" identifier | number_literal)) ;) (expression_statement "uVar15 = param_1 & 2;" (assignment_expression "uVar15 = param_1 & 2" identifier = (binary_expression "param_1 & 2" identifier & number_literal)) ;) })))) }) (else_clause "else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" else (compound_statement "{\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" { (if_statement "if ((param_1 & 8) != 0) goto LAB_0001f9b4;" if (parenthesized_expression "((param_1 & 8) != 0)" ( (binary_expression "(param_1 & 8) != 0" (parenthesized_expression "(param_1 & 8)" ( (binary_expression "param_1 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001f9b4;" goto statement_identifier ;)) (expression_statement "param_1 = param_1 & 0xfffffbff;" (assignment_expression "param_1 = param_1 & 0xfffffbff" identifier = (binary_expression "param_1 & 0xfffffbff" identifier & number_literal)) ;) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar2[0x59] = 0;" (assignment_expression "puVar2[0x59] = 0" (subscript_expression "puVar2[0x59]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x51] = 0;" (assignment_expression "puVar2[0x51] = 0" (subscript_expression "puVar2[0x51]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x5a] = 4;" (assignment_expression "puVar2[0x5a] = 4" (subscript_expression "puVar2[0x5a]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar2[0x44] = 1;\n  }" { (expression_statement "puVar2[0x44] = 1;" (assignment_expression "puVar2[0x44] = 1" (subscript_expression "puVar2[0x44]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar3 = FUN_00019160(puVar2,&local_f0,param_7);" (assignment_expression "iVar3 = FUN_00019160(puVar2,&local_f0,param_7)" identifier = (call_expression "FUN_00019160(puVar2,&local_f0,param_7)" identifier (argument_list "(puVar2,&local_f0,param_7)" ( identifier , (pointer_expression "&local_f0" & identifier) , identifier )))) ;) (if_statement "if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }" { (if_statement "if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;" if (parenthesized_expression "((puVar2[0x3e] & 2) == 0)" ( (binary_expression "(puVar2[0x3e] & 2) == 0" (parenthesized_expression "(puVar2[0x3e] & 2)" ( (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;)) (labeled_statement "LAB_0001fc74:\n    iVar3 = puVar2[0x43];" statement_identifier : (expression_statement "iVar3 = puVar2[0x43];" (assignment_expression "iVar3 = puVar2[0x43]" identifier = (subscript_expression "puVar2[0x43]" identifier [ number_literal ])) ;)) (labeled_statement "joined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;" statement_identifier : (if_statement "if (iVar3 == 0) goto LAB_0001fc50;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;))) (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)();" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)()" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;) })) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (if_statement "if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" if (parenthesized_expression "((puVar2[0x12] == 0) || ((uVar15 & 4) == 0))" ( (binary_expression "(puVar2[0x12] == 0) || ((uVar15 & 4) == 0)" (parenthesized_expression "(puVar2[0x12] == 0)" ( (binary_expression "puVar2[0x12] == 0" (subscript_expression "puVar2[0x12]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((uVar15 & 4) == 0)" ( (binary_expression "(uVar15 & 4) == 0" (parenthesized_expression "(uVar15 & 4)" ( (binary_expression "uVar15 & 4" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }" { (if_statement "if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;" if (parenthesized_expression "((uVar15 & 0x400) != 0)" ( (binary_expression "(uVar15 & 0x400) != 0" (parenthesized_expression "(uVar15 & 0x400)" ( (binary_expression "uVar15 & 0x400" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001f9d4;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" else (compound_statement "{\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" { (expression_statement "puVar2[0x3e] = uVar15 | 0x400;" (assignment_expression "puVar2[0x3e] = uVar15 | 0x400" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = (binary_expression "uVar15 | 0x400" identifier | number_literal)) ;) (labeled_statement "LAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" statement_identifier : (if_statement "if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" if (parenthesized_expression "(puVar2[0x22] == 0)" ( (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);" (assignment_expression "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080)" identifier = (call_expression "(*(code *)PTR_eventfd_0003f180)(0,0x80080)" (parenthesized_expression "(*(code *)PTR_eventfd_0003f180)" ( (pointer_expression "*(code *)PTR_eventfd_0003f180" * (cast_expression "(code *)PTR_eventfd_0003f180" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x80080)" ( number_literal , number_literal )))) ;) (expression_statement "puVar2[0x37] = iVar3;" (assignment_expression "puVar2[0x37] = iVar3" (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2f20" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = puVar2[0x43];" (assignment_expression "iVar3 = puVar2[0x43]" identifier = (subscript_expression "puVar2[0x43]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0002099c;" goto statement_identifier ;) })) (if_statement "if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }" if (parenthesized_expression "(((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3))" ( (binary_expression "((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)" (parenthesized_expression "((puVar2[0x3e] & 0x240) == 0)" ( (binary_expression "(puVar2[0x3e] & 0x240) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" ( (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(0x3ff < iVar3)" ( (binary_expression "0x3ff < iVar3" number_literal < identifier) ))) )) (compound_statement "{\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ee4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ee4" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37])" identifier = (call_expression "(*(code *)PTR_close_0003f158)(puVar2[0x37])" (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 "(puVar2[0x37])" ( (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\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 "uVar11 = 0x1636;" (assignment_expression "uVar11 = 0x1636" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001f91c;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001f91c;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0001fc74;" goto statement_identifier ;) })) }))) }))) (expression_statement "uVar15 = puVar2[0x5a];" (assignment_expression "uVar15 = puVar2[0x5a]" identifier = (subscript_expression "puVar2[0x5a]" identifier [ number_literal ])) ;) (if_statement "if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }" { (if_statement "if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }" if (parenthesized_expression "(uVar15 != (uVar15 * 0x98) / 0x98)" ( (binary_expression "uVar15 != (uVar15 * 0x98) / 0x98" identifier != (binary_expression "(uVar15 * 0x98) / 0x98" (parenthesized_expression "(uVar15 * 0x98)" ( (binary_expression "uVar15 * 0x98" identifier * number_literal) )) / number_literal)) )) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e94)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e94" identifier + number_literal) ))) ;) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;" statement_identifier : (if_statement "if ((uVar15 & 2) == 0) goto LAB_0001fc50;" if (parenthesized_expression "((uVar15 & 2) == 0)" ( (binary_expression "(uVar15 & 2) == 0" (parenthesized_expression "(uVar15 & 2)" ( (binary_expression "uVar15 & 2" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;))) (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x43])" ( (subscript_expression "puVar2[0x43]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;) })) (expression_statement "iVar3 = (*(code *)PTR_malloc_0003f25c)();" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0003f25c)()" identifier = (call_expression "(*(code *)PTR_malloc_0003f25c)()" (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 "()" ( )))) ;) (expression_statement "puVar2[0x52] = iVar3;" (assignment_expression "puVar2[0x52] = iVar3" (subscript_expression "puVar2[0x52]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e6c" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001fc44;" goto statement_identifier ;) })) })) (expression_statement "param_5 = puVar2 + 0x53;" (assignment_expression "param_5 = puVar2 + 0x53" identifier = (binary_expression "puVar2 + 0x53" identifier + number_literal)) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e3c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e3c" identifier + number_literal) ))) ;) (if_statement "if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }" if (parenthesized_expression "((puVar2[0x3e] & 2) != 0)" ( (binary_expression "(puVar2[0x3e] & 2) != 0" (parenthesized_expression "(puVar2[0x3e] & 2)" ( (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }" { (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x43])" ( (subscript_expression "puVar2[0x43]" identifier [ number_literal ]) ))) ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2[0x52]);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2[0x52])" (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 "(puVar2[0x52])" ( (subscript_expression "puVar2[0x52]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2)" (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 "(puVar2)" ( identifier ))) ;) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (if_statement "if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }" if (parenthesized_expression "(((uVar15 & 8) == 0) && (puVar2[0x22] != 0))" ( (binary_expression "((uVar15 & 8) == 0) && (puVar2[0x22] != 0)" (parenthesized_expression "((uVar15 & 8) == 0)" ( (binary_expression "(uVar15 & 8) == 0" (parenthesized_expression "(uVar15 & 8)" ( (binary_expression "uVar15 & 8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(puVar2[0x22] != 0)" ( (binary_expression "puVar2[0x22] != 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e10)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e10" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "param_1 = puVar2[0x31];" (assignment_expression "param_1 = puVar2[0x31]" identifier = (subscript_expression "puVar2[0x31]" identifier [ number_literal ])) ;) (if_statement "if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }" { (if_statement "if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }" if (parenthesized_expression "((uVar15 & 0x100) == 0)" ( (binary_expression "(uVar15 & 0x100) == 0" (parenthesized_expression "(uVar15 & 0x100)" ( (binary_expression "uVar15 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }" { (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" identifier = number_literal) ;) (if_statement "if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }" if (parenthesized_expression "((uVar15 & 0x10) == 0)" ( (binary_expression "(uVar15 & 0x10) == 0" (parenthesized_expression "(uVar15 & 0x10)" ( (binary_expression "uVar15 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar11 = 2;\n      }" { (expression_statement "uVar11 = 2;" (assignment_expression "uVar11 = 2" identifier = number_literal) ;) })) (expression_statement "param_1 = FUN_0002234c(uVar11);" (assignment_expression "param_1 = FUN_0002234c(uVar11)" identifier = (call_expression "FUN_0002234c(uVar11)" identifier (argument_list "(uVar11)" ( identifier )))) ;) (if_statement "if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2dcc" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (if_statement "if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" if (parenthesized_expression "(puVar2[0x32] == 0)" ( (binary_expression "puVar2[0x32] == 0" (subscript_expression "puVar2[0x32]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" { (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0xffff,4,&local_f4,4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_f4" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) }) (else_clause "else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" else (if_statement "if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" if (parenthesized_expression "(0 < (int)puVar2[0x32])" ( (binary_expression "0 < (int)puVar2[0x32]" number_literal < (cast_expression "(int)puVar2[0x32]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar2[0x32]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" { (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0xffff,4,&local_f4,4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_f4" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0xffff,0x200,&local_f4,4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_f4" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) })))) (if_statement "if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" if (parenthesized_expression "((puVar2[0x3e] & 0x10) == 0)" ( (binary_expression "(puVar2[0x3e] & 0x10) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x10)" ( (binary_expression "puVar2[0x3e] & 0x10" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }" { (expression_statement "local_ec = 0x10;" (assignment_expression "local_ec = 0x10" identifier = number_literal) ;) (if_statement "if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }" if (parenthesized_expression "(local_f0 == (undefined2 *)0x0)" ( (binary_expression "local_f0 == (undefined2 *)0x0" identifier == (cast_expression "(undefined2 *)0x0" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }" { (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 2;" (assignment_expression "local_d8 = 2" identifier = number_literal) ;) (expression_statement "local_f0 = &local_d8;" (assignment_expression "local_f0 = &local_d8" identifier = (pointer_expression "&local_d8" & identifier)) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_d6 = uVar14;" (assignment_expression "local_d6 = uVar14" identifier = identifier) ;) }) (else_clause "else {\n          puVar2[0x31] = param_1;\n        }" else (compound_statement "{\n          puVar2[0x31] = param_1;\n        }" { (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" else (compound_statement "{\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" { (expression_statement "local_ec = 0x1c;" (assignment_expression "local_ec = 0x1c" identifier = number_literal) ;) (if_statement "if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }" if (parenthesized_expression "(local_f0 == (undefined2 *)0x0)" ( (binary_expression "local_f0 == (undefined2 *)0x0" identifier == (cast_expression "(undefined2 *)0x0" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }" { (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 10;" (assignment_expression "local_c8 = 10" identifier = number_literal) ;) (expression_statement "local_f0 = &local_c8;" (assignment_expression "local_f0 = &local_c8" identifier = (pointer_expression "&local_c8" & identifier)) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_c6 = uVar14;" (assignment_expression "local_c6 = uVar14" identifier = identifier) ;) }) (else_clause "else {\n          puVar2[0x31] = param_1;\n        }" else (compound_statement "{\n          puVar2[0x31] = param_1;\n        }" { (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);" (assignment_expression "local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810)" identifier = (cast_expression "(int *)(uint)((puVar2[0x3e] & 0x810) != 0x810)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((puVar2[0x3e] & 0x810) != 0x810)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((puVar2[0x3e] & 0x810) != 0x810)" ( (binary_expression "(puVar2[0x3e] & 0x810) != 0x810" (parenthesized_expression "(puVar2[0x3e] & 0x810)" ( (binary_expression "puVar2[0x3e] & 0x810" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x29,0x1a,&local_e0,4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_e0" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) }))) (expression_statement "iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);" (assignment_expression "iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec)" identifier = (call_expression "(*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec)" (parenthesized_expression "(*(code *)PTR_bind_0003f21c)" ( (pointer_expression "*(code *)PTR_bind_0003f21c" * (cast_expression "(code *)PTR_bind_0003f21c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,local_f0,local_ec)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar10 = PTR_setsockopt_0003f340;" (assignment_expression "puVar10 = PTR_setsockopt_0003f340" identifier = identifier) ;) (if_statement "if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*piVar4)" (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 "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d88" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar11 = 0x1753;" (assignment_expression "uVar11 = 0x1753" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (if_statement "if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" if (parenthesized_expression "((puVar2[0x3e] & 0x4000) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x4000) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x4000)" ( (binary_expression "puVar2[0x3e] & 0x4000" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" { (if_statement "if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }" if (parenthesized_expression "(puVar2[0x5b] == 0)" ( (binary_expression "puVar2[0x5b] == 0" (subscript_expression "puVar2[0x5b]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar2[0x5b] = 10;\n        }" { (expression_statement "puVar2[0x5b] = 10;" (assignment_expression "puVar2[0x5b] = 10" (subscript_expression "puVar2[0x5b]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);" (assignment_expression "iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4)" identifier = (call_expression "(*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,6,0x17,puVar2 + 0x5b,4)" ( identifier , number_literal , number_literal , (binary_expression "puVar2 + 0x5b" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) })) (expression_statement "iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);" (assignment_expression "iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c])" identifier = (call_expression "(*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c])" (parenthesized_expression "(*(code *)PTR_listen_0003f1b8)" ( (pointer_expression "*(code *)PTR_listen_0003f1b8" * (cast_expression "(code *)PTR_listen_0003f1b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar2[0x5c])" ( identifier , (subscript_expression "puVar2[0x5c]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }" { (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d68" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar11 = 0x1771;" (assignment_expression "uVar11 = 0x1771" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001f7e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" statement_identifier : (if_statement "if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" if (parenthesized_expression "(((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0))" ( (binary_expression "((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)" (parenthesized_expression "((uVar15 & 0x200) != 0)" ( (binary_expression "(uVar15 & 0x200) != 0" (parenthesized_expression "(uVar15 & 0x200)" ( (binary_expression "uVar15 & 0x200" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(puVar2[0x22] == 0)" ( (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" { (if_statement "if ((uVar15 & 4) != 0) goto LAB_0001fdf8;" if (parenthesized_expression "((uVar15 & 4) != 0)" ( (binary_expression "(uVar15 & 4) != 0" (parenthesized_expression "(uVar15 & 4)" ( (binary_expression "uVar15 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001fdf8;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_0001b338(puVar2);" (assignment_expression "iVar3 = FUN_0001b338(puVar2)" identifier = (call_expression "FUN_0001b338(puVar2)" identifier (argument_list "(puVar2)" ( identifier )))) ;) (if_statement "if (iVar3 != 1) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x25,0)" ( (binary_expression "puVar2 + 0x25" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (labeled_statement "LAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" 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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar11 = 0x17fc;" (assignment_expression "uVar11 = 0x17fc" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" else (compound_statement "{\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" { (labeled_statement "LAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" statement_identifier : (if_statement "if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" if (parenthesized_expression "((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0))" ( (binary_expression "(*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)" (parenthesized_expression "(*(short *)(puVar2 + 0x3f) == 0)" ( (binary_expression "*(short *)(puVar2 + 0x3f) == 0" (pointer_expression "*(short *)(puVar2 + 0x3f)" * (cast_expression "(short *)(puVar2 + 0x3f)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x3f)" ( (binary_expression "puVar2 + 0x3f" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((puVar2[0x3e] & 0x100) == 0)" ( (binary_expression "(puVar2[0x3e] & 0x100) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x100)" ( (binary_expression "puVar2[0x3e] & 0x100" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" { (expression_statement "uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);" (assignment_expression "uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80)" identifier = (call_expression "(*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80)" (parenthesized_expression "(*(code *)PTR_memset_0003f20c)" ( (pointer_expression "*(code *)PTR_memset_0003f20c" * (cast_expression "(code *)PTR_memset_0003f20c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_ac,0,0x80)" ( (pointer_expression "&local_ac" & identifier) , number_literal , number_literal )))) ;) (expression_statement "local_ec = 0x80;" (assignment_expression "local_ec = 0x80" identifier = number_literal) ;) (expression_statement "iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);" (assignment_expression "iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec)" identifier = (call_expression "(*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec)" (parenthesized_expression "(*(code *)PTR_getsockname_0003f19c)" ( (pointer_expression "*(code *)PTR_getsockname_0003f19c" * (cast_expression "(code *)PTR_getsockname_0003f19c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar11,&local_ec)" ( identifier , identifier , (pointer_expression "&local_ec" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }" { (if_statement "if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" if (parenthesized_expression "(local_ec < 0x81)" ( (binary_expression "local_ec < 0x81" identifier < number_literal) )) (compound_statement "{\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }" { (if_statement "if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" if (parenthesized_expression "((local_ac == 2) || (local_ac == 10))" ( (binary_expression "(local_ac == 2) || (local_ac == 10)" (parenthesized_expression "(local_ac == 2)" ( (binary_expression "local_ac == 2" identifier == number_literal) )) || (parenthesized_expression "(local_ac == 10)" ( (binary_expression "local_ac == 10" identifier == number_literal) ))) )) (compound_statement "{\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }" { (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = local_aa;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = local_aa" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" * (cast_expression "(undefined2 *)(puVar2 + 0x3f)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x3f)" ( (binary_expression "puVar2 + 0x3f" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" else (compound_statement "{\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" { (if_statement "if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }" if (parenthesized_expression "(local_ac != 1)" ( (binary_expression "local_ac != 1" identifier != number_literal) )) (compound_statement "{\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ccc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ccc" identifier + number_literal) ))) ;) })) (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = 0;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = 0" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" * (cast_expression "(undefined2 *)(puVar2 + 0x3f)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x3f)" ( (binary_expression "puVar2 + 0x3f" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" else (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d18)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d18" identifier + number_literal) ))) ;) }))) }) (else_clause "else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" else (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d40" identifier + number_literal) , identifier ))) ;) }))) }))) (expression_statement "iVar3 = FUN_00022234(param_1);" (assignment_expression "iVar3 = FUN_00022234(param_1)" identifier = (call_expression "FUN_00022234(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }" { (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (if_statement "if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;" if (parenthesized_expression "((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0))" ( (binary_expression "(0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_1)" ( (binary_expression "0x3ff < (int)param_1" number_literal < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((uVar15 & 0x240) == 0)" ( (binary_expression "(uVar15 & 0x240) == 0" (parenthesized_expression "(uVar15 & 0x240)" ( (binary_expression "uVar15 & 0x240" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0002006c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f82c;" goto statement_identifier ;) })) (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2cb0" identifier + number_literal) , identifier ))) ;) (if_statement "if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;" if (parenthesized_expression "((puVar2[0x3e] & 0x200) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x200) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x200)" ( (binary_expression "puVar2[0x3e] & 0x200" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00020280;" goto statement_identifier ;)) (if_statement "if (puVar2[0x22] != 0) goto LAB_00020280;" if (parenthesized_expression "(puVar2[0x22] != 0)" ( (binary_expression "puVar2[0x22] != 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00020280;" goto statement_identifier ;)) (if_statement "if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0))" ( (binary_expression "(0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_1)" ( (binary_expression "0x3ff < (int)param_1" number_literal < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((puVar2[0x3e] & 0x240) == 0)" ( (binary_expression "(puVar2[0x3e] & 0x240) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" ( (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }" { (labeled_statement "LAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);" statement_identifier : (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x3938" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" 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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar11 = 0x17dc;" (assignment_expression "uVar11 = 0x17dc" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x25,0)" ( (binary_expression "puVar2 + 0x25" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001ff08;" goto statement_identifier ;) })) }))) (expression_statement "puVar5 = puVar2 + 0x25;" (assignment_expression "puVar5 = puVar2 + 0x25" identifier = (binary_expression "puVar2 + 0x25" identifier + number_literal)) ;) (if_statement "if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }" if (parenthesized_expression "(puVar2[0x22] == 0)" ( (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }" { (expression_statement "param_2 = puVar2 + 0x2b;" (assignment_expression "param_2 = puVar2 + 0x2b" identifier = (binary_expression "puVar2 + 0x2b" identifier + number_literal)) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar11 = 0x1809;" (assignment_expression "uVar11 = 0x1809" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" 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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar11 = 0x180c;" (assignment_expression "uVar11 = 0x180c" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) })) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (if_statement "if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }" if (parenthesized_expression "((uVar15 & 2) != 0)" ( (binary_expression "(uVar15 & 2) != 0" (parenthesized_expression "(uVar15 & 2)" ( (binary_expression "uVar15 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }" { (if_statement "if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" if (parenthesized_expression "(puVar2[0x44] == 1)" ( (binary_expression "puVar2[0x44] == 1" (subscript_expression "puVar2[0x44]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150" * (cast_expression "(code *)PTR_gnutls_certificate_allocate_credentials_0003f150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x45)" ( (binary_expression "puVar2 + 0x45" identifier + number_literal) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000201cc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;)) (if_statement "if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }" if (parenthesized_expression "(puVar2[0x48] != 0)" ( (binary_expression "puVar2[0x48] != 0" (subscript_expression "puVar2[0x48]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);" (call_expression "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45])" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c" * (cast_expression "(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45])" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) ))) ;) })) (expression_statement "piVar4 = (int *)puVar2[0x4e];" (assignment_expression "piVar4 = (int *)puVar2[0x4e]" identifier = (cast_expression "(int *)puVar2[0x4e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[0x4e]" identifier [ number_literal ]))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }" { (expression_statement "local_e0 = piVar4;" (assignment_expression "local_e0 = piVar4" identifier = identifier) ;) (expression_statement "local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);" (assignment_expression "local_dc = (*(code *)PTR_strlen_0003f228)(piVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(piVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4)" ( identifier )))) ;) (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45],&local_e0,1)" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) , (pointer_expression "&local_e0" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2bf4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2bf4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) })) (if_statement "if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }" if (parenthesized_expression "(*(char *)(puVar2 + 0x50) != '\0')" ( (binary_expression "*(char *)(puVar2 + 0x50) != '\0'" (pointer_expression "*(char *)(puVar2 + 0x50)" * (cast_expression "(char *)(puVar2 + 0x50)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x50)" ( (binary_expression "puVar2 + 0x50" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);" (call_expression "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f])" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4" * (cast_expression "(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45],puVar2[0x4f])" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) , (subscript_expression "puVar2[0x4f]" identifier [ number_literal ]) ))) ;) })) (expression_statement "param_2 = (int *)puVar2[0x4c];" (assignment_expression "param_2 = (int *)puVar2[0x4c]" identifier = (cast_expression "(int *)puVar2[0x4c]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[0x4c]" identifier [ number_literal ]))) ;) (if_statement "if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" if (parenthesized_expression "((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0))" ( (binary_expression "(param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)" (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 = puVar2[0x4b], iVar3 == 0)" ( (comma_expression "iVar3 = puVar2[0x4b], iVar3 == 0" (assignment_expression "iVar3 = puVar2[0x4b]" identifier = (subscript_expression "puVar2[0x4b]" identifier [ number_literal ])) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }" { (if_statement "if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(puVar2[0x48] == 0)" ( (binary_expression "puVar2[0x48] == 0" (subscript_expression "puVar2[0x48]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ba0)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ba0" identifier + number_literal) ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" else (compound_statement "{\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" { (expression_statement "local_e8 = iVar3;" (assignment_expression "local_e8 = iVar3" identifier = identifier) ;) (expression_statement "local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);" (assignment_expression "local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" identifier = identifier) ;) (expression_statement "local_dc = (*(code *)PTR_strlen_0003f228)(param_2);" (assignment_expression "local_dc = (*(code *)PTR_strlen_0003f228)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" if (parenthesized_expression "(puVar2[0x4d] == 0)" ( (binary_expression "puVar2[0x4d] == 0" (subscript_expression "puVar2[0x4d]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45],&local_e0,&local_e8,1)" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) , (pointer_expression "&local_e0" & identifier) , (pointer_expression "&local_e8" & identifier) , number_literal )))) ;) }) (else_clause "else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" else (compound_statement "{\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) , (pointer_expression "&local_e0" & identifier) , (pointer_expression "&local_e8" & identifier) , number_literal , (subscript_expression "puVar2[0x4d]" identifier [ number_literal ]) , number_literal )))) ;) }))) (if_statement "if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }" { (expression_statement "uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);" (assignment_expression "uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3)" identifier = (call_expression "(*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3)" (parenthesized_expression "(*(code *)PTR_gnutls_strerror_0003f1b4)" ( (pointer_expression "*(code *)PTR_gnutls_strerror_0003f1b4" * (cast_expression "(code *)PTR_gnutls_strerror_0003f1b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2bd4" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" else (compound_statement "{\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" { (if_statement "if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }" if (parenthesized_expression "(puVar2[0x44] != 4)" ( (binary_expression "puVar2[0x44] != 4" (subscript_expression "puVar2[0x44]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b6c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b6c" identifier + number_literal) ))) ;) (labeled_statement "LAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);" statement_identifier : (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b3c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b3c" identifier + number_literal) ))) ;)) (if_statement "if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" if (parenthesized_expression "((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))" ( (binary_expression "(param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" (parenthesized_expression "(param_1 != 0xffffffff)" ( (binary_expression "param_1 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\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 "uVar11 = 0x181c;" (assignment_expression "uVar11 = 0x181c" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001fdd8;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001fdd8;" goto statement_identifier ;)) })) (if_statement "if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }" if (parenthesized_expression "(puVar2[0x22] == 0)" ( (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }" { (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x2b)" ( (binary_expression "puVar2 + 0x2b" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x181f;" (assignment_expression "uVar11 = 0x181f" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) })) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "uVar11 = 0x1820;" (assignment_expression "uVar11 = 0x1820" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47)" identifier = (call_expression "(*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47)" (parenthesized_expression "(*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)" ( (pointer_expression "*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4" * (cast_expression "(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x47)" ( (binary_expression "puVar2 + 0x47" identifier + number_literal) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000201cc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;)) }))) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) })) (if_statement "if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }" if (parenthesized_expression "((uVar15 & 0x108) == 8)" ( (binary_expression "(uVar15 & 0x108) == 8" (parenthesized_expression "(uVar15 & 0x108)" ( (binary_expression "uVar15 & 0x108" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }" { (expression_statement "uVar16 = puVar2[0x22];" (assignment_expression "uVar16 = puVar2[0x22]" identifier = (subscript_expression "puVar2[0x22]" identifier [ number_literal ])) ;) (if_statement "if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }" { (expression_statement "uVar15 = puVar2[0x3b];" (assignment_expression "uVar15 = puVar2[0x3b]" identifier = (subscript_expression "puVar2[0x3b]" identifier [ number_literal ])) ;) (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 "uVar19 = uVar15 / uVar16;" (assignment_expression "uVar19 = uVar15 / uVar16" identifier = (binary_expression "uVar15 / uVar16" identifier / identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" identifier = (call_expression "(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" (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 "(uVar16 * 0x174)" ( (binary_expression "uVar16 * 0x174" identifier * number_literal) )))) ;) (expression_statement "puVar2[0x1d] = iVar3;" (assignment_expression "puVar2[0x1d] = iVar3" (subscript_expression "puVar2[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = PTR_DAT_0003f05c;" (assignment_expression "puVar10 = PTR_DAT_0003f05c" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }" { (labeled_statement "LAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" statement_identifier : (if_statement "if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" if (parenthesized_expression "((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))" ( (binary_expression "(param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" (parenthesized_expression "(param_1 != 0xffffffff)" ( (binary_expression "param_1 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\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 "uVar11 = 0x18b3;" (assignment_expression "uVar11 = 0x18b3" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001fdd8;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001fdd8;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "uVar11 = 0x18b4;" (assignment_expression "uVar11 = 0x18b4" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (puVar2[0x1d] == 0) goto LAB_0001f860;" if (parenthesized_expression "(puVar2[0x1d] == 0)" ( (binary_expression "puVar2[0x1d] == 0" (subscript_expression "puVar2[0x1d]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_0003f2f8)();" (call_expression "(*(code *)PTR_free_0003f2f8)()" (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 "()" ( ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "param_2 = (int *)0x0;" (assignment_expression "param_2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8)" identifier = (cast_expression "(code *)(PTR_LAB_0003f084 + -0x4cc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003f084 + -0x4cc8)" ( (binary_expression "PTR_LAB_0003f084 + -0x4cc8" identifier + number_literal) )))) ;) (expression_statement "puVar7 = PTR_LAB_0003f084 + -6000;" (assignment_expression "puVar7 = PTR_LAB_0003f084 + -6000" identifier = (binary_expression "PTR_LAB_0003f084 + -6000" identifier + number_literal)) ;) (do_statement "do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );" do (compound_statement "{\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      }" { (expression_statement "puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);" (assignment_expression "puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3)" identifier = (cast_expression "(undefined4 *)((int)param_2 * 0x174 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 * 0x174 + iVar3)" ( (binary_expression "(int)param_2 * 0x174 + iVar3" (binary_expression "(int)param_2 * 0x174" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + identifier) )))) ;) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" identifier = identifier) ;) (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" identifier = identifier) ;) (do_statement "do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);" do (compound_statement "{\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        }" { (expression_statement "puVar9 = puVar8 + 4;" (assignment_expression "puVar9 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "uVar13 = puVar8[1];" (assignment_expression "uVar13 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = puVar8[2];" (assignment_expression "uVar12 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar8[3];" (assignment_expression "uVar11 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar6 = *puVar8;" (assignment_expression "*puVar6 = *puVar8" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar6[1] = uVar13;" (assignment_expression "puVar6[1] = uVar13" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = uVar12;" (assignment_expression "puVar6[2] = uVar12" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uVar11;" (assignment_expression "puVar6[3] = uVar11" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar6 + 4;" (assignment_expression "puVar6 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar9;" (assignment_expression "puVar8 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(puVar9 != puVar2 + 0x5c)" ( (binary_expression "puVar9 != puVar2 + 0x5c" identifier != (binary_expression "puVar2 + 0x5c" identifier + number_literal)) )) ;) (expression_statement "*puVar6 = *puVar9;" (assignment_expression "*puVar6 = *puVar9" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar17[0x1c] = puVar2;" (assignment_expression "puVar17[0x1c] = puVar2" (subscript_expression "puVar17[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0x22] = 0;" (assignment_expression "puVar17[0x22] = 0" (subscript_expression "puVar17[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17[0x1d] = 0;" (assignment_expression "puVar17[0x1d] = 0" (subscript_expression "puVar17[0x1d]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }" if (parenthesized_expression "((puVar2[0x3e] & 0x400) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x400) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x400)" ( (binary_expression "puVar2[0x3e] & 0x400" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }" { (expression_statement "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);" (assignment_expression "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080)" identifier = (call_expression "(*(code *)PTR_eventfd_0003f180)(0,0x80080)" (parenthesized_expression "(*(code *)PTR_eventfd_0003f180)" ( (pointer_expression "*(code *)PTR_eventfd_0003f180" * (cast_expression "(code *)PTR_eventfd_0003f180" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x80080)" ( number_literal , number_literal )))) ;) (expression_statement "puVar17[0x37] = iVar3;" (assignment_expression "puVar17[0x37] = iVar3" (subscript_expression "puVar17[0x37]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar6 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar6)" (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 "(*puVar6)" ( (pointer_expression "*puVar6" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2af4" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" else (compound_statement "{\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" { (if_statement "if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;" if (parenthesized_expression "(((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400))" ( (binary_expression "((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)" (parenthesized_expression "((puVar2[0x3e] & 0x240) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x240) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" ( (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar3 < 0x400)" ( (binary_expression "iVar3 < 0x400" identifier < number_literal) ))) )) (goto_statement "goto LAB_00020648;" goto statement_identifier ;)) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ab4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ab4" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37])" identifier = (call_expression "(*(code *)PTR_close_0003f158)(puVar17[0x37])" (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 "(puVar17[0x37])" ( (subscript_expression "puVar17[0x37]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;" if (parenthesized_expression "((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))" ( (binary_expression "(iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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)) ))) )) (goto_statement "goto LAB_00020b10;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;" statement_identifier : (expression_statement "pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;" (assignment_expression "pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac" identifier = (cast_expression "(code *)PTR_MHD_stop_daemon_0003f1ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (param_2 != (int *)0x0) goto LAB_0001f93c;" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f93c;" goto statement_identifier ;)) (goto_statement "goto LAB_00020778;" goto statement_identifier ;) })) (expression_statement "puVar17[0x37] = 0xffffffff;" (assignment_expression "puVar17[0x37] = 0xffffffff" (subscript_expression "puVar17[0x37]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }" statement_identifier : (if_statement "if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }" if (parenthesized_expression "(param_2 < (int *)(uVar15 % uVar16))" ( (binary_expression "param_2 < (int *)(uVar15 % uVar16)" identifier < (cast_expression "(int *)(uVar15 % uVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 % uVar16)" ( (binary_expression "uVar15 % uVar16" identifier % identifier) )))) )) (compound_statement "{\n          puVar17[0x3b] = uVar19 + 1;\n        }" { (expression_statement "puVar17[0x3b] = uVar19 + 1;" (assignment_expression "puVar17[0x3b] = uVar19 + 1" (subscript_expression "puVar17[0x3b]" identifier [ number_literal ]) = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          puVar17[0x3b] = uVar19;\n        }" else (compound_statement "{\n          puVar17[0x3b] = uVar19;\n        }" { (expression_statement "puVar17[0x3b] = uVar19;" (assignment_expression "puVar17[0x3b] = uVar19" (subscript_expression "puVar17[0x3b]" identifier [ number_literal ]) = identifier) ;) })))) (if_statement "if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;" if (parenthesized_expression "(((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))" ( (binary_expression "((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1)" (parenthesized_expression "((puVar2[0x3e] & 0x200) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x200) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x200)" ( (binary_expression "puVar2[0x3e] & 0x200" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar3 = (*pcVar18)(puVar17), iVar3 != 1)" ( (comma_expression "iVar3 = (*pcVar18)(puVar17), iVar3 != 1" (assignment_expression "iVar3 = (*pcVar18)(puVar17)" identifier = (call_expression "(*pcVar18)(puVar17)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(puVar17)" ( identifier )))) , (binary_expression "iVar3 != 1" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00020770;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar17 + 0x2b,0)" ( (binary_expression "puVar17 + 0x2b" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2a5c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2a5c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00020770;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);" (assignment_expression "iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" identifier = (call_expression "FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" identifier (argument_list "(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" ( (binary_expression "puVar17 + 0x23" identifier + number_literal) , (binary_expression "puVar10 + -0x2a28" identifier + number_literal) , (subscript_expression "puVar2[0x21]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar6 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar6)" (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 "(*puVar6)" ( (pointer_expression "*puVar6" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2a1c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar17 + 0x2b)" ( (binary_expression "puVar17 + 0x2b" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x189b;" (assignment_expression "uVar11 = 0x189b" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (goto_statement "goto LAB_00020770;" goto statement_identifier ;) })) (expression_statement "param_2 = (int *)((int)param_2 + 1);" (assignment_expression "param_2 = (int *)((int)param_2 + 1)" identifier = (cast_expression "(int *)((int)param_2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 1)" ( (binary_expression "(int)param_2 + 1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;" if (parenthesized_expression "((int *)puVar2[0x22] <= param_2)" ( (binary_expression "(int *)puVar2[0x22] <= param_2" (cast_expression "(int *)puVar2[0x22]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[0x22]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0001fcdc;" goto statement_identifier ;)) (expression_statement "iVar3 = puVar2[0x1d];" (assignment_expression "iVar3 = puVar2[0x1d]" identifier = (subscript_expression "puVar2[0x1d]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" if (parenthesized_expression "((uVar15 & 4) == 0)" ( (binary_expression "(uVar15 & 4) == 0" (parenthesized_expression "(uVar15 & 4)" ( (binary_expression "uVar15 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }" { (expression_statement "puVar10 = PTR_DAT_0003f05c + -0x3004;" (assignment_expression "puVar10 = PTR_DAT_0003f05c + -0x3004" identifier = (binary_expression "PTR_DAT_0003f05c + -0x3004" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" else (compound_statement "{\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" { (expression_statement "puVar10 = PTR_DAT_0003f05c + -0x3010;" (assignment_expression "puVar10 = PTR_DAT_0003f05c + -0x3010" identifier = (binary_expression "PTR_DAT_0003f05c + -0x3010" identifier + number_literal)) ;) }))) (expression_statement "iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);" (assignment_expression "iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" identifier = (call_expression "FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" identifier (argument_list "(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" ( (binary_expression "puVar2 + 0x23" identifier + number_literal) , identifier , (subscript_expression "puVar2[0x21]" identifier [ number_literal ]) , (binary_expression "PTR_LAB_0003f084 + -6000" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }" { (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b18" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x2b)" ( (binary_expression "puVar2 + 0x2b" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x1837;" (assignment_expression "uVar11 = 0x1837" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "uVar11 = 0x1838;" (assignment_expression "uVar11 = 0x1838" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar11 = 0x183a;" (assignment_expression "uVar11 = 0x183a" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001fcdc:\n  puVar2[0x4d] = 0;" statement_identifier : (expression_statement "puVar2[0x4d] = 0;" (assignment_expression "puVar2[0x4d] = 0" (subscript_expression "puVar2[0x4d]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "puVar5 = puVar2;" (assignment_expression "puVar5 = puVar2" identifier = identifier) ;) (labeled_statement "LAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar5;\n  }" { (return_statement "return puVar5;" 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 "puVar2 = puVar5;" (assignment_expression "puVar2 = puVar5" identifier = identifier) ;) (labeled_statement "LAB_00020ae0:\n  uVar11 = 0x18dc;" statement_identifier : (expression_statement "uVar11 = 0x18dc;" (assignment_expression "uVar11 = 0x18dc" identifier = number_literal) ;)) (labeled_statement "LAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c)" (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,uVar11,\n             PTR_DAT_0003f05c + -0x302c)" ( (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 + -0x302c" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }" { (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar11 = 0x17cd;" (assignment_expression "uVar11 = 0x17cd" identifier = number_literal) ;) (labeled_statement "joined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" statement_identifier : (if_statement "if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" if (parenthesized_expression "(iVar3 == 9)" ( (binary_expression "iVar3 == 9" identifier == number_literal) )) (compound_statement "{\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" { (labeled_statement "LAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);" (call_expression "(**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\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,uVar11,\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) ))) ;)) (labeled_statement "LAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);" statement_identifier : (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c78)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c78" identifier + number_literal) ))) ;)) }))) })) (labeled_statement "LAB_0001f860:\n  iVar3 = puVar2[0x33];" statement_identifier : (expression_statement "iVar3 = puVar2[0x33];" (assignment_expression "iVar3 = puVar2[0x33]" identifier = (subscript_expression "puVar2[0x33]" identifier [ number_literal ])) ;)) (if_statement "if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;" if (parenthesized_expression "(*(char *)(puVar2 + 0x36) == '\0')" ( (binary_expression "*(char *)(puVar2 + 0x36) == '\0'" (pointer_expression "*(char *)(puVar2 + 0x36)" * (cast_expression "(char *)(puVar2 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x36)" ( (binary_expression "puVar2 + 0x36" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001f86c;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);" (assignment_expression "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0)" (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 "(iVar3,2,puVar2[0x35],0)" ( identifier , number_literal , (subscript_expression "puVar2[0x35]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }" { (expression_statement "iVar3 = puVar2[0x33];" (assignment_expression "iVar3 = puVar2[0x33]" identifier = (subscript_expression "puVar2[0x33]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar2 + 0x36) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 0x36) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 0x36)" * (cast_expression "(undefined1 *)(puVar2 + 0x36)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x36)" ( (binary_expression "puVar2 + 0x36" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0001f86c;" goto statement_identifier ;) })) (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40)" (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,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40)" ( (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 + -0x4f40" identifier + number_literal) ))) ;) (labeled_statement "LAB_00020b10:\n  uVar11 = 0x1871;" statement_identifier : (expression_statement "uVar11 = 0x1871;" (assignment_expression "uVar11 = 0x1871" identifier = number_literal) ;)) (goto_statement "goto LAB_0001f91c;" goto statement_identifier ;) (labeled_statement "LAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" statement_identifier : (if_statement "if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_close_0003f158)();\n  }" { (expression_statement "(*(code *)PTR_close_0003f158)();" (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( ))) ;) }))) (if_statement "if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" if (parenthesized_expression "(puVar2[0x35] != -1)" ( (binary_expression "puVar2[0x35] != -1" (subscript_expression "puVar2[0x35]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_close_0003f158)();\n  }" { (expression_statement "(*(code *)PTR_close_0003f158)();" (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2[0x52]);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2[0x52])" (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 "(puVar2[0x52])" ( (subscript_expression "puVar2[0x52]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto code_r0x0001f8c8;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001f8c8;" goto statement_identifier ;)) (goto_statement "goto LAB_00020ae0;" goto statement_identifier ;) (labeled_statement "code_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" statement_identifier : (if_statement "if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" if (parenthesized_expression "((puVar2[0x3e] & 2) != 0)" ( (binary_expression "(puVar2[0x3e] & 2) != 0" (parenthesized_expression "(puVar2[0x3e] & 2)" ( (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" { (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x43])" ( (subscript_expression "puVar2[0x43]" identifier [ number_literal ]) ))) ;) }))) (if_statement "if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }" if (parenthesized_expression "((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0))" ( (binary_expression "(puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)" (parenthesized_expression "(puVar2[0x37] != -1)" ( (binary_expression "puVar2[0x37] != -1" (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)()" identifier = (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\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 "uVar11 = 0x18e4;" (assignment_expression "uVar11 = 0x18e4" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }" { (labeled_statement "LAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;" statement_identifier : (expression_statement "pcVar18 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar18 = *(code **)PTR_DAT_0003f070" identifier = (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) (expression_statement "(*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);" (call_expression "(*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044)" ( (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 + -0x3044" identifier + number_literal) ))) ;) (labeled_statement "LAB_0001f93c:\n      puVar2[0x22] = param_2;" statement_identifier : (expression_statement "puVar2[0x22] = param_2;" (assignment_expression "puVar2[0x22] = param_2" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "(*pcVar18)(puVar2);" (call_expression "(*pcVar18)(puVar2)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(puVar2)" ( identifier ))) ;) (labeled_statement "LAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;" statement_identifier : (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2)" (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 "(puVar2)" ( identifier ))) ;)) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })))
(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\nMHD_Daemon *\nMHD_start_daemon_va(uint flags,uint16_t port,MHD_AcceptPolicyCallback apc,void *apc_cls,\n                   MHD_AccessHandlerCallback dh,void *dh_cls,va_list ap)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  MHD_Daemon *daemon;\n  int iVar3;\n  MHD_NonceNc *pMVar4;\n  int *piVar5;\n  MHD_mutex_ *pMVar6;\n  uchar *puVar7;\n  uint uVar8;\n  MHD_Daemon *pMVar9;\n  MHD_Daemon *pMVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  MHD_THREAD_START_ROUTINE_ start_routine;\n  gnutls_priority_t pgVar13;\n  MHD_Daemon *pMVar14;\n  MHD_Connection **ppMVar15;\n  undefined2 in_register_00000014;\n  uint uVar16;\n  char *pcVar17;\n  MHD_Connection *pMVar18;\n  undefined4 uVar19;\n  MHD_Connection *pMVar20;\n  void *pvVar21;\n  MHD_FLAG MVar22;\n  MHD_mutex_ *pMVar23;\n  code *pcVar24;\n  uint uVar25;\n  MHD_SCKT_OPT_BOOL_ on;\n  sockaddr *servaddr;\n  socklen_t addrlen;\n  gnutls_datum_t key;\n  MHD_SCKT_OPT_BOOL_ v6_only;\n  undefined4 local_dc;\n  sockaddr_in servaddr4;\n  sockaddr_in6 servaddr6;\n  sockaddr_storage servaddr_1;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  pMVar6 = (MHD_mutex_ *)CONCAT22(in_register_00000014,port);\n  iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  on = 1;\n  servaddr = (sockaddr *)0x0;\n  if ((flags & 0x8000) != 0) {\n    flags = flags | MHD_ALLOW_SUSPEND_RESUME;\n  }\n  if (dh == (MHD_AccessHandlerCallback)0x0) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) == (MHD_USE_EPOLL|MHD_USE_POLL)) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) ==\n      (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)) == MHD_USE_POLL)\n  goto LAB_0001f94c;\n  if ((int)(flags << 0xf) < 0) {\n    if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) goto LAB_0001f94c;\n    if ((flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      flags = flags | MHD_USE_EPOLL;\n    }\n    else {\n      flags = flags | MHD_USE_POLL;\n    }\n  }\n  daemon = (MHD_Daemon *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (daemon == (MHD_Daemon *)0x0) goto LAB_0001f94c;\n  MVar22 = flags & MHD_USE_SSL;\n  daemon->priority_cache = (gnutls_priority_t)0x0;\n  daemon->epoll_fd = -1;\n  daemon->epoll_upgrade_fd = -1;\n  if (MVar22 != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)\n              (&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  daemon->listening_address_reuse = 0;\n  daemon->options = flags;\n  daemon->connection_limit = 0x3fc;\n  daemon->strict_for_client = (flags << 0x1a) >> 0x1f;\n  daemon->pool_size = 0x8000;\n  daemon->listen_fd = -1;\n  daemon->pool_increment = 0x400;\n  puVar1 = PTR_LAB_0003f084;\n  daemon->port = port;\n  daemon->apc = apc;\n  daemon->apc_cls = apc_cls;\n  daemon->default_handler = dh;\n  daemon->unescape_callback = (UnescapeCallback)(puVar1 + -0x6eb8);\n  daemon->default_handler_cls = dh_cls;\n  daemon->listen_backlog_size = 0x80;\n  puVar1 = PTR_vfprintf_0003f1c0;\n  daemon->connections = 0;\n  daemon->connection_timeout = 0;\n  daemon->custom_error_log = (_func_void_void_ptr_char_ptr_va_list *)puVar1;\n  puVar1 = PTR_stderr_0003f304;\n  (daemon->itc).fd = -1;\n  daemon->custom_error_log_cls = *(void **)puVar1;\n  if ((flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)) ==\n      MHD_USE_THREAD_PER_CONNECTION) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ff0);\n    flags = daemon->options | MHD_USE_INTERNAL_POLLING_THREAD;\n    daemon->options = flags;\nLAB_0001f9b4:\n    if ((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      MVar22 = daemon->options & MHD_USE_SSL;\n    }\n    else {\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }\n  }\n  else {\n    if ((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG) goto LAB_0001f9b4;\n    flags = flags & ~MHD_USE_ITC;\n    daemon->options = flags;\n  }\n  daemon->digest_auth_rand_size = 0;\n  daemon->digest_auth_random = (char *)0x0;\n  daemon->nonce_nc_size = 4;\n  if (MVar22 != MHD_NO_FLAG) {\n    daemon->cred_type = GNUTLS_CRD_CERTIFICATE;\n  }\n  iVar3 = parse_options_va(daemon,&servaddr,ap);\n  if (iVar3 != 1) {\n    if ((daemon->options & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\nLAB_0001fc74:\n    pgVar13 = daemon->priority_cache;\njoined_r0x0002099c:\n    if (pgVar13 == (gnutls_priority_t)0x0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  MVar22 = daemon->options;\n  if ((daemon->notify_completed == (MHD_RequestCompletedCallback)0x0) ||\n     ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) {\n    if ((MVar22 & MHD_USE_ITC) != MHD_NO_FLAG) goto LAB_0001f9d4;\n  }\n  else {\n    daemon->options = MVar22 | MHD_USE_ITC;\nLAB_0001f9d4:\n    if (daemon->worker_pool_size == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar16 = daemon->nonce_nc_size;\n  if (uVar16 != 0) {\n    if (uVar16 != (uVar16 * 0x98) / 0x98) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);\n      MVar22 = daemon->options;\njoined_r0x0001fc44:\n      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n      goto LAB_0001fc50;\n    }\n    pMVar4 = (MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)();\n    daemon->nnc = pMVar4;\n    if (pMVar4 == (MHD_NonceNc *)0x0) {\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);\n      MVar22 = daemon->options;\n      goto joined_r0x0001fc44;\n    }\n  }\n  dh = (MHD_AccessHandlerCallback)&daemon->nnc_lock;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(dh,0);\n  if (iVar3 != 0) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e3c);\n    if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n    }\n    (*(code *)PTR_free_0003f2f8)(daemon->nnc);\n    pMVar9 = (MHD_Daemon *)0x0;\n    (*(code *)PTR_free_0003f2f8)(daemon);\n    goto LAB_0001f950;\n  }\n  MVar22 = daemon->options;\n  if (((MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG) && (daemon->worker_pool_size != 0)\n     ) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  flags = daemon->listen_fd;\n  if (flags == ~MHD_NO_FLAG) {\n    if ((MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      iVar3 = 10;\n      if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        iVar3 = 2;\n      }\n      flags = MHD_socket_create_listen_(iVar3);\n      if (flags == ~MHD_NO_FLAG) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }\n      if (daemon->listening_address_reuse == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }\n      if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }\n      else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);\n      puVar1 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);\n      if (iVar3 < 0) {\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)) {\n      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;\n      iVar3 = setup_epoll_to_listen(daemon);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }\n    iVar3 = MHD_socket_nonblocking_(flags);\n    if (iVar3 != 0) {\n      MVar22 = daemon->options;\n      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) goto LAB_00020280;\n    if (daemon->worker_pool_size != 0) goto LAB_00020280;\n    if ((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) {\nLAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  pMVar23 = &daemon->per_ip_connection_mutex;\n  if (daemon->worker_pool_size == 0) {\n    pMVar6 = &daemon->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);\n      uVar19 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  MVar22 = daemon->options;\n  if ((MVar22 & MHD_USE_SSL) != MHD_NO_FLAG) {\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }\n      pcVar17 = daemon->https_mem_trust;\n      if (pcVar17 != (char *)0x0) {\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (daemon->have_dhparams != false) {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }\n      pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;\n      if ((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    MVar22 = daemon->options;\n  }\n  if ((MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)) ==\n      MHD_USE_INTERNAL_POLLING_THREAD) {\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      uVar8 = daemon->connection_limit;\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar25 = uVar8 / uVar16;\n      pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      daemon->worker_pool = pMVar9;\n      puVar1 = PTR_DAT_0003f05c;\n      if (pMVar9 == (MHD_Daemon *)0x0) {\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      pMVar6 = (MHD_mutex_ *)0x0;\n      pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);\n      do {\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      } while( true );\n    }\n    if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      pcVar17 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      pcVar17 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = MHD_create_named_thread_\n                      (&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon);\n    if (iVar3 == 0) {\n      pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n      uVar19 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n      uVar19 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = (pMVar6->__data).__lock;\n      uVar19 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  daemon->https_key_password = (char *)0x0;\n  pMVar9 = daemon;\nLAB_0001f950:\n  if (iVar12 == *(int *)puVar2) {\n    return pMVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  daemon = pMVar9;\nLAB_00020ae0:\n  uVar19 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(flags);\n  if (iVar3 != 0) {\n    iVar3 = (pMVar6->__data).__lock;\n    uVar19 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = daemon->epoll_fd;\n  if (daemon->upgrade_fd_in_epoll == false) goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,daemon->epoll_upgrade_fd,0);\n  if (iVar3 == 0) {\n    iVar3 = daemon->epoll_fd;\n    daemon->upgrade_fd_in_epoll = false;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar19 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (daemon->epoll_upgrade_fd != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(daemon->nnc);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(dh);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n  }\n  if (((daemon->itc).fd != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = 0x18e4;\n    if (*piVar5 == 9) {\nLAB_0001f91c:\n      pcVar24 = *(code **)PTR_mhd_panic_0003f070;\n      (*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      daemon->worker_pool_size = (uint)pMVar6;\n      (*pcVar24)(daemon);\nLAB_0001f94c:\n      pMVar9 = (MHD_Daemon *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(daemon);\n  pMVar9 = (MHD_Daemon *)0x0;\n  goto LAB_0001f950;\n}\n\n" comment comment comment (function_definition "MHD_Daemon *\nMHD_start_daemon_va(uint flags,uint16_t port,MHD_AcceptPolicyCallback apc,void *apc_cls,\n                   MHD_AccessHandlerCallback dh,void *dh_cls,va_list ap)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  MHD_Daemon *daemon;\n  int iVar3;\n  MHD_NonceNc *pMVar4;\n  int *piVar5;\n  MHD_mutex_ *pMVar6;\n  uchar *puVar7;\n  uint uVar8;\n  MHD_Daemon *pMVar9;\n  MHD_Daemon *pMVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  MHD_THREAD_START_ROUTINE_ start_routine;\n  gnutls_priority_t pgVar13;\n  MHD_Daemon *pMVar14;\n  MHD_Connection **ppMVar15;\n  undefined2 in_register_00000014;\n  uint uVar16;\n  char *pcVar17;\n  MHD_Connection *pMVar18;\n  undefined4 uVar19;\n  MHD_Connection *pMVar20;\n  void *pvVar21;\n  MHD_FLAG MVar22;\n  MHD_mutex_ *pMVar23;\n  code *pcVar24;\n  uint uVar25;\n  MHD_SCKT_OPT_BOOL_ on;\n  sockaddr *servaddr;\n  socklen_t addrlen;\n  gnutls_datum_t key;\n  MHD_SCKT_OPT_BOOL_ v6_only;\n  undefined4 local_dc;\n  sockaddr_in servaddr4;\n  sockaddr_in6 servaddr6;\n  sockaddr_storage servaddr_1;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  pMVar6 = (MHD_mutex_ *)CONCAT22(in_register_00000014,port);\n  iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  on = 1;\n  servaddr = (sockaddr *)0x0;\n  if ((flags & 0x8000) != 0) {\n    flags = flags | MHD_ALLOW_SUSPEND_RESUME;\n  }\n  if (dh == (MHD_AccessHandlerCallback)0x0) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) == (MHD_USE_EPOLL|MHD_USE_POLL)) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) ==\n      (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)) == MHD_USE_POLL)\n  goto LAB_0001f94c;\n  if ((int)(flags << 0xf) < 0) {\n    if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) goto LAB_0001f94c;\n    if ((flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      flags = flags | MHD_USE_EPOLL;\n    }\n    else {\n      flags = flags | MHD_USE_POLL;\n    }\n  }\n  daemon = (MHD_Daemon *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (daemon == (MHD_Daemon *)0x0) goto LAB_0001f94c;\n  MVar22 = flags & MHD_USE_SSL;\n  daemon->priority_cache = (gnutls_priority_t)0x0;\n  daemon->epoll_fd = -1;\n  daemon->epoll_upgrade_fd = -1;\n  if (MVar22 != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)\n              (&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  daemon->listening_address_reuse = 0;\n  daemon->options = flags;\n  daemon->connection_limit = 0x3fc;\n  daemon->strict_for_client = (flags << 0x1a) >> 0x1f;\n  daemon->pool_size = 0x8000;\n  daemon->listen_fd = -1;\n  daemon->pool_increment = 0x400;\n  puVar1 = PTR_LAB_0003f084;\n  daemon->port = port;\n  daemon->apc = apc;\n  daemon->apc_cls = apc_cls;\n  daemon->default_handler = dh;\n  daemon->unescape_callback = (UnescapeCallback)(puVar1 + -0x6eb8);\n  daemon->default_handler_cls = dh_cls;\n  daemon->listen_backlog_size = 0x80;\n  puVar1 = PTR_vfprintf_0003f1c0;\n  daemon->connections = 0;\n  daemon->connection_timeout = 0;\n  daemon->custom_error_log = (_func_void_void_ptr_char_ptr_va_list *)puVar1;\n  puVar1 = PTR_stderr_0003f304;\n  (daemon->itc).fd = -1;\n  daemon->custom_error_log_cls = *(void **)puVar1;\n  if ((flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)) ==\n      MHD_USE_THREAD_PER_CONNECTION) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ff0);\n    flags = daemon->options | MHD_USE_INTERNAL_POLLING_THREAD;\n    daemon->options = flags;\nLAB_0001f9b4:\n    if ((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      MVar22 = daemon->options & MHD_USE_SSL;\n    }\n    else {\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }\n  }\n  else {\n    if ((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG) goto LAB_0001f9b4;\n    flags = flags & ~MHD_USE_ITC;\n    daemon->options = flags;\n  }\n  daemon->digest_auth_rand_size = 0;\n  daemon->digest_auth_random = (char *)0x0;\n  daemon->nonce_nc_size = 4;\n  if (MVar22 != MHD_NO_FLAG) {\n    daemon->cred_type = GNUTLS_CRD_CERTIFICATE;\n  }\n  iVar3 = parse_options_va(daemon,&servaddr,ap);\n  if (iVar3 != 1) {\n    if ((daemon->options & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\nLAB_0001fc74:\n    pgVar13 = daemon->priority_cache;\njoined_r0x0002099c:\n    if (pgVar13 == (gnutls_priority_t)0x0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  MVar22 = daemon->options;\n  if ((daemon->notify_completed == (MHD_RequestCompletedCallback)0x0) ||\n     ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) {\n    if ((MVar22 & MHD_USE_ITC) != MHD_NO_FLAG) goto LAB_0001f9d4;\n  }\n  else {\n    daemon->options = MVar22 | MHD_USE_ITC;\nLAB_0001f9d4:\n    if (daemon->worker_pool_size == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar16 = daemon->nonce_nc_size;\n  if (uVar16 != 0) {\n    if (uVar16 != (uVar16 * 0x98) / 0x98) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);\n      MVar22 = daemon->options;\njoined_r0x0001fc44:\n      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n      goto LAB_0001fc50;\n    }\n    pMVar4 = (MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)();\n    daemon->nnc = pMVar4;\n    if (pMVar4 == (MHD_NonceNc *)0x0) {\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);\n      MVar22 = daemon->options;\n      goto joined_r0x0001fc44;\n    }\n  }\n  dh = (MHD_AccessHandlerCallback)&daemon->nnc_lock;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(dh,0);\n  if (iVar3 != 0) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e3c);\n    if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n    }\n    (*(code *)PTR_free_0003f2f8)(daemon->nnc);\n    pMVar9 = (MHD_Daemon *)0x0;\n    (*(code *)PTR_free_0003f2f8)(daemon);\n    goto LAB_0001f950;\n  }\n  MVar22 = daemon->options;\n  if (((MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG) && (daemon->worker_pool_size != 0)\n     ) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  flags = daemon->listen_fd;\n  if (flags == ~MHD_NO_FLAG) {\n    if ((MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      iVar3 = 10;\n      if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        iVar3 = 2;\n      }\n      flags = MHD_socket_create_listen_(iVar3);\n      if (flags == ~MHD_NO_FLAG) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }\n      if (daemon->listening_address_reuse == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }\n      if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }\n      else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);\n      puVar1 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);\n      if (iVar3 < 0) {\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)) {\n      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;\n      iVar3 = setup_epoll_to_listen(daemon);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }\n    iVar3 = MHD_socket_nonblocking_(flags);\n    if (iVar3 != 0) {\n      MVar22 = daemon->options;\n      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) goto LAB_00020280;\n    if (daemon->worker_pool_size != 0) goto LAB_00020280;\n    if ((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) {\nLAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  pMVar23 = &daemon->per_ip_connection_mutex;\n  if (daemon->worker_pool_size == 0) {\n    pMVar6 = &daemon->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);\n      uVar19 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  MVar22 = daemon->options;\n  if ((MVar22 & MHD_USE_SSL) != MHD_NO_FLAG) {\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }\n      pcVar17 = daemon->https_mem_trust;\n      if (pcVar17 != (char *)0x0) {\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (daemon->have_dhparams != false) {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }\n      pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;\n      if ((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    MVar22 = daemon->options;\n  }\n  if ((MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)) ==\n      MHD_USE_INTERNAL_POLLING_THREAD) {\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      uVar8 = daemon->connection_limit;\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar25 = uVar8 / uVar16;\n      pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      daemon->worker_pool = pMVar9;\n      puVar1 = PTR_DAT_0003f05c;\n      if (pMVar9 == (MHD_Daemon *)0x0) {\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      pMVar6 = (MHD_mutex_ *)0x0;\n      pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);\n      do {\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      } while( true );\n    }\n    if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      pcVar17 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      pcVar17 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = MHD_create_named_thread_\n                      (&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon);\n    if (iVar3 == 0) {\n      pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n      uVar19 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n      uVar19 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = (pMVar6->__data).__lock;\n      uVar19 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  daemon->https_key_password = (char *)0x0;\n  pMVar9 = daemon;\nLAB_0001f950:\n  if (iVar12 == *(int *)puVar2) {\n    return pMVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  daemon = pMVar9;\nLAB_00020ae0:\n  uVar19 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(flags);\n  if (iVar3 != 0) {\n    iVar3 = (pMVar6->__data).__lock;\n    uVar19 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = daemon->epoll_fd;\n  if (daemon->upgrade_fd_in_epoll == false) goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,daemon->epoll_upgrade_fd,0);\n  if (iVar3 == 0) {\n    iVar3 = daemon->epoll_fd;\n    daemon->upgrade_fd_in_epoll = false;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar19 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (daemon->epoll_upgrade_fd != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(daemon->nnc);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(dh);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n  }\n  if (((daemon->itc).fd != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = 0x18e4;\n    if (*piVar5 == 9) {\nLAB_0001f91c:\n      pcVar24 = *(code **)PTR_mhd_panic_0003f070;\n      (*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      daemon->worker_pool_size = (uint)pMVar6;\n      (*pcVar24)(daemon);\nLAB_0001f94c:\n      pMVar9 = (MHD_Daemon *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(daemon);\n  pMVar9 = (MHD_Daemon *)0x0;\n  goto LAB_0001f950;\n}" type_identifier (pointer_declarator "*\nMHD_start_daemon_va(uint flags,uint16_t port,MHD_AcceptPolicyCallback apc,void *apc_cls,\n                   MHD_AccessHandlerCallback dh,void *dh_cls,va_list ap)" * (function_declarator "MHD_start_daemon_va(uint flags,uint16_t port,MHD_AcceptPolicyCallback apc,void *apc_cls,\n                   MHD_AccessHandlerCallback dh,void *dh_cls,va_list ap)" identifier (parameter_list "(uint flags,uint16_t port,MHD_AcceptPolicyCallback apc,void *apc_cls,\n                   MHD_AccessHandlerCallback dh,void *dh_cls,va_list ap)" ( (parameter_declaration "uint flags" type_identifier identifier) , (parameter_declaration "uint16_t port" primitive_type identifier) , (parameter_declaration "MHD_AcceptPolicyCallback apc" type_identifier identifier) , (parameter_declaration "void *apc_cls" primitive_type (pointer_declarator "*apc_cls" * identifier)) , (parameter_declaration "MHD_AccessHandlerCallback dh" type_identifier identifier) , (parameter_declaration "void *dh_cls" primitive_type (pointer_declarator "*dh_cls" * identifier)) , (parameter_declaration "va_list ap" type_identifier identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  MHD_Daemon *daemon;\n  int iVar3;\n  MHD_NonceNc *pMVar4;\n  int *piVar5;\n  MHD_mutex_ *pMVar6;\n  uchar *puVar7;\n  uint uVar8;\n  MHD_Daemon *pMVar9;\n  MHD_Daemon *pMVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  MHD_THREAD_START_ROUTINE_ start_routine;\n  gnutls_priority_t pgVar13;\n  MHD_Daemon *pMVar14;\n  MHD_Connection **ppMVar15;\n  undefined2 in_register_00000014;\n  uint uVar16;\n  char *pcVar17;\n  MHD_Connection *pMVar18;\n  undefined4 uVar19;\n  MHD_Connection *pMVar20;\n  void *pvVar21;\n  MHD_FLAG MVar22;\n  MHD_mutex_ *pMVar23;\n  code *pcVar24;\n  uint uVar25;\n  MHD_SCKT_OPT_BOOL_ on;\n  sockaddr *servaddr;\n  socklen_t addrlen;\n  gnutls_datum_t key;\n  MHD_SCKT_OPT_BOOL_ v6_only;\n  undefined4 local_dc;\n  sockaddr_in servaddr4;\n  sockaddr_in6 servaddr6;\n  sockaddr_storage servaddr_1;\n  \n  puVar2 = PTR___stack_chk_guard_0003f2ec;\n  pMVar6 = (MHD_mutex_ *)CONCAT22(in_register_00000014,port);\n  iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  on = 1;\n  servaddr = (sockaddr *)0x0;\n  if ((flags & 0x8000) != 0) {\n    flags = flags | MHD_ALLOW_SUSPEND_RESUME;\n  }\n  if (dh == (MHD_AccessHandlerCallback)0x0) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) == (MHD_USE_EPOLL|MHD_USE_POLL)) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) ==\n      (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) goto LAB_0001f94c;\n  if ((flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)) == MHD_USE_POLL)\n  goto LAB_0001f94c;\n  if ((int)(flags << 0xf) < 0) {\n    if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) goto LAB_0001f94c;\n    if ((flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      flags = flags | MHD_USE_EPOLL;\n    }\n    else {\n      flags = flags | MHD_USE_POLL;\n    }\n  }\n  daemon = (MHD_Daemon *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (daemon == (MHD_Daemon *)0x0) goto LAB_0001f94c;\n  MVar22 = flags & MHD_USE_SSL;\n  daemon->priority_cache = (gnutls_priority_t)0x0;\n  daemon->epoll_fd = -1;\n  daemon->epoll_upgrade_fd = -1;\n  if (MVar22 != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)\n              (&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  daemon->listening_address_reuse = 0;\n  daemon->options = flags;\n  daemon->connection_limit = 0x3fc;\n  daemon->strict_for_client = (flags << 0x1a) >> 0x1f;\n  daemon->pool_size = 0x8000;\n  daemon->listen_fd = -1;\n  daemon->pool_increment = 0x400;\n  puVar1 = PTR_LAB_0003f084;\n  daemon->port = port;\n  daemon->apc = apc;\n  daemon->apc_cls = apc_cls;\n  daemon->default_handler = dh;\n  daemon->unescape_callback = (UnescapeCallback)(puVar1 + -0x6eb8);\n  daemon->default_handler_cls = dh_cls;\n  daemon->listen_backlog_size = 0x80;\n  puVar1 = PTR_vfprintf_0003f1c0;\n  daemon->connections = 0;\n  daemon->connection_timeout = 0;\n  daemon->custom_error_log = (_func_void_void_ptr_char_ptr_va_list *)puVar1;\n  puVar1 = PTR_stderr_0003f304;\n  (daemon->itc).fd = -1;\n  daemon->custom_error_log_cls = *(void **)puVar1;\n  if ((flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)) ==\n      MHD_USE_THREAD_PER_CONNECTION) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ff0);\n    flags = daemon->options | MHD_USE_INTERNAL_POLLING_THREAD;\n    daemon->options = flags;\nLAB_0001f9b4:\n    if ((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      MVar22 = daemon->options & MHD_USE_SSL;\n    }\n    else {\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }\n  }\n  else {\n    if ((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG) goto LAB_0001f9b4;\n    flags = flags & ~MHD_USE_ITC;\n    daemon->options = flags;\n  }\n  daemon->digest_auth_rand_size = 0;\n  daemon->digest_auth_random = (char *)0x0;\n  daemon->nonce_nc_size = 4;\n  if (MVar22 != MHD_NO_FLAG) {\n    daemon->cred_type = GNUTLS_CRD_CERTIFICATE;\n  }\n  iVar3 = parse_options_va(daemon,&servaddr,ap);\n  if (iVar3 != 1) {\n    if ((daemon->options & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\nLAB_0001fc74:\n    pgVar13 = daemon->priority_cache;\njoined_r0x0002099c:\n    if (pgVar13 == (gnutls_priority_t)0x0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  MVar22 = daemon->options;\n  if ((daemon->notify_completed == (MHD_RequestCompletedCallback)0x0) ||\n     ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) {\n    if ((MVar22 & MHD_USE_ITC) != MHD_NO_FLAG) goto LAB_0001f9d4;\n  }\n  else {\n    daemon->options = MVar22 | MHD_USE_ITC;\nLAB_0001f9d4:\n    if (daemon->worker_pool_size == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar16 = daemon->nonce_nc_size;\n  if (uVar16 != 0) {\n    if (uVar16 != (uVar16 * 0x98) / 0x98) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);\n      MVar22 = daemon->options;\njoined_r0x0001fc44:\n      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n      goto LAB_0001fc50;\n    }\n    pMVar4 = (MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)();\n    daemon->nnc = pMVar4;\n    if (pMVar4 == (MHD_NonceNc *)0x0) {\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);\n      MVar22 = daemon->options;\n      goto joined_r0x0001fc44;\n    }\n  }\n  dh = (MHD_AccessHandlerCallback)&daemon->nnc_lock;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(dh,0);\n  if (iVar3 != 0) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e3c);\n    if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n    }\n    (*(code *)PTR_free_0003f2f8)(daemon->nnc);\n    pMVar9 = (MHD_Daemon *)0x0;\n    (*(code *)PTR_free_0003f2f8)(daemon);\n    goto LAB_0001f950;\n  }\n  MVar22 = daemon->options;\n  if (((MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG) && (daemon->worker_pool_size != 0)\n     ) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  flags = daemon->listen_fd;\n  if (flags == ~MHD_NO_FLAG) {\n    if ((MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      iVar3 = 10;\n      if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        iVar3 = 2;\n      }\n      flags = MHD_socket_create_listen_(iVar3);\n      if (flags == ~MHD_NO_FLAG) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }\n      if (daemon->listening_address_reuse == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }\n      if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }\n      else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);\n      puVar1 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);\n      if (iVar3 < 0) {\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)) {\n      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;\n      iVar3 = setup_epoll_to_listen(daemon);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }\n    iVar3 = MHD_socket_nonblocking_(flags);\n    if (iVar3 != 0) {\n      MVar22 = daemon->options;\n      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) goto LAB_00020280;\n    if (daemon->worker_pool_size != 0) goto LAB_00020280;\n    if ((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) {\nLAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  pMVar23 = &daemon->per_ip_connection_mutex;\n  if (daemon->worker_pool_size == 0) {\n    pMVar6 = &daemon->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);\n      uVar19 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  MVar22 = daemon->options;\n  if ((MVar22 & MHD_USE_SSL) != MHD_NO_FLAG) {\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }\n      pcVar17 = daemon->https_mem_trust;\n      if (pcVar17 != (char *)0x0) {\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (daemon->have_dhparams != false) {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }\n      pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;\n      if ((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    MVar22 = daemon->options;\n  }\n  if ((MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)) ==\n      MHD_USE_INTERNAL_POLLING_THREAD) {\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      uVar8 = daemon->connection_limit;\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar25 = uVar8 / uVar16;\n      pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      daemon->worker_pool = pMVar9;\n      puVar1 = PTR_DAT_0003f05c;\n      if (pMVar9 == (MHD_Daemon *)0x0) {\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      pMVar6 = (MHD_mutex_ *)0x0;\n      pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);\n      do {\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      } while( true );\n    }\n    if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      pcVar17 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      pcVar17 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = MHD_create_named_thread_\n                      (&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon);\n    if (iVar3 == 0) {\n      pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n      uVar19 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n      uVar19 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = (pMVar6->__data).__lock;\n      uVar19 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  daemon->https_key_password = (char *)0x0;\n  pMVar9 = daemon;\nLAB_0001f950:\n  if (iVar12 == *(int *)puVar2) {\n    return pMVar9;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  daemon = pMVar9;\nLAB_00020ae0:\n  uVar19 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(flags);\n  if (iVar3 != 0) {\n    iVar3 = (pMVar6->__data).__lock;\n    uVar19 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = daemon->epoll_fd;\n  if (daemon->upgrade_fd_in_epoll == false) goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,daemon->epoll_upgrade_fd,0);\n  if (iVar3 == 0) {\n    iVar3 = daemon->epoll_fd;\n    daemon->upgrade_fd_in_epoll = false;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar19 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (daemon->epoll_upgrade_fd != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(daemon->nnc);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(dh);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n  }\n  if (((daemon->itc).fd != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = 0x18e4;\n    if (*piVar5 == 9) {\nLAB_0001f91c:\n      pcVar24 = *(code **)PTR_mhd_panic_0003f070;\n      (*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      daemon->worker_pool_size = (uint)pMVar6;\n      (*pcVar24)(daemon);\nLAB_0001f94c:\n      pMVar9 = (MHD_Daemon *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(daemon);\n  pMVar9 = (MHD_Daemon *)0x0;\n  goto LAB_0001f950;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "MHD_Daemon *daemon;" type_identifier (pointer_declarator "*daemon" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "MHD_NonceNc *pMVar4;" type_identifier (pointer_declarator "*pMVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "MHD_mutex_ *pMVar6;" type_identifier (pointer_declarator "*pMVar6" * identifier) ;) (declaration "uchar *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar9;" type_identifier (pointer_declarator "*pMVar9" * identifier) ;) (declaration "MHD_Daemon *pMVar10;" type_identifier (pointer_declarator "*pMVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "MHD_THREAD_START_ROUTINE_ start_routine;" type_identifier identifier ;) (declaration "gnutls_priority_t pgVar13;" type_identifier identifier ;) (declaration "MHD_Daemon *pMVar14;" type_identifier (pointer_declarator "*pMVar14" * identifier) ;) (declaration "MHD_Connection **ppMVar15;" type_identifier (pointer_declarator "**ppMVar15" * (pointer_declarator "*ppMVar15" * identifier)) ;) (declaration "undefined2 in_register_00000014;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "MHD_Connection *pMVar18;" type_identifier (pointer_declarator "*pMVar18" * identifier) ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "MHD_Connection *pMVar20;" type_identifier (pointer_declarator "*pMVar20" * identifier) ;) (declaration "void *pvVar21;" primitive_type (pointer_declarator "*pvVar21" * identifier) ;) (declaration "MHD_FLAG MVar22;" type_identifier identifier ;) (declaration "MHD_mutex_ *pMVar23;" type_identifier (pointer_declarator "*pMVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "MHD_SCKT_OPT_BOOL_ on;" type_identifier identifier ;) (declaration "sockaddr *servaddr;" type_identifier (pointer_declarator "*servaddr" * identifier) ;) (declaration "socklen_t addrlen;" type_identifier identifier ;) (declaration "gnutls_datum_t key;" type_identifier identifier ;) (declaration "MHD_SCKT_OPT_BOOL_ v6_only;" type_identifier identifier ;) (declaration "undefined4 local_dc;" type_identifier identifier ;) (declaration "sockaddr_in servaddr4;" type_identifier identifier ;) (declaration "sockaddr_in6 servaddr6;" type_identifier identifier ;) (declaration "sockaddr_storage servaddr_1;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0003f2ec" identifier = identifier) ;) (expression_statement "pMVar6 = (MHD_mutex_ *)CONCAT22(in_register_00000014,port);" (assignment_expression "pMVar6 = (MHD_mutex_ *)CONCAT22(in_register_00000014,port)" identifier = (cast_expression "(MHD_mutex_ *)CONCAT22(in_register_00000014,port)" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(in_register_00000014,port)" identifier (argument_list "(in_register_00000014,port)" ( identifier , identifier ))))) ;) (expression_statement "iVar12 = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "iVar12 = *(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))) ;) (expression_statement "on = 1;" (assignment_expression "on = 1" identifier = number_literal) ;) (expression_statement "servaddr = (sockaddr *)0x0;" (assignment_expression "servaddr = (sockaddr *)0x0" identifier = (cast_expression "(sockaddr *)0x0" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((flags & 0x8000) != 0) {\n    flags = flags | MHD_ALLOW_SUSPEND_RESUME;\n  }" if (parenthesized_expression "((flags & 0x8000) != 0)" ( (binary_expression "(flags & 0x8000) != 0" (parenthesized_expression "(flags & 0x8000)" ( (binary_expression "flags & 0x8000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    flags = flags | MHD_ALLOW_SUSPEND_RESUME;\n  }" { (expression_statement "flags = flags | MHD_ALLOW_SUSPEND_RESUME;" (assignment_expression "flags = flags | MHD_ALLOW_SUSPEND_RESUME" identifier = (binary_expression "flags | MHD_ALLOW_SUSPEND_RESUME" identifier | identifier)) ;) })) (if_statement "if (dh == (MHD_AccessHandlerCallback)0x0) goto LAB_0001f94c;" if (parenthesized_expression "(dh == (MHD_AccessHandlerCallback)0x0)" ( (binary_expression "dh == (MHD_AccessHandlerCallback)0x0" identifier == (cast_expression "(MHD_AccessHandlerCallback)0x0" ( (type_descriptor "MHD_AccessHandlerCallback" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) == (MHD_USE_EPOLL|MHD_USE_POLL)) goto LAB_0001f94c;" if (parenthesized_expression "((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) == (MHD_USE_EPOLL|MHD_USE_POLL))" ( (binary_expression "(flags & (MHD_USE_EPOLL|MHD_USE_POLL)) == (MHD_USE_EPOLL|MHD_USE_POLL)" (parenthesized_expression "(flags & (MHD_USE_EPOLL|MHD_USE_POLL))" ( (binary_expression "flags & (MHD_USE_EPOLL|MHD_USE_POLL)" identifier & (parenthesized_expression "(MHD_USE_EPOLL|MHD_USE_POLL)" ( (binary_expression "MHD_USE_EPOLL|MHD_USE_POLL" identifier | identifier) ))) )) == (parenthesized_expression "(MHD_USE_EPOLL|MHD_USE_POLL)" ( (binary_expression "MHD_USE_EPOLL|MHD_USE_POLL" identifier | identifier) ))) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) ==\n      (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) goto LAB_0001f94c;" if (parenthesized_expression "((flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) ==\n      (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION))" ( (binary_expression "(flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)) ==\n      (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)" (parenthesized_expression "(flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION))" ( (binary_expression "flags & (MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)" identifier & (parenthesized_expression "(MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION" identifier | identifier) ))) )) == (parenthesized_expression "(MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MHD_USE_EPOLL|MHD_USE_THREAD_PER_CONNECTION" identifier | identifier) ))) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)) == MHD_USE_POLL)\n  goto LAB_0001f94c;" if (parenthesized_expression "((flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)) == MHD_USE_POLL)" ( (binary_expression "(flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)) == MHD_USE_POLL" (parenthesized_expression "(flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION))" ( (binary_expression "flags & (MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)" identifier & (parenthesized_expression "(MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MHD_USE_POLL_INTERNALLY|MHD_USE_THREAD_PER_CONNECTION" identifier | identifier) ))) )) == identifier) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((int)(flags << 0xf) < 0) {\n    if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) goto LAB_0001f94c;\n    if ((flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      flags = flags | MHD_USE_EPOLL;\n    }\n    else {\n      flags = flags | MHD_USE_POLL;\n    }\n  }" if (parenthesized_expression "((int)(flags << 0xf) < 0)" ( (binary_expression "(int)(flags << 0xf) < 0" (cast_expression "(int)(flags << 0xf)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(flags << 0xf)" ( (binary_expression "flags << 0xf" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n    if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) goto LAB_0001f94c;\n    if ((flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      flags = flags | MHD_USE_EPOLL;\n    }\n    else {\n      flags = flags | MHD_USE_POLL;\n    }\n  }" { (if_statement "if ((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) goto LAB_0001f94c;" if (parenthesized_expression "((flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG)" ( (binary_expression "(flags & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG" (parenthesized_expression "(flags & (MHD_USE_EPOLL|MHD_USE_POLL))" ( (binary_expression "flags & (MHD_USE_EPOLL|MHD_USE_POLL)" identifier & (parenthesized_expression "(MHD_USE_EPOLL|MHD_USE_POLL)" ( (binary_expression "MHD_USE_EPOLL|MHD_USE_POLL" identifier | identifier) ))) )) != identifier) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      flags = flags | MHD_USE_EPOLL;\n    }\n    else {\n      flags = flags | MHD_USE_POLL;\n    }" if (parenthesized_expression "((flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(flags & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(flags & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "flags & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) == identifier) )) (compound_statement "{\n      flags = flags | MHD_USE_EPOLL;\n    }" { (expression_statement "flags = flags | MHD_USE_EPOLL;" (assignment_expression "flags = flags | MHD_USE_EPOLL" identifier = (binary_expression "flags | MHD_USE_EPOLL" identifier | identifier)) ;) }) (else_clause "else {\n      flags = flags | MHD_USE_POLL;\n    }" else (compound_statement "{\n      flags = flags | MHD_USE_POLL;\n    }" { (expression_statement "flags = flags | MHD_USE_POLL;" (assignment_expression "flags = flags | MHD_USE_POLL" identifier = (binary_expression "flags | MHD_USE_POLL" identifier | identifier)) ;) }))) })) (expression_statement "daemon = (MHD_Daemon *)(*(code *)PTR_calloc_0003f144)(1,0x174);" (assignment_expression "daemon = (MHD_Daemon *)(*(code *)PTR_calloc_0003f144)(1,0x174)" identifier = (cast_expression "(MHD_Daemon *)(*(code *)PTR_calloc_0003f144)(1,0x174)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_0003f144)(1,0x174)" (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,0x174)" ( number_literal , number_literal ))))) ;) (if_statement "if (daemon == (MHD_Daemon *)0x0) goto LAB_0001f94c;" if (parenthesized_expression "(daemon == (MHD_Daemon *)0x0)" ( (binary_expression "daemon == (MHD_Daemon *)0x0" identifier == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (expression_statement "MVar22 = flags & MHD_USE_SSL;" (assignment_expression "MVar22 = flags & MHD_USE_SSL" identifier = (binary_expression "flags & MHD_USE_SSL" identifier & identifier)) ;) (expression_statement "daemon->priority_cache = (gnutls_priority_t)0x0;" (assignment_expression "daemon->priority_cache = (gnutls_priority_t)0x0" (field_expression "daemon->priority_cache" identifier -> field_identifier) = (cast_expression "(gnutls_priority_t)0x0" ( (type_descriptor "gnutls_priority_t" type_identifier) ) number_literal)) ;) (expression_statement "daemon->epoll_fd = -1;" (assignment_expression "daemon->epoll_fd = -1" (field_expression "daemon->epoll_fd" identifier -> field_identifier) = number_literal) ;) (expression_statement "daemon->epoll_upgrade_fd = -1;" (assignment_expression "daemon->epoll_upgrade_fd = -1" (field_expression "daemon->epoll_upgrade_fd" identifier -> field_identifier) = number_literal) ;) (if_statement "if (MVar22 != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)\n              (&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0);\n  }" if (parenthesized_expression "(MVar22 != MHD_NO_FLAG)" ( (binary_expression "MVar22 != MHD_NO_FLAG" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)\n              (&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0);\n  }" { (expression_statement "(*(code *)PTR_gnutls_priority_init_0003f2e0)\n              (&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0);" (call_expression "(*(code *)PTR_gnutls_priority_init_0003f2e0)\n              (&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0)" (parenthesized_expression "(*(code *)PTR_gnutls_priority_init_0003f2e0)" ( (pointer_expression "*(code *)PTR_gnutls_priority_init_0003f2e0" * (cast_expression "(code *)PTR_gnutls_priority_init_0003f2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&daemon->priority_cache,PTR_DAT_0003f05c + -0x2ff8,0)" ( (pointer_expression "&daemon->priority_cache" & (field_expression "daemon->priority_cache" identifier -> field_identifier)) , (binary_expression "PTR_DAT_0003f05c + -0x2ff8" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "daemon->listening_address_reuse = 0;" (assignment_expression "daemon->listening_address_reuse = 0" (field_expression "daemon->listening_address_reuse" identifier -> field_identifier) = number_literal) ;) (expression_statement "daemon->options = flags;" (assignment_expression "daemon->options = flags" (field_expression "daemon->options" identifier -> field_identifier) = identifier) ;) (expression_statement "daemon->connection_limit = 0x3fc;" (assignment_expression "daemon->connection_limit = 0x3fc" (field_expression "daemon->connection_limit" identifier -> field_identifier) = number_literal) ;) (expression_statement "daemon->strict_for_client = (flags << 0x1a) >> 0x1f;" (assignment_expression "daemon->strict_for_client = (flags << 0x1a) >> 0x1f" (field_expression "daemon->strict_for_client" identifier -> field_identifier) = (binary_expression "(flags << 0x1a) >> 0x1f" (parenthesized_expression "(flags << 0x1a)" ( (binary_expression "flags << 0x1a" identifier << number_literal) )) >> number_literal)) ;) (expression_statement "daemon->pool_size = 0x8000;" (assignment_expression "daemon->pool_size = 0x8000" (field_expression "daemon->pool_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "daemon->listen_fd = -1;" (assignment_expression "daemon->listen_fd = -1" (field_expression "daemon->listen_fd" identifier -> field_identifier) = number_literal) ;) (expression_statement "daemon->pool_increment = 0x400;" (assignment_expression "daemon->pool_increment = 0x400" (field_expression "daemon->pool_increment" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar1 = PTR_LAB_0003f084;" (assignment_expression "puVar1 = PTR_LAB_0003f084" identifier = identifier) ;) (expression_statement "daemon->port = port;" (assignment_expression "daemon->port = port" (field_expression "daemon->port" identifier -> field_identifier) = identifier) ;) (expression_statement "daemon->apc = apc;" (assignment_expression "daemon->apc = apc" (field_expression "daemon->apc" identifier -> field_identifier) = identifier) ;) (expression_statement "daemon->apc_cls = apc_cls;" (assignment_expression "daemon->apc_cls = apc_cls" (field_expression "daemon->apc_cls" identifier -> field_identifier) = identifier) ;) (expression_statement "daemon->default_handler = dh;" (assignment_expression "daemon->default_handler = dh" (field_expression "daemon->default_handler" identifier -> field_identifier) = identifier) ;) (expression_statement "daemon->unescape_callback = (UnescapeCallback)(puVar1 + -0x6eb8);" (assignment_expression "daemon->unescape_callback = (UnescapeCallback)(puVar1 + -0x6eb8)" (field_expression "daemon->unescape_callback" identifier -> field_identifier) = (call_expression "(UnescapeCallback)(puVar1 + -0x6eb8)" (parenthesized_expression "(UnescapeCallback)" ( identifier )) (argument_list "(puVar1 + -0x6eb8)" ( (binary_expression "puVar1 + -0x6eb8" identifier + number_literal) )))) ;) (expression_statement "daemon->default_handler_cls = dh_cls;" (assignment_expression "daemon->default_handler_cls = dh_cls" (field_expression "daemon->default_handler_cls" identifier -> field_identifier) = identifier) ;) (expression_statement "daemon->listen_backlog_size = 0x80;" (assignment_expression "daemon->listen_backlog_size = 0x80" (field_expression "daemon->listen_backlog_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar1 = PTR_vfprintf_0003f1c0;" (assignment_expression "puVar1 = PTR_vfprintf_0003f1c0" identifier = identifier) ;) (expression_statement "daemon->connections = 0;" (assignment_expression "daemon->connections = 0" (field_expression "daemon->connections" identifier -> field_identifier) = number_literal) ;) (expression_statement "daemon->connection_timeout = 0;" (assignment_expression "daemon->connection_timeout = 0" (field_expression "daemon->connection_timeout" identifier -> field_identifier) = number_literal) ;) (expression_statement "daemon->custom_error_log = (_func_void_void_ptr_char_ptr_va_list *)puVar1;" (assignment_expression "daemon->custom_error_log = (_func_void_void_ptr_char_ptr_va_list *)puVar1" (field_expression "daemon->custom_error_log" identifier -> field_identifier) = (cast_expression "(_func_void_void_ptr_char_ptr_va_list *)puVar1" ( (type_descriptor "_func_void_void_ptr_char_ptr_va_list *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar1 = PTR_stderr_0003f304;" (assignment_expression "puVar1 = PTR_stderr_0003f304" identifier = identifier) ;) (expression_statement "(daemon->itc).fd = -1;" (assignment_expression "(daemon->itc).fd = -1" (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "daemon->custom_error_log_cls = *(void **)puVar1;" (assignment_expression "daemon->custom_error_log_cls = *(void **)puVar1" (field_expression "daemon->custom_error_log_cls" identifier -> field_identifier) = (pointer_expression "*(void **)puVar1" * (cast_expression "(void **)puVar1" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)) ==\n      MHD_USE_THREAD_PER_CONNECTION) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ff0);\n    flags = daemon->options | MHD_USE_INTERNAL_POLLING_THREAD;\n    daemon->options = flags;\nLAB_0001f9b4:\n    if ((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      MVar22 = daemon->options & MHD_USE_SSL;\n    }\n    else {\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }\n  }\n  else {\n    if ((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG) goto LAB_0001f9b4;\n    flags = flags & ~MHD_USE_ITC;\n    daemon->options = flags;\n  }" if (parenthesized_expression "((flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)) ==\n      MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "(flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)) ==\n      MHD_USE_THREAD_PER_CONNECTION" (parenthesized_expression "(flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION))" ( (binary_expression "flags & (MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)" identifier & (parenthesized_expression "(MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MHD_USE_INTERNAL_POLLING_THREAD|MHD_USE_THREAD_PER_CONNECTION" identifier | identifier) ))) )) == identifier) )) (compound_statement "{\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ff0);\n    flags = daemon->options | MHD_USE_INTERNAL_POLLING_THREAD;\n    daemon->options = flags;\nLAB_0001f9b4:\n    if ((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      MVar22 = daemon->options & MHD_USE_SSL;\n    }\n    else {\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }\n  }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ff0);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ff0)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2ff0)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ff0" identifier + number_literal) ))) ;) (expression_statement "flags = daemon->options | MHD_USE_INTERNAL_POLLING_THREAD;" (assignment_expression "flags = daemon->options | MHD_USE_INTERNAL_POLLING_THREAD" identifier = (binary_expression "daemon->options | MHD_USE_INTERNAL_POLLING_THREAD" (field_expression "daemon->options" identifier -> field_identifier) | identifier)) ;) (expression_statement "daemon->options = flags;" (assignment_expression "daemon->options = flags" (field_expression "daemon->options" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0001f9b4:\n    if ((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      MVar22 = daemon->options & MHD_USE_SSL;\n    }\n    else {\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }" statement_identifier : (if_statement "if ((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      MVar22 = daemon->options & MHD_USE_SSL;\n    }\n    else {\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }" if (parenthesized_expression "((flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)" ( (binary_expression "(flags & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG" (parenthesized_expression "(flags & MHD_USE_NO_LISTEN_SOCKET)" ( (binary_expression "flags & MHD_USE_NO_LISTEN_SOCKET" identifier & identifier) )) == identifier) )) (compound_statement "{\n      MVar22 = daemon->options & MHD_USE_SSL;\n    }" { (expression_statement "MVar22 = daemon->options & MHD_USE_SSL;" (assignment_expression "MVar22 = daemon->options & MHD_USE_SSL" identifier = (binary_expression "daemon->options & MHD_USE_SSL" (field_expression "daemon->options" identifier -> field_identifier) & identifier)) ;) }) (else_clause "else {\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }" else (compound_statement "{\n      daemon->options = flags | MHD_USE_ITC;\n      MVar22 = flags & MHD_USE_SSL;\n    }" { (expression_statement "daemon->options = flags | MHD_USE_ITC;" (assignment_expression "daemon->options = flags | MHD_USE_ITC" (field_expression "daemon->options" identifier -> field_identifier) = (binary_expression "flags | MHD_USE_ITC" identifier | identifier)) ;) (expression_statement "MVar22 = flags & MHD_USE_SSL;" (assignment_expression "MVar22 = flags & MHD_USE_SSL" identifier = (binary_expression "flags & MHD_USE_SSL" identifier & identifier)) ;) })))) }) (else_clause "else {\n    if ((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG) goto LAB_0001f9b4;\n    flags = flags & ~MHD_USE_ITC;\n    daemon->options = flags;\n  }" else (compound_statement "{\n    if ((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG) goto LAB_0001f9b4;\n    flags = flags & ~MHD_USE_ITC;\n    daemon->options = flags;\n  }" { (if_statement "if ((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG) goto LAB_0001f9b4;" if (parenthesized_expression "((flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG)" ( (binary_expression "(flags & MHD_USE_INTERNAL_POLLING_THREAD) != MHD_NO_FLAG" (parenthesized_expression "(flags & MHD_USE_INTERNAL_POLLING_THREAD)" ( (binary_expression "flags & MHD_USE_INTERNAL_POLLING_THREAD" identifier & identifier) )) != identifier) )) (goto_statement "goto LAB_0001f9b4;" goto statement_identifier ;)) (expression_statement "flags = flags & ~MHD_USE_ITC;" (assignment_expression "flags = flags & ~MHD_USE_ITC" identifier = (binary_expression "flags & ~MHD_USE_ITC" identifier & (unary_expression "~MHD_USE_ITC" ~ identifier))) ;) (expression_statement "daemon->options = flags;" (assignment_expression "daemon->options = flags" (field_expression "daemon->options" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "daemon->digest_auth_rand_size = 0;" (assignment_expression "daemon->digest_auth_rand_size = 0" (field_expression "daemon->digest_auth_rand_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "daemon->digest_auth_random = (char *)0x0;" (assignment_expression "daemon->digest_auth_random = (char *)0x0" (field_expression "daemon->digest_auth_random" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "daemon->nonce_nc_size = 4;" (assignment_expression "daemon->nonce_nc_size = 4" (field_expression "daemon->nonce_nc_size" identifier -> field_identifier) = number_literal) ;) (if_statement "if (MVar22 != MHD_NO_FLAG) {\n    daemon->cred_type = GNUTLS_CRD_CERTIFICATE;\n  }" if (parenthesized_expression "(MVar22 != MHD_NO_FLAG)" ( (binary_expression "MVar22 != MHD_NO_FLAG" identifier != identifier) )) (compound_statement "{\n    daemon->cred_type = GNUTLS_CRD_CERTIFICATE;\n  }" { (expression_statement "daemon->cred_type = GNUTLS_CRD_CERTIFICATE;" (assignment_expression "daemon->cred_type = GNUTLS_CRD_CERTIFICATE" (field_expression "daemon->cred_type" identifier -> field_identifier) = identifier) ;) })) (expression_statement "iVar3 = parse_options_va(daemon,&servaddr,ap);" (assignment_expression "iVar3 = parse_options_va(daemon,&servaddr,ap)" identifier = (call_expression "parse_options_va(daemon,&servaddr,ap)" identifier (argument_list "(daemon,&servaddr,ap)" ( identifier , (pointer_expression "&servaddr" & identifier) , identifier )))) ;) (if_statement "if (iVar3 != 1) {\n    if ((daemon->options & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\nLAB_0001fc74:\n    pgVar13 = daemon->priority_cache;\njoined_r0x0002099c:\n    if (pgVar13 == (gnutls_priority_t)0x0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    if ((daemon->options & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\nLAB_0001fc74:\n    pgVar13 = daemon->priority_cache;\njoined_r0x0002099c:\n    if (pgVar13 == (gnutls_priority_t)0x0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }" { (if_statement "if ((daemon->options & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;" if (parenthesized_expression "((daemon->options & MHD_USE_SSL) == MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_SSL) == MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_SSL)" ( (binary_expression "daemon->options & MHD_USE_SSL" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) == identifier) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;)) (labeled_statement "LAB_0001fc74:\n    pgVar13 = daemon->priority_cache;" statement_identifier : (expression_statement "pgVar13 = daemon->priority_cache;" (assignment_expression "pgVar13 = daemon->priority_cache" identifier = (field_expression "daemon->priority_cache" identifier -> field_identifier)) ;)) (labeled_statement "joined_r0x0002099c:\n    if (pgVar13 == (gnutls_priority_t)0x0) goto LAB_0001fc50;" statement_identifier : (if_statement "if (pgVar13 == (gnutls_priority_t)0x0) goto LAB_0001fc50;" if (parenthesized_expression "(pgVar13 == (gnutls_priority_t)0x0)" ( (binary_expression "pgVar13 == (gnutls_priority_t)0x0" identifier == (cast_expression "(gnutls_priority_t)0x0" ( (type_descriptor "gnutls_priority_t" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;))) (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)();" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)()" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;) })) (expression_statement "MVar22 = daemon->options;" (assignment_expression "MVar22 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (if_statement "if ((daemon->notify_completed == (MHD_RequestCompletedCallback)0x0) ||\n     ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)) {\n    if ((MVar22 & MHD_USE_ITC) != MHD_NO_FLAG) goto LAB_0001f9d4;\n  }\n  else {\n    daemon->options = MVar22 | MHD_USE_ITC;\nLAB_0001f9d4:\n    if (daemon->worker_pool_size == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" if (parenthesized_expression "((daemon->notify_completed == (MHD_RequestCompletedCallback)0x0) ||\n     ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG))" ( (binary_expression "(daemon->notify_completed == (MHD_RequestCompletedCallback)0x0) ||\n     ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" (parenthesized_expression "(daemon->notify_completed == (MHD_RequestCompletedCallback)0x0)" ( (binary_expression "daemon->notify_completed == (MHD_RequestCompletedCallback)0x0" (field_expression "daemon->notify_completed" identifier -> field_identifier) == (cast_expression "(MHD_RequestCompletedCallback)0x0" ( (type_descriptor "MHD_RequestCompletedCallback" type_identifier) ) number_literal)) )) || (parenthesized_expression "((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar22 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) == identifier) ))) )) (compound_statement "{\n    if ((MVar22 & MHD_USE_ITC) != MHD_NO_FLAG) goto LAB_0001f9d4;\n  }" { (if_statement "if ((MVar22 & MHD_USE_ITC) != MHD_NO_FLAG) goto LAB_0001f9d4;" if (parenthesized_expression "((MVar22 & MHD_USE_ITC) != MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_ITC) != MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_ITC)" ( (binary_expression "MVar22 & MHD_USE_ITC" identifier & identifier) )) != identifier) )) (goto_statement "goto LAB_0001f9d4;" goto statement_identifier ;)) }) (else_clause "else {\n    daemon->options = MVar22 | MHD_USE_ITC;\nLAB_0001f9d4:\n    if (daemon->worker_pool_size == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" else (compound_statement "{\n    daemon->options = MVar22 | MHD_USE_ITC;\nLAB_0001f9d4:\n    if (daemon->worker_pool_size == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" { (expression_statement "daemon->options = MVar22 | MHD_USE_ITC;" (assignment_expression "daemon->options = MVar22 | MHD_USE_ITC" (field_expression "daemon->options" identifier -> field_identifier) = (binary_expression "MVar22 | MHD_USE_ITC" identifier | identifier)) ;) (labeled_statement "LAB_0001f9d4:\n    if (daemon->worker_pool_size == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" statement_identifier : (if_statement "if (daemon->worker_pool_size == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" if (parenthesized_expression "(daemon->worker_pool_size == 0)" ( (binary_expression "daemon->worker_pool_size == 0" (field_expression "daemon->worker_pool_size" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      (daemon->itc).fd = iVar3;\n      if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }\n      if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);" (assignment_expression "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080)" identifier = (call_expression "(*(code *)PTR_eventfd_0003f180)(0,0x80080)" (parenthesized_expression "(*(code *)PTR_eventfd_0003f180)" ( (pointer_expression "*(code *)PTR_eventfd_0003f180" * (cast_expression "(code *)PTR_eventfd_0003f180" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x80080)" ( number_literal , number_literal )))) ;) (expression_statement "(daemon->itc).fd = iVar3;" (assignment_expression "(daemon->itc).fd = iVar3" (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (iVar3 == -1) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);\n        pgVar13 = daemon->priority_cache;\n        goto joined_r0x0002099c;\n      }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2f20,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2f20" identifier + number_literal) , identifier ))) ;) (expression_statement "pgVar13 = daemon->priority_cache;" (assignment_expression "pgVar13 = daemon->priority_cache" identifier = (field_expression "daemon->priority_cache" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x0002099c;" goto statement_identifier ;) })) (if_statement "if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }" if (parenthesized_expression "(((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3))" ( (binary_expression "((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG) && (0x3ff < iVar3)" (parenthesized_expression "((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" ( (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) )) && (parenthesized_expression "(0x3ff < iVar3)" ( (binary_expression "0x3ff < iVar3" number_literal < identifier) ))) )) (compound_statement "{\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);\n        if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ee4)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2ee4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ee4" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)((daemon->itc).fd)" identifier = (call_expression "(*(code *)PTR_close_0003f158)((daemon->itc).fd)" (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 "((daemon->itc).fd)" ( (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x1636;\n          if (*piVar5 == 9) goto LAB_0001f91c;\n        }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar5 = (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 "uVar19 = 0x1636;" (assignment_expression "uVar19 = 0x1636" identifier = number_literal) ;) (if_statement "if (*piVar5 == 9) goto LAB_0001f91c;" if (parenthesized_expression "(*piVar5 == 9)" ( (binary_expression "*piVar5 == 9" (pointer_expression "*piVar5" * identifier) == number_literal) )) (goto_statement "goto LAB_0001f91c;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0001fc74;" goto statement_identifier ;) })) }))) }))) (expression_statement "uVar16 = daemon->nonce_nc_size;" (assignment_expression "uVar16 = daemon->nonce_nc_size" identifier = (field_expression "daemon->nonce_nc_size" identifier -> field_identifier)) ;) (if_statement "if (uVar16 != 0) {\n    if (uVar16 != (uVar16 * 0x98) / 0x98) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);\n      MVar22 = daemon->options;\njoined_r0x0001fc44:\n      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n      goto LAB_0001fc50;\n    }\n    pMVar4 = (MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)();\n    daemon->nnc = pMVar4;\n    if (pMVar4 == (MHD_NonceNc *)0x0) {\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);\n      MVar22 = daemon->options;\n      goto joined_r0x0001fc44;\n    }\n  }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar16 != (uVar16 * 0x98) / 0x98) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);\n      MVar22 = daemon->options;\njoined_r0x0001fc44:\n      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n      goto LAB_0001fc50;\n    }\n    pMVar4 = (MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)();\n    daemon->nnc = pMVar4;\n    if (pMVar4 == (MHD_NonceNc *)0x0) {\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);\n      MVar22 = daemon->options;\n      goto joined_r0x0001fc44;\n    }\n  }" { (if_statement "if (uVar16 != (uVar16 * 0x98) / 0x98) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);\n      MVar22 = daemon->options;\njoined_r0x0001fc44:\n      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n      goto LAB_0001fc50;\n    }" if (parenthesized_expression "(uVar16 != (uVar16 * 0x98) / 0x98)" ( (binary_expression "uVar16 != (uVar16 * 0x98) / 0x98" identifier != (binary_expression "(uVar16 * 0x98) / 0x98" (parenthesized_expression "(uVar16 * 0x98)" ( (binary_expression "uVar16 * 0x98" identifier * number_literal) )) / number_literal)) )) (compound_statement "{\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);\n      MVar22 = daemon->options;\njoined_r0x0001fc44:\n      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n      goto LAB_0001fc50;\n    }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e94)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2e94)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e94" identifier + number_literal) ))) ;) (expression_statement "MVar22 = daemon->options;" (assignment_expression "MVar22 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x0001fc44:\n      if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;" statement_identifier : (if_statement "if ((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG) goto LAB_0001fc50;" if (parenthesized_expression "((MVar22 & MHD_USE_SSL) == MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_SSL) == MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_SSL)" ( (binary_expression "MVar22 & MHD_USE_SSL" identifier & identifier) )) == identifier) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;))) (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache)" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->priority_cache)" ( (field_expression "daemon->priority_cache" identifier -> field_identifier) ))) ;) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;) })) (expression_statement "pMVar4 = (MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)();" (assignment_expression "pMVar4 = (MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)()" identifier = (cast_expression "(MHD_NonceNc *)(*(code *)PTR_malloc_0003f25c)()" ( (type_descriptor "MHD_NonceNc *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003f25c)()" (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 "()" ( ))))) ;) (expression_statement "daemon->nnc = pMVar4;" (assignment_expression "daemon->nnc = pMVar4" (field_expression "daemon->nnc" identifier -> field_identifier) = identifier) ;) (if_statement "if (pMVar4 == (MHD_NonceNc *)0x0) {\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);\n      MVar22 = daemon->options;\n      goto joined_r0x0001fc44;\n    }" if (parenthesized_expression "(pMVar4 == (MHD_NonceNc *)0x0)" ( (binary_expression "pMVar4 == (MHD_NonceNc *)0x0" identifier == (cast_expression "(MHD_NonceNc *)0x0" ( (type_descriptor "MHD_NonceNc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);\n      MVar22 = daemon->options;\n      goto joined_r0x0001fc44;\n    }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2e6c,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e6c" identifier + number_literal) , identifier ))) ;) (expression_statement "MVar22 = daemon->options;" (assignment_expression "MVar22 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x0001fc44;" goto statement_identifier ;) })) })) (expression_statement "dh = (MHD_AccessHandlerCallback)&daemon->nnc_lock;" (assignment_expression "dh = (MHD_AccessHandlerCallback)&daemon->nnc_lock" identifier = (binary_expression "(MHD_AccessHandlerCallback)&daemon->nnc_lock" (parenthesized_expression "(MHD_AccessHandlerCallback)" ( identifier )) & (field_expression "daemon->nnc_lock" identifier -> field_identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(dh,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(dh,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(dh,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dh,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e3c);\n    if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n    }\n    (*(code *)PTR_free_0003f2f8)(daemon->nnc);\n    pMVar9 = (MHD_Daemon *)0x0;\n    (*(code *)PTR_free_0003f2f8)(daemon);\n    goto LAB_0001f950;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e3c);\n    if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n    }\n    (*(code *)PTR_free_0003f2f8)(daemon->nnc);\n    pMVar9 = (MHD_Daemon *)0x0;\n    (*(code *)PTR_free_0003f2f8)(daemon);\n    goto LAB_0001f950;\n  }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e3c);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e3c)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2e3c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e3c" identifier + number_literal) ))) ;) (if_statement "if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n    }" if (parenthesized_expression "((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_SSL) != MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_SSL)" ( (binary_expression "daemon->options & MHD_USE_SSL" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )) (compound_statement "{\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n    }" { (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache)" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->priority_cache)" ( (field_expression "daemon->priority_cache" identifier -> field_identifier) ))) ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(daemon->nnc);" (call_expression "(*(code *)PTR_free_0003f2f8)(daemon->nnc)" (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 "(daemon->nnc)" ( (field_expression "daemon->nnc" identifier -> field_identifier) ))) ;) (expression_statement "pMVar9 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar9 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(daemon);" (call_expression "(*(code *)PTR_free_0003f2f8)(daemon)" (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 "(daemon)" ( identifier ))) ;) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })) (expression_statement "MVar22 = daemon->options;" (assignment_expression "MVar22 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (if_statement "if (((MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG) && (daemon->worker_pool_size != 0)\n     ) {\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }" if (parenthesized_expression "(((MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG) && (daemon->worker_pool_size != 0)\n     )" ( (binary_expression "((MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG) && (daemon->worker_pool_size != 0)" (parenthesized_expression "((MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_INTERNAL_POLLING_THREAD) == MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_INTERNAL_POLLING_THREAD)" ( (binary_expression "MVar22 & MHD_USE_INTERNAL_POLLING_THREAD" identifier & identifier) )) == identifier) )) && (parenthesized_expression "(daemon->worker_pool_size != 0)" ( (binary_expression "daemon->worker_pool_size != 0" (field_expression "daemon->worker_pool_size" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e10);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2e10)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2e10)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e10" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "flags = daemon->listen_fd;" (assignment_expression "flags = daemon->listen_fd" identifier = (field_expression "daemon->listen_fd" identifier -> field_identifier)) ;) (if_statement "if (flags == ~MHD_NO_FLAG) {\n    if ((MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      iVar3 = 10;\n      if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        iVar3 = 2;\n      }\n      flags = MHD_socket_create_listen_(iVar3);\n      if (flags == ~MHD_NO_FLAG) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }\n      if (daemon->listening_address_reuse == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }\n      if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }\n      else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);\n      puVar1 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);\n      if (iVar3 < 0) {\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)) {\n      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;\n      iVar3 = setup_epoll_to_listen(daemon);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }\n    iVar3 = MHD_socket_nonblocking_(flags);\n    if (iVar3 != 0) {\n      MVar22 = daemon->options;\n      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) goto LAB_00020280;\n    if (daemon->worker_pool_size != 0) goto LAB_00020280;\n    if ((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) {\nLAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" if (parenthesized_expression "(flags == ~MHD_NO_FLAG)" ( (binary_expression "flags == ~MHD_NO_FLAG" identifier == (unary_expression "~MHD_NO_FLAG" ~ identifier)) )) (compound_statement "{\n    if ((MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      iVar3 = 10;\n      if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        iVar3 = 2;\n      }\n      flags = MHD_socket_create_listen_(iVar3);\n      if (flags == ~MHD_NO_FLAG) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }\n      if (daemon->listening_address_reuse == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }\n      if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }\n      else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);\n      puVar1 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);\n      if (iVar3 < 0) {\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)) {\n      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;\n      iVar3 = setup_epoll_to_listen(daemon);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }" { (if_statement "if ((MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG) {\n      iVar3 = 10;\n      if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        iVar3 = 2;\n      }\n      flags = MHD_socket_create_listen_(iVar3);\n      if (flags == ~MHD_NO_FLAG) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }\n      if (daemon->listening_address_reuse == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }\n      if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }\n      else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);\n      puVar1 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);\n      if (iVar3 < 0) {\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }" if (parenthesized_expression "((MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_NO_LISTEN_SOCKET)" ( (binary_expression "MVar22 & MHD_USE_NO_LISTEN_SOCKET" identifier & identifier) )) == identifier) )) (compound_statement "{\n      iVar3 = 10;\n      if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        iVar3 = 2;\n      }\n      flags = MHD_socket_create_listen_(iVar3);\n      if (flags == ~MHD_NO_FLAG) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }\n      if (daemon->listening_address_reuse == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }\n      if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }\n      else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);\n      puVar1 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);\n      if (iVar3 < 0) {\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }" { (expression_statement "iVar3 = 10;" (assignment_expression "iVar3 = 10" identifier = number_literal) ;) (if_statement "if ((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        iVar3 = 2;\n      }" if (parenthesized_expression "((MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_IPv6) == MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_IPv6)" ( (binary_expression "MVar22 & MHD_USE_IPv6" identifier & identifier) )) == identifier) )) (compound_statement "{\n        iVar3 = 2;\n      }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) })) (expression_statement "flags = MHD_socket_create_listen_(iVar3);" (assignment_expression "flags = MHD_socket_create_listen_(iVar3)" identifier = (call_expression "MHD_socket_create_listen_(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (flags == ~MHD_NO_FLAG) {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }" if (parenthesized_expression "(flags == ~MHD_NO_FLAG)" ( (binary_expression "flags == ~MHD_NO_FLAG" identifier == (unary_expression "~MHD_NO_FLAG" ~ identifier)) )) (compound_statement "{\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);\n        goto LAB_0001f860;\n      }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2dcc,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2dcc" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (if_statement "if (daemon->listening_address_reuse == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }\n      else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }" if (parenthesized_expression "(daemon->listening_address_reuse == 0)" ( (binary_expression "daemon->listening_address_reuse == 0" (field_expression "daemon->listening_address_reuse" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }" { (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags,0xffff,4,&on,4)" ( identifier , number_literal , number_literal , (pointer_expression "&on" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) }) (else_clause "else if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }" else (if_statement "if (0 < daemon->listening_address_reuse) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }" if (parenthesized_expression "(0 < daemon->listening_address_reuse)" ( (binary_expression "0 < daemon->listening_address_reuse" number_literal < (field_expression "daemon->listening_address_reuse" identifier -> field_identifier)) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }\n      }" { (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(flags,0xffff,4,&on,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags,0xffff,4,&on,4)" ( identifier , number_literal , number_literal , (pointer_expression "&on" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(flags,0xffff,0x200,&on,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags,0xffff,0x200,&on,4)" ( identifier , number_literal , number_literal , (pointer_expression "&on" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n          goto LAB_0001f860;\n        }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) })))) (if_statement "if ((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG) {\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }\n      else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }" if (parenthesized_expression "((daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_IPv6) == MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_IPv6)" ( (binary_expression "daemon->options & MHD_USE_IPv6" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) == identifier) )) (compound_statement "{\n        addrlen = 0x10;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n      }" { (expression_statement "addrlen = 0x10;" (assignment_expression "addrlen = 0x10" identifier = number_literal) ;) (if_statement "if (servaddr == (sockaddr *)0x0) {\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }" if (parenthesized_expression "(servaddr == (sockaddr *)0x0)" ( (binary_expression "servaddr == (sockaddr *)0x0" identifier == (cast_expression "(sockaddr *)0x0" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          servaddr4.sin_addr.s_addr = 0;\n          servaddr4.sin_zero[0] = '\0';\n          servaddr4.sin_zero[1] = '\0';\n          servaddr4.sin_zero[2] = '\0';\n          servaddr4.sin_zero[3] = '\0';\n          servaddr4.sin_family = 2;\n          servaddr = (sockaddr *)&servaddr4;\n          servaddr4.sin_zero[4] = '\0';\n          servaddr4.sin_zero[5] = '\0';\n          servaddr4.sin_zero[6] = '\0';\n          servaddr4.sin_zero[7] = '\0';\n          daemon->listen_fd = flags;\n          servaddr4.sin_port = port;\n        }" { (expression_statement "servaddr4.sin_addr.s_addr = 0;" (assignment_expression "servaddr4.sin_addr.s_addr = 0" (field_expression "servaddr4.sin_addr.s_addr" (field_expression "servaddr4.sin_addr" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "servaddr4.sin_zero[0] = '\0';" (assignment_expression "servaddr4.sin_zero[0] = '\0'" (subscript_expression "servaddr4.sin_zero[0]" (field_expression "servaddr4.sin_zero" identifier . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "servaddr4.sin_zero[1] = '\0';" (assignment_expression "servaddr4.sin_zero[1] = '\0'" (subscript_expression "servaddr4.sin_zero[1]" (field_expression "servaddr4.sin_zero" identifier . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "servaddr4.sin_zero[2] = '\0';" (assignment_expression "servaddr4.sin_zero[2] = '\0'" (subscript_expression "servaddr4.sin_zero[2]" (field_expression "servaddr4.sin_zero" identifier . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "servaddr4.sin_zero[3] = '\0';" (assignment_expression "servaddr4.sin_zero[3] = '\0'" (subscript_expression "servaddr4.sin_zero[3]" (field_expression "servaddr4.sin_zero" identifier . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "servaddr4.sin_family = 2;" (assignment_expression "servaddr4.sin_family = 2" (field_expression "servaddr4.sin_family" identifier . field_identifier) = number_literal) ;) (expression_statement "servaddr = (sockaddr *)&servaddr4;" (assignment_expression "servaddr = (sockaddr *)&servaddr4" identifier = (cast_expression "(sockaddr *)&servaddr4" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&servaddr4" & identifier))) ;) (expression_statement "servaddr4.sin_zero[4] = '\0';" (assignment_expression "servaddr4.sin_zero[4] = '\0'" (subscript_expression "servaddr4.sin_zero[4]" (field_expression "servaddr4.sin_zero" identifier . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "servaddr4.sin_zero[5] = '\0';" (assignment_expression "servaddr4.sin_zero[5] = '\0'" (subscript_expression "servaddr4.sin_zero[5]" (field_expression "servaddr4.sin_zero" identifier . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "servaddr4.sin_zero[6] = '\0';" (assignment_expression "servaddr4.sin_zero[6] = '\0'" (subscript_expression "servaddr4.sin_zero[6]" (field_expression "servaddr4.sin_zero" identifier . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "servaddr4.sin_zero[7] = '\0';" (assignment_expression "servaddr4.sin_zero[7] = '\0'" (subscript_expression "servaddr4.sin_zero[7]" (field_expression "servaddr4.sin_zero" identifier . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "daemon->listen_fd = flags;" (assignment_expression "daemon->listen_fd = flags" (field_expression "daemon->listen_fd" identifier -> field_identifier) = identifier) ;) (expression_statement "servaddr4.sin_port = port;" (assignment_expression "servaddr4.sin_port = port" (field_expression "servaddr4.sin_port" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n          daemon->listen_fd = flags;\n        }" else (compound_statement "{\n          daemon->listen_fd = flags;\n        }" { (expression_statement "daemon->listen_fd = flags;" (assignment_expression "daemon->listen_fd = flags" (field_expression "daemon->listen_fd" identifier -> field_identifier) = identifier) ;) }))) }) (else_clause "else {\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }" else (compound_statement "{\n        addrlen = 0x1c;\n        if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }\n        v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);\n        if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }" { (expression_statement "addrlen = 0x1c;" (assignment_expression "addrlen = 0x1c" identifier = number_literal) ;) (if_statement "if (servaddr == (sockaddr *)0x0) {\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }\n        else {\n          daemon->listen_fd = flags;\n        }" if (parenthesized_expression "(servaddr == (sockaddr *)0x0)" ( (binary_expression "servaddr == (sockaddr *)0x0" identifier == (cast_expression "(sockaddr *)0x0" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          servaddr6.sin6_flowinfo = 0;\n          servaddr6.sin6_scope_id = 0;\n          servaddr6.sin6_family = 10;\n          servaddr = (sockaddr *)&servaddr6;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;\n          servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;\n          daemon->listen_fd = flags;\n          servaddr6.sin6_port = port;\n        }" { (expression_statement "servaddr6.sin6_flowinfo = 0;" (assignment_expression "servaddr6.sin6_flowinfo = 0" (field_expression "servaddr6.sin6_flowinfo" identifier . field_identifier) = number_literal) ;) (expression_statement "servaddr6.sin6_scope_id = 0;" (assignment_expression "servaddr6.sin6_scope_id = 0" (field_expression "servaddr6.sin6_scope_id" identifier . field_identifier) = number_literal) ;) (expression_statement "servaddr6.sin6_family = 10;" (assignment_expression "servaddr6.sin6_family = 10" (field_expression "servaddr6.sin6_family" identifier . field_identifier) = number_literal) ;) (expression_statement "servaddr = (sockaddr *)&servaddr6;" (assignment_expression "servaddr = (sockaddr *)&servaddr6" identifier = (cast_expression "(sockaddr *)&servaddr6" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&servaddr6" & identifier))) ;) (expression_statement "servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0;" (assignment_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32[0] = 0" (subscript_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32[0]" (field_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32" (field_expression "servaddr6.sin6_addr.__in6_u" (field_expression "servaddr6.sin6_addr" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0;" (assignment_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32[1] = 0" (subscript_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32[1]" (field_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32" (field_expression "servaddr6.sin6_addr.__in6_u" (field_expression "servaddr6.sin6_addr" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0;" (assignment_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32[2] = 0" (subscript_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32[2]" (field_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32" (field_expression "servaddr6.sin6_addr.__in6_u" (field_expression "servaddr6.sin6_addr" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0;" (assignment_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32[3] = 0" (subscript_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32[3]" (field_expression "servaddr6.sin6_addr.__in6_u.__u6_addr32" (field_expression "servaddr6.sin6_addr.__in6_u" (field_expression "servaddr6.sin6_addr" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "daemon->listen_fd = flags;" (assignment_expression "daemon->listen_fd = flags" (field_expression "daemon->listen_fd" identifier -> field_identifier) = identifier) ;) (expression_statement "servaddr6.sin6_port = port;" (assignment_expression "servaddr6.sin6_port = port" (field_expression "servaddr6.sin6_port" identifier . field_identifier) = identifier) ;) }) (else_clause "else {\n          daemon->listen_fd = flags;\n        }" else (compound_statement "{\n          daemon->listen_fd = flags;\n        }" { (expression_statement "daemon->listen_fd = flags;" (assignment_expression "daemon->listen_fd = flags" (field_expression "daemon->listen_fd" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)\n        ;" (assignment_expression "v6_only = (MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)" identifier = (call_expression "(MHD_SCKT_OPT_BOOL_)((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)" (parenthesized_expression "(MHD_SCKT_OPT_BOOL_)" ( identifier )) (argument_list "((daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK)" ( (binary_expression "(daemon->options & MHD_USE_DUAL_STACK) != MHD_USE_DUAL_STACK" (parenthesized_expression "(daemon->options & MHD_USE_DUAL_STACK)" ( (binary_expression "daemon->options & MHD_USE_DUAL_STACK" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(flags,0x29,0x1a,&v6_only,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags,0x29,0x1a,&v6_only,4)" ( identifier , number_literal , number_literal , (pointer_expression "&v6_only" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) }))) (expression_statement "iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen);" (assignment_expression "iVar3 = (*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen)" identifier = (call_expression "(*(code *)PTR_bind_0003f21c)(flags,servaddr,addrlen)" (parenthesized_expression "(*(code *)PTR_bind_0003f21c)" ( (pointer_expression "*(code *)PTR_bind_0003f21c" * (cast_expression "(code *)PTR_bind_0003f21c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags,servaddr,addrlen)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar1 = PTR_setsockopt_0003f340;" (assignment_expression "puVar1 = PTR_setsockopt_0003f340" identifier = identifier) ;) (if_statement "if (iVar3 == -1) {\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar5;\n        uVar19 = 0x1753;\n        goto joined_r0x00020848;\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar5 = (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 "uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*piVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*piVar5)" (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 "(*piVar5)" ( (pointer_expression "*piVar5" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2d88,pMVar6,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d88" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(flags);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = *piVar5;" (assignment_expression "iVar3 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar19 = 0x1753;" (assignment_expression "uVar19 = 0x1753" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (if_statement "if ((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG) {\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }" if (parenthesized_expression "((daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_TCP_FASTOPEN) != MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_TCP_FASTOPEN)" ( (binary_expression "daemon->options & MHD_USE_TCP_FASTOPEN" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )) (compound_statement "{\n        if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }\n        iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);\n        if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }\n      }" { (if_statement "if (daemon->fastopen_queue_size == 0) {\n          daemon->fastopen_queue_size = 10;\n        }" if (parenthesized_expression "(daemon->fastopen_queue_size == 0)" ( (binary_expression "daemon->fastopen_queue_size == 0" (field_expression "daemon->fastopen_queue_size" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          daemon->fastopen_queue_size = 10;\n        }" { (expression_statement "daemon->fastopen_queue_size = 10;" (assignment_expression "daemon->fastopen_queue_size = 10" (field_expression "daemon->fastopen_queue_size" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4);" (assignment_expression "iVar3 = (*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4)" identifier = (call_expression "(*(code *)puVar1)(flags,6,0x17,&daemon->fastopen_queue_size,4)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags,6,0x17,&daemon->fastopen_queue_size,4)" ( identifier , number_literal , number_literal , (pointer_expression "&daemon->fastopen_queue_size" & (field_expression "daemon->fastopen_queue_size" identifier -> field_identifier)) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);\n        }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2da0,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) })) (expression_statement "iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size);" (assignment_expression "iVar3 = (*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size)" identifier = (call_expression "(*(code *)PTR_listen_0003f1b8)(flags,daemon->listen_backlog_size)" (parenthesized_expression "(*(code *)PTR_listen_0003f1b8)" ( (pointer_expression "*(code *)PTR_listen_0003f1b8" * (cast_expression "(code *)PTR_listen_0003f1b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags,daemon->listen_backlog_size)" ( identifier , (field_expression "daemon->listen_backlog_size" identifier -> field_identifier) )))) ;) (if_statement "if (iVar3 < 0) {\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);\n        iVar3 = (*(code *)PTR_close_0003f158)(flags);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = (pMVar6->__data).__lock;\n        uVar19 = 0x1771;\n        goto joined_r0x00020848;\n      }" { (expression_statement "pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "pMVar6 = (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 "uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)((pMVar6->__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 "((pMVar6->__data).__lock)" ( (field_expression "(pMVar6->__data).__lock" (parenthesized_expression "(pMVar6->__data)" ( (field_expression "pMVar6->__data" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2d68,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d68" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(flags);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = (pMVar6->__data).__lock;" (assignment_expression "iVar3 = (pMVar6->__data).__lock" identifier = (field_expression "(pMVar6->__data).__lock" (parenthesized_expression "(pMVar6->__data)" ( (field_expression "pMVar6->__data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar19 = 0x1771;" (assignment_expression "uVar19 = 0x1771" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001f7e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001f82c:\n    if (((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)) {\n      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;\n      iVar3 = setup_epoll_to_listen(daemon);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" statement_identifier : (if_statement "if (((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)) {\n      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;\n      iVar3 = setup_epoll_to_listen(daemon);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" if (parenthesized_expression "(((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0))" ( (binary_expression "((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG) && (daemon->worker_pool_size == 0)" (parenthesized_expression "((MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_EPOLL) != MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_EPOLL)" ( (binary_expression "MVar22 & MHD_USE_EPOLL" identifier & identifier) )) != identifier) )) && (parenthesized_expression "(daemon->worker_pool_size == 0)" ( (binary_expression "daemon->worker_pool_size == 0" (field_expression "daemon->worker_pool_size" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n      if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;\n      iVar3 = setup_epoll_to_listen(daemon);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" { (if_statement "if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG) goto LAB_0001fdf8;" if (parenthesized_expression "((MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_THREAD_PER_CONNECTION) != MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar22 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) != identifier) )) (goto_statement "goto LAB_0001fdf8;" goto statement_identifier ;)) (expression_statement "iVar3 = setup_epoll_to_listen(daemon);" (assignment_expression "iVar3 = setup_epoll_to_listen(daemon)" identifier = (call_expression "setup_epoll_to_listen(daemon)" identifier (argument_list "(daemon)" ( identifier )))) ;) (if_statement "if (iVar3 != 1) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&daemon->per_ip_connection_mutex,0)" ( (pointer_expression "&daemon->per_ip_connection_mutex" & (field_expression "daemon->per_ip_connection_mutex" identifier -> field_identifier)) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17fc;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17fc;\n      goto joined_r0x00020848;\n    }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (if_statement "if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;" if (parenthesized_expression "(flags == ~MHD_NO_FLAG)" ( (binary_expression "flags == ~MHD_NO_FLAG" identifier == (unary_expression "~MHD_NO_FLAG" ~ identifier)) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (labeled_statement "LAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(flags);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar5 = (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 "iVar3 = *piVar5;" (assignment_expression "iVar3 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar19 = 0x17fc;" (assignment_expression "uVar19 = 0x17fc" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0001f7e0:\n    if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }\n    iVar3 = MHD_socket_nonblocking_(flags);\n    if (iVar3 != 0) {\n      MVar22 = daemon->options;\n      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) goto LAB_00020280;\n    if (daemon->worker_pool_size != 0) goto LAB_00020280;\n    if ((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) {\nLAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" else (compound_statement "{\nLAB_0001f7e0:\n    if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }\n    iVar3 = MHD_socket_nonblocking_(flags);\n    if (iVar3 != 0) {\n      MVar22 = daemon->options;\n      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n    MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19);\n    if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) goto LAB_00020280;\n    if (daemon->worker_pool_size != 0) goto LAB_00020280;\n    if ((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) {\nLAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" { (labeled_statement "LAB_0001f7e0:\n    if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }" statement_identifier : (if_statement "if ((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)) {\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }" if (parenthesized_expression "((daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG))" ( (binary_expression "(daemon->port == 0) && ((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)" (parenthesized_expression "(daemon->port == 0)" ( (binary_expression "daemon->port == 0" (field_expression "daemon->port" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "((daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_NO_LISTEN_SOCKET) == MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_NO_LISTEN_SOCKET)" ( (binary_expression "daemon->options & MHD_USE_NO_LISTEN_SOCKET" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) == identifier) ))) )) (compound_statement "{\n      uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);\n      addrlen = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);\n      if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }\n    }" { (expression_statement "uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80);" (assignment_expression "uVar19 = (*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80)" identifier = (call_expression "(*(code *)PTR_memset_0003f20c)(&servaddr_1,0,0x80)" (parenthesized_expression "(*(code *)PTR_memset_0003f20c)" ( (pointer_expression "*(code *)PTR_memset_0003f20c" * (cast_expression "(code *)PTR_memset_0003f20c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&servaddr_1,0,0x80)" ( (pointer_expression "&servaddr_1" & identifier) , number_literal , number_literal )))) ;) (expression_statement "addrlen = 0x80;" (assignment_expression "addrlen = 0x80" identifier = number_literal) ;) (expression_statement "iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen);" (assignment_expression "iVar3 = (*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen)" identifier = (call_expression "(*(code *)PTR_getsockname_0003f19c)(flags,uVar19,&addrlen)" (parenthesized_expression "(*(code *)PTR_getsockname_0003f19c)" ( (pointer_expression "*(code *)PTR_getsockname_0003f19c" * (cast_expression "(code *)PTR_getsockname_0003f19c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags,uVar19,&addrlen)" ( identifier , identifier , (pointer_expression "&addrlen" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }" { (if_statement "if (addrlen < 0x81) {\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }\n        else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }" if (parenthesized_expression "(addrlen < 0x81)" ( (binary_expression "addrlen < 0x81" identifier < number_literal) )) (compound_statement "{\n          if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }\n        }" { (if_statement "if ((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)) {\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }\n          else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }" if (parenthesized_expression "((servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10))" ( (binary_expression "(servaddr_1.ss_family == 2) || (servaddr_1.ss_family == 10)" (parenthesized_expression "(servaddr_1.ss_family == 2)" ( (binary_expression "servaddr_1.ss_family == 2" (field_expression "servaddr_1.ss_family" identifier . field_identifier) == number_literal) )) || (parenthesized_expression "(servaddr_1.ss_family == 10)" ( (binary_expression "servaddr_1.ss_family == 10" (field_expression "servaddr_1.ss_family" identifier . field_identifier) == number_literal) ))) )) (compound_statement "{\n            daemon->port = servaddr_1.__ss_padding._0_2_;\n          }" { (expression_statement "daemon->port = servaddr_1.__ss_padding._0_2_;" (assignment_expression "daemon->port = servaddr_1.__ss_padding._0_2_" (field_expression "daemon->port" identifier -> field_identifier) = (field_expression "servaddr_1.__ss_padding._0_2_" (field_expression "servaddr_1.__ss_padding" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }" else (compound_statement "{\n            if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            daemon->port = 0;\n          }" { (if_statement "if (servaddr_1.ss_family != 1) {\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }" if (parenthesized_expression "(servaddr_1.ss_family != 1)" ( (binary_expression "servaddr_1.ss_family != 1" (field_expression "servaddr_1.ss_family" identifier . field_identifier) != number_literal) )) (compound_statement "{\n              MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);\n            }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ccc)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2ccc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ccc" identifier + number_literal) ))) ;) })) (expression_statement "daemon->port = 0;" (assignment_expression "daemon->port = 0" (field_expression "daemon->port" identifier -> field_identifier) = number_literal) ;) }))) }) (else_clause "else {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }" else (compound_statement "{\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);\n        }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d18)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2d18)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d18" identifier + number_literal) ))) ;) }))) }) (else_clause "else {\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }" else (compound_statement "{\n        puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);\n      }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2d40,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d40" identifier + number_literal) , identifier ))) ;) }))) }))) (expression_statement "iVar3 = MHD_socket_nonblocking_(flags);" (assignment_expression "iVar3 = MHD_socket_nonblocking_(flags)" identifier = (call_expression "MHD_socket_nonblocking_(flags)" identifier (argument_list "(flags)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      MVar22 = daemon->options;\n      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      MVar22 = daemon->options;\n      if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }" { (expression_statement "MVar22 = daemon->options;" (assignment_expression "MVar22 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (if_statement "if ((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))\n      goto LAB_0002006c;" if (parenthesized_expression "((0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))" ( (binary_expression "(0x3ff < (int)flags) && ((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" (parenthesized_expression "(0x3ff < (int)flags)" ( (binary_expression "0x3ff < (int)flags" number_literal < (cast_expression "(int)flags" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" ( (binary_expression "(MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG" (parenthesized_expression "(MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL))" ( (binary_expression "MVar22 & (MHD_USE_EPOLL|MHD_USE_POLL)" identifier & (parenthesized_expression "(MHD_USE_EPOLL|MHD_USE_POLL)" ( (binary_expression "MHD_USE_EPOLL|MHD_USE_POLL" identifier | identifier) ))) )) == identifier) ))) )) (goto_statement "goto LAB_0002006c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f82c;" goto statement_identifier ;) })) (expression_statement "pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "pMVar6 = (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 "uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)((pMVar6->__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 "((pMVar6->__data).__lock)" ( (field_expression "(pMVar6->__data).__lock" (parenthesized_expression "(pMVar6->__data)" ( (field_expression "pMVar6->__data" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2cb0,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2cb0" identifier + number_literal) , identifier ))) ;) (if_statement "if ((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) goto LAB_00020280;" if (parenthesized_expression "((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_EPOLL)" ( (binary_expression "daemon->options & MHD_USE_EPOLL" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )) (goto_statement "goto LAB_00020280;" goto statement_identifier ;)) (if_statement "if (daemon->worker_pool_size != 0) goto LAB_00020280;" if (parenthesized_expression "(daemon->worker_pool_size != 0)" ( (binary_expression "daemon->worker_pool_size != 0" (field_expression "daemon->worker_pool_size" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_00020280;" goto statement_identifier ;)) (if_statement "if ((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)) {\nLAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17dc;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "((0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG))" ( (binary_expression "(0x3ff < (int)flags) && ((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" (parenthesized_expression "(0x3ff < (int)flags)" ( (binary_expression "0x3ff < (int)flags" number_literal < (cast_expression "(int)flags" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) == MHD_NO_FLAG)" ( (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) ))) )) (compound_statement "{\nLAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x17dc;\n      goto joined_r0x00020848;\n    }" { (labeled_statement "LAB_0002006c:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);" statement_identifier : (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x3938,flags,0x400)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x3938" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(flags);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar5 = (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 "iVar3 = *piVar5;" (assignment_expression "iVar3 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar19 = 0x17dc;" (assignment_expression "uVar19 = 0x17dc" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(&daemon->per_ip_connection_mutex,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&daemon->per_ip_connection_mutex,0)" ( (pointer_expression "&daemon->per_ip_connection_mutex" & (field_expression "daemon->per_ip_connection_mutex" identifier -> field_identifier)) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001ff08;" goto statement_identifier ;) })) }))) (expression_statement "pMVar23 = &daemon->per_ip_connection_mutex;" (assignment_expression "pMVar23 = &daemon->per_ip_connection_mutex" identifier = (pointer_expression "&daemon->per_ip_connection_mutex" & (field_expression "daemon->per_ip_connection_mutex" identifier -> field_identifier))) ;) (if_statement "if (daemon->worker_pool_size == 0) {\n    pMVar6 = &daemon->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);\n      uVar19 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }" if (parenthesized_expression "(daemon->worker_pool_size == 0)" ( (binary_expression "daemon->worker_pool_size == 0" (field_expression "daemon->worker_pool_size" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    pMVar6 = &daemon->cleanup_connection_mutex;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0);\n    if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);\n      uVar19 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }" { (expression_statement "pMVar6 = &daemon->cleanup_connection_mutex;" (assignment_expression "pMVar6 = &daemon->cleanup_connection_mutex" identifier = (pointer_expression "&daemon->cleanup_connection_mutex" & (field_expression "daemon->cleanup_connection_mutex" identifier -> field_identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(pMVar6,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar6,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);\n      uVar19 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x180c;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);\n      uVar19 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar5;\n      uVar19 = 0x180c;\n      goto joined_r0x00020848;\n    }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar6)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar6)" ( identifier )))) ;) (expression_statement "uVar19 = 0x1809;" (assignment_expression "uVar19 = 0x1809" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;" if (parenthesized_expression "(flags == ~MHD_NO_FLAG)" ( (binary_expression "flags == ~MHD_NO_FLAG" identifier == (unary_expression "~MHD_NO_FLAG" ~ identifier)) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(flags);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar5 = (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 "iVar3 = *piVar5;" (assignment_expression "iVar3 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar19 = 0x180c;" (assignment_expression "uVar19 = 0x180c" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) })) (expression_statement "MVar22 = daemon->options;" (assignment_expression "MVar22 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) (if_statement "if ((MVar22 & MHD_USE_SSL) != MHD_NO_FLAG) {\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }\n      pcVar17 = daemon->https_mem_trust;\n      if (pcVar17 != (char *)0x0) {\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (daemon->have_dhparams != false) {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }\n      pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;\n      if ((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    MVar22 = daemon->options;\n  }" if (parenthesized_expression "((MVar22 & MHD_USE_SSL) != MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_SSL) != MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_SSL)" ( (binary_expression "MVar22 & MHD_USE_SSL" identifier & identifier) )) != identifier) )) (compound_statement "{\n    if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }\n      pcVar17 = daemon->https_mem_trust;\n      if (pcVar17 != (char *)0x0) {\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (daemon->have_dhparams != false) {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }\n      pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;\n      if ((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    MVar22 = daemon->options;\n  }" { (if_statement "if (daemon->cred_type == GNUTLS_CRD_CERTIFICATE) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }\n      pcVar17 = daemon->https_mem_trust;\n      if (pcVar17 != (char *)0x0) {\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (daemon->have_dhparams != false) {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }\n      pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;\n      if ((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\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      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }\n      pcVar17 = daemon->https_mem_trust;\n      if (pcVar17 != (char *)0x0) {\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (daemon->have_dhparams != false) {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }\n      pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;\n      if ((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(&daemon->x509_cred)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150" * (cast_expression "(code *)PTR_gnutls_certificate_allocate_credentials_0003f150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&daemon->x509_cred)" ( (pointer_expression "&daemon->x509_cred" & (field_expression "daemon->x509_cred" identifier -> field_identifier)) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000201cc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;)) (if_statement "if (daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }" if (parenthesized_expression "(daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0)" ( (binary_expression "daemon->cert_callback != (gnutls_certificate_retrieve_function2 *)0x0" (field_expression "daemon->cert_callback" identifier -> field_identifier) != (cast_expression "(gnutls_certificate_retrieve_function2 *)0x0" ( (type_descriptor "gnutls_certificate_retrieve_function2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred);" (call_expression "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(daemon->x509_cred)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c" * (cast_expression "(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->x509_cred)" ( (field_expression "daemon->x509_cred" identifier -> field_identifier) ))) ;) })) (expression_statement "pcVar17 = daemon->https_mem_trust;" (assignment_expression "pcVar17 = daemon->https_mem_trust" identifier = (field_expression "daemon->https_mem_trust" identifier -> field_identifier)) ;) (if_statement "if (pcVar17 != (char *)0x0) {\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }" if (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);\n        if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }" { (expression_statement "v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17;" (assignment_expression "v6_only = (MHD_SCKT_OPT_BOOL_)pcVar17" identifier = (cast_expression "(MHD_SCKT_OPT_BOOL_)pcVar17" ( (type_descriptor "MHD_SCKT_OPT_BOOL_" type_identifier) ) identifier)) ;) (expression_statement "local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17);" (assignment_expression "local_dc = (*(code *)PTR_strlen_0003f228)(pcVar17)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(pcVar17)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar17)" ( identifier )))) ;) (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (daemon->x509_cred,&v6_only,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->x509_cred,&v6_only,1)" ( (field_expression "daemon->x509_cred" identifier -> field_identifier) , (pointer_expression "&v6_only" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bf4)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2bf4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2bf4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) })) (if_statement "if (daemon->have_dhparams != false) {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }" if (parenthesized_expression "(daemon->have_dhparams != false)" ( (binary_expression "daemon->have_dhparams != false" (field_expression "daemon->have_dhparams" identifier -> field_identifier) != false) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams);" (call_expression "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)\n                  (daemon->x509_cred,daemon->https_mem_dhparams)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4" * (cast_expression "(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->x509_cred,daemon->https_mem_dhparams)" ( (field_expression "daemon->x509_cred" identifier -> field_identifier) , (field_expression "daemon->https_mem_dhparams" identifier -> field_identifier) ))) ;) })) (expression_statement "pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert;" (assignment_expression "pMVar6 = (MHD_mutex_ *)daemon->https_mem_cert" identifier = (cast_expression "(MHD_mutex_ *)daemon->https_mem_cert" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "daemon->https_mem_cert" identifier -> field_identifier))) ;) (if_statement "if ((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)) {\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }" if (parenthesized_expression "((pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0))" ( (binary_expression "(pMVar6 == (MHD_mutex_ *)0x0) ||\n         (puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)" (parenthesized_expression "(pMVar6 == (MHD_mutex_ *)0x0)" ( (binary_expression "pMVar6 == (MHD_mutex_ *)0x0" identifier == (cast_expression "(MHD_mutex_ *)0x0" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0)" ( (comma_expression "puVar7 = (uchar *)daemon->https_mem_key, puVar7 == (uchar *)0x0" (assignment_expression "puVar7 = (uchar *)daemon->https_mem_key" identifier = (cast_expression "(uchar *)daemon->https_mem_key" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "daemon->https_mem_key" identifier -> field_identifier))) , (binary_expression "puVar7 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }" { (if_statement "if (daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0)" ( (binary_expression "daemon->cert_callback == (gnutls_certificate_retrieve_function2 *)0x0" (field_expression "daemon->cert_callback" identifier -> field_identifier) == (cast_expression "(gnutls_certificate_retrieve_function2 *)0x0" ( (type_descriptor "gnutls_certificate_retrieve_function2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ba0)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2ba0)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ba0" identifier + number_literal) ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) }) (else_clause "else {\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }" else (compound_statement "{\n        key.data = puVar7;\n        key.size = (*(code *)PTR_strlen_0003f228)(puVar7);\n        v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;\n        local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);\n        if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }\n        if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }\n      }" { (expression_statement "key.data = puVar7;" (assignment_expression "key.data = puVar7" (field_expression "key.data" identifier . field_identifier) = identifier) ;) (expression_statement "key.size = (*(code *)PTR_strlen_0003f228)(puVar7);" (assignment_expression "key.size = (*(code *)PTR_strlen_0003f228)(puVar7)" (field_expression "key.size" identifier . field_identifier) = (call_expression "(*(code *)PTR_strlen_0003f228)(puVar7)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7)" ( identifier )))) ;) (expression_statement "v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6;" (assignment_expression "v6_only = (MHD_SCKT_OPT_BOOL_)pMVar6" identifier = (cast_expression "(MHD_SCKT_OPT_BOOL_)pMVar6" ( (type_descriptor "MHD_SCKT_OPT_BOOL_" type_identifier) ) identifier)) ;) (expression_statement "local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6);" (assignment_expression "local_dc = (*(code *)PTR_strlen_0003f228)(pMVar6)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(pMVar6)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar6)" ( identifier )))) ;) (if_statement "if (daemon->https_key_password == (char *)0x0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }" if (parenthesized_expression "(daemon->https_key_password == (char *)0x0)" ( (binary_expression "daemon->https_key_password == (char *)0x0" (field_expression "daemon->https_key_password" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);\n        }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (daemon->x509_cred,&v6_only,&key,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->x509_cred,&v6_only,&key,1)" ( (field_expression "daemon->x509_cred" identifier -> field_identifier) , (pointer_expression "&v6_only" & identifier) , (pointer_expression "&key" & identifier) , number_literal )))) ;) }) (else_clause "else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }" else (compound_statement "{\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);\n        }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->x509_cred,&v6_only,&key,1,daemon->https_key_password,0)" ( (field_expression "daemon->x509_cred" identifier -> field_identifier) , (pointer_expression "&v6_only" & identifier) , (pointer_expression "&key" & identifier) , number_literal , (field_expression "daemon->https_key_password" identifier -> field_identifier) , number_literal )))) ;) }))) (if_statement "if (iVar3 != 0) {\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);\n          goto LAB_000201cc;\n        }" { (expression_statement "uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);" (assignment_expression "uVar19 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3)" identifier = (call_expression "(*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3)" (parenthesized_expression "(*(code *)PTR_gnutls_strerror_0003f1b4)" ( (pointer_expression "*(code *)PTR_gnutls_strerror_0003f1b4" * (cast_expression "(code *)PTR_gnutls_strerror_0003f1b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2bd4,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2bd4" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n      if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" else (compound_statement "{\n      if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" { (if_statement "if (daemon->cred_type != GNUTLS_CRD_PSK) {\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\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        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b6c)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2b6c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b6c" identifier + number_literal) ))) ;) (labeled_statement "LAB_000201cc:\n        MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);" statement_identifier : (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b3c)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2b3c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b3c" identifier + number_literal) ))) ;)) (if_statement "if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }" if (parenthesized_expression "((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0))" ( (binary_expression "(flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)" (parenthesized_expression "(flags != ~MHD_NO_FLAG)" ( (binary_expression "flags != ~MHD_NO_FLAG" identifier != (unary_expression "~MHD_NO_FLAG" ~ identifier)) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x181c;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar5 = (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 "uVar19 = 0x181c;" (assignment_expression "uVar19 = 0x181c" identifier = number_literal) ;) (if_statement "if (*piVar5 == 9) goto LAB_0001fdd8;" if (parenthesized_expression "(*piVar5 == 9)" ( (binary_expression "*piVar5 == 9" (pointer_expression "*piVar5" * identifier) == number_literal) )) (goto_statement "goto LAB_0001fdd8;" goto statement_identifier ;)) })) (if_statement "if (daemon->worker_pool_size == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }" if (parenthesized_expression "(daemon->worker_pool_size == 0)" ( (binary_expression "daemon->worker_pool_size == 0" (field_expression "daemon->worker_pool_size" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n          uVar19 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }" { (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&daemon->cleanup_connection_mutex)" ( (pointer_expression "&daemon->cleanup_connection_mutex" & (field_expression "daemon->cleanup_connection_mutex" identifier -> field_identifier)) )))) ;) (expression_statement "uVar19 = 0x181f;" (assignment_expression "uVar19 = 0x181f" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) })) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar23)" ( identifier )))) ;) (expression_statement "uVar19 = 0x1820;" (assignment_expression "uVar19 = 0x1820" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred)" identifier = (call_expression "(*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(&daemon->psk_cred)" (parenthesized_expression "(*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)" ( (pointer_expression "*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4" * (cast_expression "(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&daemon->psk_cred)" ( (pointer_expression "&daemon->psk_cred" & (field_expression "daemon->psk_cred" identifier -> field_identifier)) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000201cc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;)) }))) (expression_statement "MVar22 = daemon->options;" (assignment_expression "MVar22 = daemon->options" identifier = (field_expression "daemon->options" identifier -> field_identifier)) ;) })) (if_statement "if ((MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)) ==\n      MHD_USE_INTERNAL_POLLING_THREAD) {\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      uVar8 = daemon->connection_limit;\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar25 = uVar8 / uVar16;\n      pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      daemon->worker_pool = pMVar9;\n      puVar1 = PTR_DAT_0003f05c;\n      if (pMVar9 == (MHD_Daemon *)0x0) {\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      pMVar6 = (MHD_mutex_ *)0x0;\n      pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);\n      do {\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      } while( true );\n    }\n    if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      pcVar17 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      pcVar17 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = MHD_create_named_thread_\n                      (&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon);\n    if (iVar3 == 0) {\n      pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n      uVar19 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n      uVar19 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = (pMVar6->__data).__lock;\n      uVar19 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }" if (parenthesized_expression "((MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)) ==\n      MHD_USE_INTERNAL_POLLING_THREAD)" ( (binary_expression "(MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)) ==\n      MHD_USE_INTERNAL_POLLING_THREAD" (parenthesized_expression "(MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD))" ( (binary_expression "MVar22 & (MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)" identifier & (parenthesized_expression "(MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD)" ( (binary_expression "MHD_USE_NO_LISTEN_SOCKET|MHD_USE_INTERNAL_POLLING_THREAD" identifier | identifier) ))) )) == identifier) )) (compound_statement "{\n    uVar16 = daemon->worker_pool_size;\n    if (uVar16 != 0) {\n      uVar8 = daemon->connection_limit;\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar25 = uVar8 / uVar16;\n      pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      daemon->worker_pool = pMVar9;\n      puVar1 = PTR_DAT_0003f05c;\n      if (pMVar9 == (MHD_Daemon *)0x0) {\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      pMVar6 = (MHD_mutex_ *)0x0;\n      pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);\n      do {\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      } while( true );\n    }\n    if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      pcVar17 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      pcVar17 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = MHD_create_named_thread_\n                      (&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon);\n    if (iVar3 == 0) {\n      pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n      uVar19 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n      uVar19 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = (pMVar6->__data).__lock;\n      uVar19 = 0x183a;\n      goto joined_r0x00020848;\n    }\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      uVar8 = daemon->connection_limit;\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar25 = uVar8 / uVar16;\n      pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      daemon->worker_pool = pMVar9;\n      puVar1 = PTR_DAT_0003f05c;\n      if (pMVar9 == (MHD_Daemon *)0x0) {\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      pMVar6 = (MHD_mutex_ *)0x0;\n      pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);\n      do {\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      } while( true );\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar8 = daemon->connection_limit;\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar25 = uVar8 / uVar16;\n      pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      daemon->worker_pool = pMVar9;\n      puVar1 = PTR_DAT_0003f05c;\n      if (pMVar9 == (MHD_Daemon *)0x0) {\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      pMVar6 = (MHD_mutex_ *)0x0;\n      pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);\n      do {\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      } while( true );\n    }" { (expression_statement "uVar8 = daemon->connection_limit;" (assignment_expression "uVar8 = daemon->connection_limit" identifier = (field_expression "daemon->connection_limit" identifier -> field_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 "uVar25 = uVar8 / uVar16;" (assignment_expression "uVar25 = uVar8 / uVar16" identifier = (binary_expression "uVar8 / uVar16" identifier / identifier)) ;) (expression_statement "pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);" (assignment_expression "pMVar9 = (MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" identifier = (cast_expression "(MHD_Daemon *)(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" (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 "(uVar16 * 0x174)" ( (binary_expression "uVar16 * 0x174" identifier * number_literal) ))))) ;) (expression_statement "daemon->worker_pool = pMVar9;" (assignment_expression "daemon->worker_pool = pMVar9" (field_expression "daemon->worker_pool" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar1 = PTR_DAT_0003f05c;" (assignment_expression "puVar1 = PTR_DAT_0003f05c" identifier = identifier) ;) (if_statement "if (pMVar9 == (MHD_Daemon *)0x0) {\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }" if (parenthesized_expression "(pMVar9 == (MHD_Daemon *)0x0)" ( (binary_expression "pMVar9 == (MHD_Daemon *)0x0" identifier == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n        uVar19 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }" { (labeled_statement "LAB_00020778:\n        if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }" statement_identifier : (if_statement "if ((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)) {\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }" if (parenthesized_expression "((flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0))" ( (binary_expression "(flags != ~MHD_NO_FLAG) && (iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)" (parenthesized_expression "(flags != ~MHD_NO_FLAG)" ( (binary_expression "flags != ~MHD_NO_FLAG" identifier != (unary_expression "~MHD_NO_FLAG" ~ identifier)) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = 0x18b3;\n          if (*piVar5 == 9) goto LAB_0001fdd8;\n        }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar5 = (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 "uVar19 = 0x18b3;" (assignment_expression "uVar19 = 0x18b3" identifier = number_literal) ;) (if_statement "if (*piVar5 == 9) goto LAB_0001fdd8;" if (parenthesized_expression "(*piVar5 == 9)" ( (binary_expression "*piVar5 == 9" (pointer_expression "*piVar5" * identifier) == number_literal) )) (goto_statement "goto LAB_0001fdd8;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar23)" ( identifier )))) ;) (expression_statement "uVar19 = 0x18b4;" (assignment_expression "uVar19 = 0x18b4" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (daemon->worker_pool == (MHD_Daemon *)0x0) goto LAB_0001f860;" if (parenthesized_expression "(daemon->worker_pool == (MHD_Daemon *)0x0)" ( (binary_expression "daemon->worker_pool == (MHD_Daemon *)0x0" (field_expression "daemon->worker_pool" identifier -> field_identifier) == (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_0003f2f8)();" (call_expression "(*(code *)PTR_free_0003f2f8)()" (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 "()" ( ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "pMVar6 = (MHD_mutex_ *)0x0;" (assignment_expression "pMVar6 = (MHD_mutex_ *)0x0" identifier = (cast_expression "(MHD_mutex_ *)0x0" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_0003f084 + -0x4cc8)" identifier = (cast_expression "(code *)(PTR_LAB_0003f084 + -0x4cc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003f084 + -0x4cc8)" ( (binary_expression "PTR_LAB_0003f084 + -0x4cc8" identifier + number_literal) )))) ;) (expression_statement "start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000);" (assignment_expression "start_routine = (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000)" identifier = (call_expression "(MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000)" (parenthesized_expression "(MHD_THREAD_START_ROUTINE_)" ( identifier )) (argument_list "(PTR_LAB_0003f084 + -6000)" ( (binary_expression "PTR_LAB_0003f084 + -6000" identifier + number_literal) )))) ;) (do_statement "do {\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      } while( true );" do (compound_statement "{\n        pMVar9 = pMVar9 + (int)pMVar6;\n        pMVar10 = pMVar9;\n        pMVar14 = daemon;\n        do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);\n        *(MHD_Connection **)pMVar10 = *ppMVar15;\n        pMVar9->master = daemon;\n        pMVar9->worker_pool_size = 0;\n        pMVar9->worker_pool = (MHD_Daemon *)0x0;\n        if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        (pMVar9->itc).fd = -1;\nLAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }\n        if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);\n        if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);\n        if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);\n        if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;\n        pMVar9 = daemon->worker_pool;\n      }" { (expression_statement "pMVar9 = pMVar9 + (int)pMVar6;" (assignment_expression "pMVar9 = pMVar9 + (int)pMVar6" identifier = (binary_expression "pMVar9 + (int)pMVar6" identifier + (cast_expression "(int)pMVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pMVar10 = pMVar9;" (assignment_expression "pMVar10 = pMVar9" identifier = identifier) ;) (expression_statement "pMVar14 = daemon;" (assignment_expression "pMVar14 = daemon" identifier = identifier) ;) (do_statement "do {\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        } while (ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size);" do (compound_statement "{\n          ppMVar15 = &pMVar14->suspended_connections_head;\n          pvVar21 = pMVar14->default_handler_cls;\n          pMVar20 = pMVar14->connections_head;\n          pMVar18 = pMVar14->connections_tail;\n          pMVar10->default_handler = pMVar14->default_handler;\n          pMVar10->default_handler_cls = pvVar21;\n          pMVar10->connections_head = pMVar20;\n          pMVar10->connections_tail = pMVar18;\n          pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;\n          pMVar14 = (MHD_Daemon *)ppMVar15;\n        }" { (expression_statement "ppMVar15 = &pMVar14->suspended_connections_head;" (assignment_expression "ppMVar15 = &pMVar14->suspended_connections_head" identifier = (pointer_expression "&pMVar14->suspended_connections_head" & (field_expression "pMVar14->suspended_connections_head" identifier -> field_identifier))) ;) (expression_statement "pvVar21 = pMVar14->default_handler_cls;" (assignment_expression "pvVar21 = pMVar14->default_handler_cls" identifier = (field_expression "pMVar14->default_handler_cls" identifier -> field_identifier)) ;) (expression_statement "pMVar20 = pMVar14->connections_head;" (assignment_expression "pMVar20 = pMVar14->connections_head" identifier = (field_expression "pMVar14->connections_head" identifier -> field_identifier)) ;) (expression_statement "pMVar18 = pMVar14->connections_tail;" (assignment_expression "pMVar18 = pMVar14->connections_tail" identifier = (field_expression "pMVar14->connections_tail" identifier -> field_identifier)) ;) (expression_statement "pMVar10->default_handler = pMVar14->default_handler;" (assignment_expression "pMVar10->default_handler = pMVar14->default_handler" (field_expression "pMVar10->default_handler" identifier -> field_identifier) = (field_expression "pMVar14->default_handler" identifier -> field_identifier)) ;) (expression_statement "pMVar10->default_handler_cls = pvVar21;" (assignment_expression "pMVar10->default_handler_cls = pvVar21" (field_expression "pMVar10->default_handler_cls" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar10->connections_head = pMVar20;" (assignment_expression "pMVar10->connections_head = pMVar20" (field_expression "pMVar10->connections_head" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar10->connections_tail = pMVar18;" (assignment_expression "pMVar10->connections_tail = pMVar18" (field_expression "pMVar10->connections_tail" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head;" (assignment_expression "pMVar10 = (MHD_Daemon *)&pMVar10->suspended_connections_head" identifier = (cast_expression "(MHD_Daemon *)&pMVar10->suspended_connections_head" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pMVar10->suspended_connections_head" & (field_expression "pMVar10->suspended_connections_head" identifier -> field_identifier)))) ;) (expression_statement "pMVar14 = (MHD_Daemon *)ppMVar15;" (assignment_expression "pMVar14 = (MHD_Daemon *)ppMVar15" identifier = (cast_expression "(MHD_Daemon *)ppMVar15" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size)" ( (binary_expression "ppMVar15 != (MHD_Connection **)&daemon->listen_backlog_size" identifier != (cast_expression "(MHD_Connection **)&daemon->listen_backlog_size" ( (type_descriptor "MHD_Connection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&daemon->listen_backlog_size" & (field_expression "daemon->listen_backlog_size" identifier -> field_identifier)))) )) ;) (expression_statement "*(MHD_Connection **)pMVar10 = *ppMVar15;" (assignment_expression "*(MHD_Connection **)pMVar10 = *ppMVar15" (pointer_expression "*(MHD_Connection **)pMVar10" * (cast_expression "(MHD_Connection **)pMVar10" ( (type_descriptor "MHD_Connection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "*ppMVar15" * identifier)) ;) (expression_statement "pMVar9->master = daemon;" (assignment_expression "pMVar9->master = daemon" (field_expression "pMVar9->master" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar9->worker_pool_size = 0;" (assignment_expression "pMVar9->worker_pool_size = 0" (field_expression "pMVar9->worker_pool_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar9->worker_pool = (MHD_Daemon *)0x0;" (assignment_expression "pMVar9->worker_pool = (MHD_Daemon *)0x0" (field_expression "pMVar9->worker_pool" identifier -> field_identifier) = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }" if (parenthesized_expression "((daemon->options & MHD_USE_ITC) != MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_ITC) != MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_ITC)" ( (binary_expression "daemon->options & MHD_USE_ITC" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          (pMVar9->itc).fd = iVar3;\n          if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }" { (expression_statement "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);" (assignment_expression "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080)" identifier = (call_expression "(*(code *)PTR_eventfd_0003f180)(0,0x80080)" (parenthesized_expression "(*(code *)PTR_eventfd_0003f180)" ( (pointer_expression "*(code *)PTR_eventfd_0003f180" * (cast_expression "(code *)PTR_eventfd_0003f180" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x80080)" ( number_literal , number_literal )))) ;) (expression_statement "(pMVar9->itc).fd = iVar3;" (assignment_expression "(pMVar9->itc).fd = iVar3" (field_expression "(pMVar9->itc).fd" (parenthesized_expression "(pMVar9->itc)" ( (field_expression "pMVar9->itc" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (iVar3 == -1) {\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }\n          else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);\n          }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2af4,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2af4" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }" else (compound_statement "{\n            if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;\n            MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);\n            if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;\n          }" { (if_statement "if (((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               ) goto LAB_00020648;" if (parenthesized_expression "(((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)\n               )" ( (binary_expression "((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG) || (iVar3 < 0x400)" (parenthesized_expression "((daemon->options & (MHD_USE_EPOLL|MHD_USE_POLL)) != MHD_NO_FLAG)" ( (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) )) || (parenthesized_expression "(iVar3 < 0x400)" ( (binary_expression "iVar3 < 0x400" identifier < number_literal) ))) )) (goto_statement "goto LAB_00020648;" goto statement_identifier ;)) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2ab4)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2ab4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ab4" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)((pMVar9->itc).fd)" identifier = (call_expression "(*(code *)PTR_close_0003f158)((pMVar9->itc).fd)" (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 "((pMVar9->itc).fd)" ( (field_expression "(pMVar9->itc).fd" (parenthesized_expression "(pMVar9->itc)" ( (field_expression "pMVar9->itc" identifier -> field_identifier) )) . field_identifier) )))) ;) (if_statement "if ((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))\n            goto LAB_00020b10;" if (parenthesized_expression "((iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9))" ( (binary_expression "(iVar3 == 0) &&\n               (piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9)" ( (comma_expression "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar5 == 9" (assignment_expression "piVar5 = (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 "*piVar5 == 9" (pointer_expression "*piVar5" * identifier) == number_literal)) ))) )) (goto_statement "goto LAB_00020b10;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00020770:\n          pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;" statement_identifier : (expression_statement "pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac;" (assignment_expression "pcVar24 = (code *)PTR_MHD_stop_daemon_0003f1ac" identifier = (cast_expression "(code *)PTR_MHD_stop_daemon_0003f1ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (pMVar6 != (MHD_mutex_ *)0x0) goto LAB_0001f93c;" if (parenthesized_expression "(pMVar6 != (MHD_mutex_ *)0x0)" ( (binary_expression "pMVar6 != (MHD_mutex_ *)0x0" identifier != (cast_expression "(MHD_mutex_ *)0x0" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f93c;" goto statement_identifier ;)) (goto_statement "goto LAB_00020778;" goto statement_identifier ;) })) (expression_statement "(pMVar9->itc).fd = -1;" (assignment_expression "(pMVar9->itc).fd = -1" (field_expression "(pMVar9->itc).fd" (parenthesized_expression "(pMVar9->itc)" ( (field_expression "pMVar9->itc" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (labeled_statement "LAB_00020648:\n        if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }" statement_identifier : (if_statement "if (pMVar6 < (undefined1 *)(uVar8 % uVar16)) {\n          pMVar9->connection_limit = uVar25 + 1;\n        }\n        else {\n          pMVar9->connection_limit = uVar25;\n        }" if (parenthesized_expression "(pMVar6 < (undefined1 *)(uVar8 % uVar16))" ( (binary_expression "pMVar6 < (undefined1 *)(uVar8 % uVar16)" identifier < (cast_expression "(undefined1 *)(uVar8 % uVar16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 % uVar16)" ( (binary_expression "uVar8 % uVar16" identifier % identifier) )))) )) (compound_statement "{\n          pMVar9->connection_limit = uVar25 + 1;\n        }" { (expression_statement "pMVar9->connection_limit = uVar25 + 1;" (assignment_expression "pMVar9->connection_limit = uVar25 + 1" (field_expression "pMVar9->connection_limit" identifier -> field_identifier) = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          pMVar9->connection_limit = uVar25;\n        }" else (compound_statement "{\n          pMVar9->connection_limit = uVar25;\n        }" { (expression_statement "pMVar9->connection_limit = uVar25;" (assignment_expression "pMVar9->connection_limit = uVar25" (field_expression "pMVar9->connection_limit" identifier -> field_identifier) = identifier) ;) })))) (if_statement "if (((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)) goto LAB_00020770;" if (parenthesized_expression "(((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1))" ( (binary_expression "((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG) &&\n           (iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)" (parenthesized_expression "((daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_EPOLL) != MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_EPOLL)" ( (binary_expression "daemon->options & MHD_USE_EPOLL" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )) && (parenthesized_expression "(iVar3 = (*pcVar24)(pMVar9), iVar3 != 1)" ( (comma_expression "iVar3 = (*pcVar24)(pMVar9), iVar3 != 1" (assignment_expression "iVar3 = (*pcVar24)(pMVar9)" identifier = (call_expression "(*pcVar24)(pMVar9)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pMVar9)" ( identifier )))) , (binary_expression "iVar3 != 1" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00020770;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(&pMVar9->cleanup_connection_mutex,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&pMVar9->cleanup_connection_mutex,0)" ( (pointer_expression "&pMVar9->cleanup_connection_mutex" & (field_expression "pMVar9->cleanup_connection_mutex" identifier -> field_identifier)) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }" { (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a5c)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2a5c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2a5c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00020770;" goto statement_identifier ;) })) (expression_statement "iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9);" (assignment_expression "iVar3 = MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9)" identifier = (call_expression "MHD_create_named_thread_\n                          (&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9)" identifier (argument_list "(&pMVar9->pid,puVar1 + -0x2a28,daemon->thread_stack_size,start_routine,\n                           pMVar9)" ( (pointer_expression "&pMVar9->pid" & (field_expression "pMVar9->pid" identifier -> field_identifier)) , (binary_expression "puVar1 + -0x2a28" identifier + number_literal) , (field_expression "daemon->thread_stack_size" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar11 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);\n          MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);\n          uVar19 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }" { (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 "()" ( ))))) ;) (expression_statement "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)(*puVar11)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar11)" (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 "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2a1c,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2a1c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(&pMVar9->cleanup_connection_mutex)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&pMVar9->cleanup_connection_mutex)" ( (pointer_expression "&pMVar9->cleanup_connection_mutex" & (field_expression "pMVar9->cleanup_connection_mutex" identifier -> field_identifier)) )))) ;) (expression_statement "uVar19 = 0x189b;" (assignment_expression "uVar19 = 0x189b" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (goto_statement "goto LAB_00020770;" goto statement_identifier ;) })) (expression_statement "pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1);" (assignment_expression "pMVar6 = (MHD_mutex_ *)((int)pMVar6 + 1)" identifier = (cast_expression "(MHD_mutex_ *)((int)pMVar6 + 1)" ( (type_descriptor "MHD_mutex_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pMVar6 + 1)" ( (binary_expression "(int)pMVar6 + 1" (cast_expression "(int)pMVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((undefined1 *)daemon->worker_pool_size <= pMVar6) goto LAB_0001fcdc;" if (parenthesized_expression "((undefined1 *)daemon->worker_pool_size <= pMVar6)" ( (binary_expression "(undefined1 *)daemon->worker_pool_size <= pMVar6" (cast_expression "(undefined1 *)daemon->worker_pool_size" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "daemon->worker_pool_size" identifier -> field_identifier)) <= identifier) )) (goto_statement "goto LAB_0001fcdc;" goto statement_identifier ;)) (expression_statement "pMVar9 = daemon->worker_pool;" (assignment_expression "pMVar9 = daemon->worker_pool" identifier = (field_expression "daemon->worker_pool" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG) {\n      pcVar17 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      pcVar17 = PTR_DAT_0003f05c + -0x3010;\n    }" if (parenthesized_expression "((MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG)" ( (binary_expression "(MVar22 & MHD_USE_THREAD_PER_CONNECTION) == MHD_NO_FLAG" (parenthesized_expression "(MVar22 & MHD_USE_THREAD_PER_CONNECTION)" ( (binary_expression "MVar22 & MHD_USE_THREAD_PER_CONNECTION" identifier & identifier) )) == identifier) )) (compound_statement "{\n      pcVar17 = PTR_DAT_0003f05c + -0x3004;\n    }" { (expression_statement "pcVar17 = PTR_DAT_0003f05c + -0x3004;" (assignment_expression "pcVar17 = PTR_DAT_0003f05c + -0x3004" identifier = (binary_expression "PTR_DAT_0003f05c + -0x3004" identifier + number_literal)) ;) }) (else_clause "else {\n      pcVar17 = PTR_DAT_0003f05c + -0x3010;\n    }" else (compound_statement "{\n      pcVar17 = PTR_DAT_0003f05c + -0x3010;\n    }" { (expression_statement "pcVar17 = PTR_DAT_0003f05c + -0x3010;" (assignment_expression "pcVar17 = PTR_DAT_0003f05c + -0x3010" identifier = (binary_expression "PTR_DAT_0003f05c + -0x3010" identifier + number_literal)) ;) }))) (expression_statement "iVar3 = MHD_create_named_thread_\n                      (&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon);" (assignment_expression "iVar3 = MHD_create_named_thread_\n                      (&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon)" identifier = (call_expression "MHD_create_named_thread_\n                      (&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon)" identifier (argument_list "(&daemon->pid,pcVar17,daemon->thread_stack_size,\n                       (MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000),daemon)" ( (pointer_expression "&daemon->pid" & (field_expression "daemon->pid" identifier -> field_identifier)) , identifier , (field_expression "daemon->thread_stack_size" identifier -> field_identifier) , (call_expression "(MHD_THREAD_START_ROUTINE_)(PTR_LAB_0003f084 + -6000)" (parenthesized_expression "(MHD_THREAD_START_ROUTINE_)" ( identifier )) (argument_list "(PTR_LAB_0003f084 + -6000)" ( (binary_expression "PTR_LAB_0003f084 + -6000" identifier + number_literal) ))) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n      uVar19 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n      uVar19 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = (pMVar6->__data).__lock;\n      uVar19 = 0x183a;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();\n      uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);\n      uVar19 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);\n      uVar19 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(flags);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = (pMVar6->__data).__lock;\n      uVar19 = 0x183a;\n      goto joined_r0x00020848;\n    }" { (expression_statement "pMVar6 = (MHD_mutex_ *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "pMVar6 = (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 "uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock);" (assignment_expression "uVar19 = (*(code *)PTR_strerror_0003f254)((pMVar6->__data).__lock)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)((pMVar6->__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 "((pMVar6->__data).__lock)" ( (field_expression "(pMVar6->__data).__lock" (parenthesized_expression "(pMVar6->__data)" ( (field_expression "pMVar6->__data" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2b18,uVar19)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b18" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(&daemon->cleanup_connection_mutex)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&daemon->cleanup_connection_mutex)" ( (pointer_expression "&daemon->cleanup_connection_mutex" & (field_expression "daemon->cleanup_connection_mutex" identifier -> field_identifier)) )))) ;) (expression_statement "uVar19 = 0x1837;" (assignment_expression "uVar19 = 0x1837" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(pMVar23)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pMVar23)" ( identifier )))) ;) (expression_statement "uVar19 = 0x1838;" (assignment_expression "uVar19 = 0x1838" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (flags == ~MHD_NO_FLAG) goto LAB_0001f860;" if (parenthesized_expression "(flags == ~MHD_NO_FLAG)" ( (binary_expression "flags == ~MHD_NO_FLAG" identifier == (unary_expression "~MHD_NO_FLAG" ~ identifier)) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(flags);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = (pMVar6->__data).__lock;" (assignment_expression "iVar3 = (pMVar6->__data).__lock" identifier = (field_expression "(pMVar6->__data).__lock" (parenthesized_expression "(pMVar6->__data)" ( (field_expression "pMVar6->__data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar19 = 0x183a;" (assignment_expression "uVar19 = 0x183a" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001fcdc:\n  daemon->https_key_password = (char *)0x0;" statement_identifier : (expression_statement "daemon->https_key_password = (char *)0x0;" (assignment_expression "daemon->https_key_password = (char *)0x0" (field_expression "daemon->https_key_password" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pMVar9 = daemon;" (assignment_expression "pMVar9 = daemon" identifier = identifier) ;) (labeled_statement "LAB_0001f950:\n  if (iVar12 == *(int *)puVar2) {\n    return pMVar9;\n  }" statement_identifier : (if_statement "if (iVar12 == *(int *)puVar2) {\n    return pMVar9;\n  }" if (parenthesized_expression "(iVar12 == *(int *)puVar2)" ( (binary_expression "iVar12 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pMVar9;\n  }" { (return_statement "return pMVar9;" 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 "daemon = pMVar9;" (assignment_expression "daemon = pMVar9" identifier = identifier) ;) (labeled_statement "LAB_00020ae0:\n  uVar19 = 0x18dc;" statement_identifier : (expression_statement "uVar19 = 0x18dc;" (assignment_expression "uVar19 = 0x18dc" identifier = number_literal) ;)) (labeled_statement "LAB_0002025c:\n  (**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n             PTR_DAT_0003f05c + -0x302c);" statement_identifier : (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n             PTR_DAT_0003f05c + -0x302c);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n             PTR_DAT_0003f05c + -0x302c)" (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,uVar19,\n             PTR_DAT_0003f05c + -0x302c)" ( (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 + -0x302c" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(flags);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(flags);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(flags)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(flags)" (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 "(flags)" ( identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n    iVar3 = (pMVar6->__data).__lock;\n    uVar19 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = (pMVar6->__data).__lock;\n    uVar19 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }" { (expression_statement "iVar3 = (pMVar6->__data).__lock;" (assignment_expression "iVar3 = (pMVar6->__data).__lock" identifier = (field_expression "(pMVar6->__data).__lock" (parenthesized_expression "(pMVar6->__data)" ( (field_expression "pMVar6->__data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar19 = 0x17cd;" (assignment_expression "uVar19 = 0x17cd" identifier = number_literal) ;) (labeled_statement "joined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);\n    }" statement_identifier : (if_statement "if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);\n    }" if (parenthesized_expression "(iVar3 == 9)" ( (binary_expression "iVar3 == 9" identifier == number_literal) )) (compound_statement "{\nLAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);\n    }" { (labeled_statement "LAB_0001fdd8:\n      (**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\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,uVar19,\n                 PTR_DAT_0003f05c + -0x3950);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n                (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\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,uVar19,\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) ))) ;)) (labeled_statement "LAB_0001fdf8:\n      MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);" statement_identifier : (expression_statement "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78);" (call_expression "MHD_DLOG(daemon,PTR_DAT_0003f05c + -0x2c78)" identifier (argument_list "(daemon,PTR_DAT_0003f05c + -0x2c78)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c78" identifier + number_literal) ))) ;)) }))) })) (labeled_statement "LAB_0001f860:\n  iVar3 = daemon->epoll_fd;" statement_identifier : (expression_statement "iVar3 = daemon->epoll_fd;" (assignment_expression "iVar3 = daemon->epoll_fd" identifier = (field_expression "daemon->epoll_fd" identifier -> field_identifier)) ;)) (if_statement "if (daemon->upgrade_fd_in_epoll == false) goto LAB_0001f86c;" if (parenthesized_expression "(daemon->upgrade_fd_in_epoll == false)" ( (binary_expression "daemon->upgrade_fd_in_epoll == false" (field_expression "daemon->upgrade_fd_in_epoll" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_0001f86c;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,daemon->epoll_upgrade_fd,0);" (assignment_expression "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,daemon->epoll_upgrade_fd,0)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,daemon->epoll_upgrade_fd,0)" (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 "(iVar3,2,daemon->epoll_upgrade_fd,0)" ( identifier , number_literal , (field_expression "daemon->epoll_upgrade_fd" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n    iVar3 = daemon->epoll_fd;\n    daemon->upgrade_fd_in_epoll = false;\n    goto LAB_0001f86c;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = daemon->epoll_fd;\n    daemon->upgrade_fd_in_epoll = false;\n    goto LAB_0001f86c;\n  }" { (expression_statement "iVar3 = daemon->epoll_fd;" (assignment_expression "iVar3 = daemon->epoll_fd" identifier = (field_expression "daemon->epoll_fd" identifier -> field_identifier)) ;) (expression_statement "daemon->upgrade_fd_in_epoll = false;" (assignment_expression "daemon->upgrade_fd_in_epoll = false" (field_expression "daemon->upgrade_fd_in_epoll" identifier -> field_identifier) = false) ;) (goto_statement "goto LAB_0001f86c;" goto statement_identifier ;) })) (expression_statement "(**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);" (call_expression "(**(code **)PTR_mhd_panic_0003f070)\n            (*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40)" (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,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40)" ( (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 + -0x4f40" identifier + number_literal) ))) ;) (labeled_statement "LAB_00020b10:\n  uVar19 = 0x1871;" statement_identifier : (expression_statement "uVar19 = 0x1871;" (assignment_expression "uVar19 = 0x1871" identifier = number_literal) ;)) (goto_statement "goto LAB_0001f91c;" goto statement_identifier ;) (labeled_statement "LAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" statement_identifier : (if_statement "if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_close_0003f158)();\n  }" { (expression_statement "(*(code *)PTR_close_0003f158)();" (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( ))) ;) }))) (if_statement "if (daemon->epoll_upgrade_fd != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" if (parenthesized_expression "(daemon->epoll_upgrade_fd != -1)" ( (binary_expression "daemon->epoll_upgrade_fd != -1" (field_expression "daemon->epoll_upgrade_fd" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_close_0003f158)();\n  }" { (expression_statement "(*(code *)PTR_close_0003f158)();" (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(daemon->nnc);" (call_expression "(*(code *)PTR_free_0003f2f8)(daemon->nnc)" (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 "(daemon->nnc)" ( (field_expression "daemon->nnc" identifier -> field_identifier) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(dh);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(dh)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(dh)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dh)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto code_r0x0001f8c8;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001f8c8;" goto statement_identifier ;)) (goto_statement "goto LAB_00020ae0;" goto statement_identifier ;) (labeled_statement "code_r0x0001f8c8:\n  if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n  }" statement_identifier : (if_statement "if ((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n  }" if (parenthesized_expression "((daemon->options & MHD_USE_SSL) != MHD_NO_FLAG)" ( (binary_expression "(daemon->options & MHD_USE_SSL) != MHD_NO_FLAG" (parenthesized_expression "(daemon->options & MHD_USE_SSL)" ( (binary_expression "daemon->options & MHD_USE_SSL" (field_expression "daemon->options" identifier -> field_identifier) & identifier) )) != identifier) )) (compound_statement "{\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);\n  }" { (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(daemon->priority_cache)" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(daemon->priority_cache)" ( (field_expression "daemon->priority_cache" identifier -> field_identifier) ))) ;) }))) (if_statement "if (((daemon->itc).fd != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = 0x18e4;\n    if (*piVar5 == 9) {\nLAB_0001f91c:\n      pcVar24 = *(code **)PTR_mhd_panic_0003f070;\n      (*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      daemon->worker_pool_size = (uint)pMVar6;\n      (*pcVar24)(daemon);\nLAB_0001f94c:\n      pMVar9 = (MHD_Daemon *)0x0;\n      goto LAB_0001f950;\n    }\n  }" if (parenthesized_expression "(((daemon->itc).fd != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0))" ( (binary_expression "((daemon->itc).fd != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)" (parenthesized_expression "((daemon->itc).fd != -1)" ( (binary_expression "(daemon->itc).fd != -1" (field_expression "(daemon->itc).fd" (parenthesized_expression "(daemon->itc)" ( (field_expression "daemon->itc" identifier -> field_identifier) )) . field_identifier) != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)()" identifier = (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar19 = 0x18e4;\n    if (*piVar5 == 9) {\nLAB_0001f91c:\n      pcVar24 = *(code **)PTR_mhd_panic_0003f070;\n      (*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      daemon->worker_pool_size = (uint)pMVar6;\n      (*pcVar24)(daemon);\nLAB_0001f94c:\n      pMVar9 = (MHD_Daemon *)0x0;\n      goto LAB_0001f950;\n    }\n  }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "piVar5 = (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 "uVar19 = 0x18e4;" (assignment_expression "uVar19 = 0x18e4" identifier = number_literal) ;) (if_statement "if (*piVar5 == 9) {\nLAB_0001f91c:\n      pcVar24 = *(code **)PTR_mhd_panic_0003f070;\n      (*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      daemon->worker_pool_size = (uint)pMVar6;\n      (*pcVar24)(daemon);\nLAB_0001f94c:\n      pMVar9 = (MHD_Daemon *)0x0;\n      goto LAB_0001f950;\n    }" if (parenthesized_expression "(*piVar5 == 9)" ( (binary_expression "*piVar5 == 9" (pointer_expression "*piVar5" * identifier) == number_literal) )) (compound_statement "{\nLAB_0001f91c:\n      pcVar24 = *(code **)PTR_mhd_panic_0003f070;\n      (*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      daemon->worker_pool_size = (uint)pMVar6;\n      (*pcVar24)(daemon);\nLAB_0001f94c:\n      pMVar9 = (MHD_Daemon *)0x0;\n      goto LAB_0001f950;\n    }" { (labeled_statement "LAB_0001f91c:\n      pcVar24 = *(code **)PTR_mhd_panic_0003f070;" statement_identifier : (expression_statement "pcVar24 = *(code **)PTR_mhd_panic_0003f070;" (assignment_expression "pcVar24 = *(code **)PTR_mhd_panic_0003f070" identifier = (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))) ;)) (expression_statement "(*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044);" (call_expression "(*pcVar24)(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(*(undefined4 *)PTR_mhd_panic_cls_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar19,\n                 PTR_DAT_0003f05c + -0x3044)" ( (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 + -0x3044" identifier + number_literal) ))) ;) (labeled_statement "LAB_0001f93c:\n      daemon->worker_pool_size = (uint)pMVar6;" statement_identifier : (expression_statement "daemon->worker_pool_size = (uint)pMVar6;" (assignment_expression "daemon->worker_pool_size = (uint)pMVar6" (field_expression "daemon->worker_pool_size" identifier -> field_identifier) = (cast_expression "(uint)pMVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "(*pcVar24)(daemon);" (call_expression "(*pcVar24)(daemon)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(daemon)" ( identifier ))) ;) (labeled_statement "LAB_0001f94c:\n      pMVar9 = (MHD_Daemon *)0x0;" statement_identifier : (expression_statement "pMVar9 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar9 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(daemon);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003f2f8)(daemon);" (call_expression "(*(code *)PTR_free_0003f2f8)(daemon)" (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 "(daemon)" ( identifier ))) ;)) (expression_statement "pMVar9 = (MHD_Daemon *)0x0;" (assignment_expression "pMVar9 = (MHD_Daemon *)0x0" identifier = (cast_expression "(MHD_Daemon *)0x0" ( (type_descriptor "MHD_Daemon *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })))
(translation_unit "undefined4 *\nMHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined2 uVar14;\n  uint uVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 local_f4;\n  undefined2 *local_f0;\n  uint local_ec;\n  int local_e8;\n  undefined4 local_e4;\n  int *local_e0;\n  undefined4 local_dc;\n  undefined2 local_d8;\n  undefined2 local_d6;\n  undefined4 local_d4;\n  undefined4 local_d0;\n  undefined4 local_cc;\n  undefined2 local_c8;\n  undefined2 local_c6;\n  undefined4 local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  undefined4 local_b0;\n  short local_ac;\n  undefined2 local_aa;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  local_f4 = 1;\n  local_f0 = (undefined2 *)0x0;\n  if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }\n  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;\n  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;\n  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;\n  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;\n  if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }\n  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;\n  uVar15 = param_1 & 2;\n  puVar2[0x43] = 0;\n  puVar2[0x33] = 0xffffffff;\n  puVar2[0x35] = 0xffffffff;\n  if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  puVar2[0x32] = 0;\n  puVar2[0x3e] = param_1;\n  puVar2[0x3b] = 0x3fc;\n  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;\n  puVar2[0x1f] = 0x8000;\n  puVar2[0x31] = 0xffffffff;\n  puVar2[0x20] = 0x400;\n  puVar10 = PTR_LAB_0003f084;\n  uVar14 = SUB42(param_2,0);\n  *(undefined2 *)(puVar2 + 0x3f) = uVar14;\n  puVar2[0x10] = param_3;\n  puVar2[0x11] = param_4;\n  *puVar2 = param_5;\n  puVar2[0x18] = puVar10 + -0x6eb8;\n  puVar2[1] = param_6;\n  puVar2[0x5c] = 0x80;\n  puVar10 = PTR_vfprintf_0003f1c0;\n  puVar2[0x3a] = 0;\n  puVar2[0x3c] = 0;\n  puVar2[0x1a] = puVar10;\n  puVar10 = PTR_stderr_0003f304;\n  puVar2[0x37] = 0xffffffff;\n  puVar2[0x1b] = *(undefined4 *)puVar10;\n  if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }\n  puVar2[0x59] = 0;\n  puVar2[0x51] = 0;\n  puVar2[0x5a] = 4;\n  if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }\n  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);\n  if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  uVar15 = puVar2[0x3e];\n  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar15 = puVar2[0x5a];\n  if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }\n  param_5 = puVar2 + 0x53;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);\n  if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }\n  uVar15 = puVar2[0x3e];\n  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  param_1 = puVar2[0x31];\n  if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  puVar5 = puVar2 + 0x25;\n  if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  uVar15 = puVar2[0x3e];\n  if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }\n  if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  puVar2[0x4d] = 0;\n  puVar5 = puVar2;\nLAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  puVar2 = puVar5;\nLAB_00020ae0:\n  uVar11 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n  if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = puVar2[0x33];\n  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);\n  if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar11 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }\n  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);\n  puVar5 = (undefined4 *)0x0;\n  goto LAB_0001f950;\n}\n\n" (function_definition "undefined4 *\nMHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined2 uVar14;\n  uint uVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 local_f4;\n  undefined2 *local_f0;\n  uint local_ec;\n  int local_e8;\n  undefined4 local_e4;\n  int *local_e0;\n  undefined4 local_dc;\n  undefined2 local_d8;\n  undefined2 local_d6;\n  undefined4 local_d4;\n  undefined4 local_d0;\n  undefined4 local_cc;\n  undefined2 local_c8;\n  undefined2 local_c6;\n  undefined4 local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  undefined4 local_b0;\n  short local_ac;\n  undefined2 local_aa;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  local_f4 = 1;\n  local_f0 = (undefined2 *)0x0;\n  if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }\n  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;\n  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;\n  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;\n  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;\n  if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }\n  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;\n  uVar15 = param_1 & 2;\n  puVar2[0x43] = 0;\n  puVar2[0x33] = 0xffffffff;\n  puVar2[0x35] = 0xffffffff;\n  if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  puVar2[0x32] = 0;\n  puVar2[0x3e] = param_1;\n  puVar2[0x3b] = 0x3fc;\n  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;\n  puVar2[0x1f] = 0x8000;\n  puVar2[0x31] = 0xffffffff;\n  puVar2[0x20] = 0x400;\n  puVar10 = PTR_LAB_0003f084;\n  uVar14 = SUB42(param_2,0);\n  *(undefined2 *)(puVar2 + 0x3f) = uVar14;\n  puVar2[0x10] = param_3;\n  puVar2[0x11] = param_4;\n  *puVar2 = param_5;\n  puVar2[0x18] = puVar10 + -0x6eb8;\n  puVar2[1] = param_6;\n  puVar2[0x5c] = 0x80;\n  puVar10 = PTR_vfprintf_0003f1c0;\n  puVar2[0x3a] = 0;\n  puVar2[0x3c] = 0;\n  puVar2[0x1a] = puVar10;\n  puVar10 = PTR_stderr_0003f304;\n  puVar2[0x37] = 0xffffffff;\n  puVar2[0x1b] = *(undefined4 *)puVar10;\n  if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }\n  puVar2[0x59] = 0;\n  puVar2[0x51] = 0;\n  puVar2[0x5a] = 4;\n  if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }\n  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);\n  if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  uVar15 = puVar2[0x3e];\n  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar15 = puVar2[0x5a];\n  if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }\n  param_5 = puVar2 + 0x53;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);\n  if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }\n  uVar15 = puVar2[0x3e];\n  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  param_1 = puVar2[0x31];\n  if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  puVar5 = puVar2 + 0x25;\n  if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  uVar15 = puVar2[0x3e];\n  if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }\n  if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  puVar2[0x4d] = 0;\n  puVar5 = puVar2;\nLAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  puVar2 = puVar5;\nLAB_00020ae0:\n  uVar11 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n  if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = puVar2[0x33];\n  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);\n  if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar11 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }\n  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);\n  puVar5 = (undefined4 *)0x0;\n  goto LAB_0001f950;\n}" type_identifier (pointer_declarator "*\nMHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" * (function_declarator "MHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" identifier (parameter_list "(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined2 uVar14;\n  uint uVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 local_f4;\n  undefined2 *local_f0;\n  uint local_ec;\n  int local_e8;\n  undefined4 local_e4;\n  int *local_e0;\n  undefined4 local_dc;\n  undefined2 local_d8;\n  undefined2 local_d6;\n  undefined4 local_d4;\n  undefined4 local_d0;\n  undefined4 local_cc;\n  undefined2 local_c8;\n  undefined2 local_c6;\n  undefined4 local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  undefined4 local_b0;\n  short local_ac;\n  undefined2 local_aa;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  local_f4 = 1;\n  local_f0 = (undefined2 *)0x0;\n  if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }\n  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;\n  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;\n  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;\n  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;\n  if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }\n  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;\n  uVar15 = param_1 & 2;\n  puVar2[0x43] = 0;\n  puVar2[0x33] = 0xffffffff;\n  puVar2[0x35] = 0xffffffff;\n  if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  puVar2[0x32] = 0;\n  puVar2[0x3e] = param_1;\n  puVar2[0x3b] = 0x3fc;\n  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;\n  puVar2[0x1f] = 0x8000;\n  puVar2[0x31] = 0xffffffff;\n  puVar2[0x20] = 0x400;\n  puVar10 = PTR_LAB_0003f084;\n  uVar14 = SUB42(param_2,0);\n  *(undefined2 *)(puVar2 + 0x3f) = uVar14;\n  puVar2[0x10] = param_3;\n  puVar2[0x11] = param_4;\n  *puVar2 = param_5;\n  puVar2[0x18] = puVar10 + -0x6eb8;\n  puVar2[1] = param_6;\n  puVar2[0x5c] = 0x80;\n  puVar10 = PTR_vfprintf_0003f1c0;\n  puVar2[0x3a] = 0;\n  puVar2[0x3c] = 0;\n  puVar2[0x1a] = puVar10;\n  puVar10 = PTR_stderr_0003f304;\n  puVar2[0x37] = 0xffffffff;\n  puVar2[0x1b] = *(undefined4 *)puVar10;\n  if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }\n  puVar2[0x59] = 0;\n  puVar2[0x51] = 0;\n  puVar2[0x5a] = 4;\n  if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }\n  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);\n  if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  uVar15 = puVar2[0x3e];\n  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar15 = puVar2[0x5a];\n  if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }\n  param_5 = puVar2 + 0x53;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);\n  if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }\n  uVar15 = puVar2[0x3e];\n  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  param_1 = puVar2[0x31];\n  if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  puVar5 = puVar2 + 0x25;\n  if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  uVar15 = puVar2[0x3e];\n  if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }\n  if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  puVar2[0x4d] = 0;\n  puVar5 = puVar2;\nLAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  puVar2 = puVar5;\nLAB_00020ae0:\n  uVar11 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n  if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = puVar2[0x33];\n  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);\n  if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar11 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }\n  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);\n  puVar5 = (undefined4 *)0x0;\n  goto LAB_0001f950;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined2 uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 local_f4;" type_identifier identifier ;) (declaration "undefined2 *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "undefined4 local_e4;" type_identifier identifier ;) (declaration "int *local_e0;" primitive_type (pointer_declarator "*local_e0" * identifier) ;) (declaration "undefined4 local_dc;" type_identifier identifier ;) (declaration "undefined2 local_d8;" type_identifier identifier ;) (declaration "undefined2 local_d6;" type_identifier identifier ;) (declaration "undefined4 local_d4;" type_identifier identifier ;) (declaration "undefined4 local_d0;" type_identifier identifier ;) (declaration "undefined4 local_cc;" type_identifier identifier ;) (declaration "undefined2 local_c8;" type_identifier identifier ;) (declaration "undefined2 local_c6;" type_identifier identifier ;) (declaration "undefined4 local_c4;" type_identifier identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "undefined4 local_bc;" type_identifier identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "undefined4 local_b4;" type_identifier identifier ;) (declaration "undefined4 local_b0;" type_identifier identifier ;) (declaration "short local_ac;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined2 local_aa;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0003f2ec" 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))) ;) (expression_statement "local_f4 = 1;" (assignment_expression "local_f4 = 1" identifier = number_literal) ;) (expression_statement "local_f0 = (undefined2 *)0x0;" (assignment_expression "local_f0 = (undefined2 *)0x0" identifier = (cast_expression "(undefined2 *)0x0" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }" if (parenthesized_expression "((param_1 & 0x8000) != 0)" ( (binary_expression "(param_1 & 0x8000) != 0" (parenthesized_expression "(param_1 & 0x8000)" ( (binary_expression "param_1 & 0x8000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    param_1 = param_1 | 0x2400;\n  }" { (expression_statement "param_1 = param_1 | 0x2400;" (assignment_expression "param_1 = param_1 | 0x2400" identifier = (binary_expression "param_1 | 0x2400" identifier | number_literal)) ;) })) (if_statement "if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;" if (parenthesized_expression "(param_5 == (undefined4 *)0x0)" ( (binary_expression "param_5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;" if (parenthesized_expression "((param_1 & 0x240) == 0x240)" ( (binary_expression "(param_1 & 0x240) == 0x240" (parenthesized_expression "(param_1 & 0x240)" ( (binary_expression "param_1 & 0x240" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;" if (parenthesized_expression "((param_1 & 0x204) == 0x204)" ( (binary_expression "(param_1 & 0x204) == 0x204" (parenthesized_expression "(param_1 & 0x204)" ( (binary_expression "param_1 & 0x204" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;" if (parenthesized_expression "((param_1 & 0x4c) == 0x40)" ( (binary_expression "(param_1 & 0x4c) == 0x40" (parenthesized_expression "(param_1 & 0x4c)" ( (binary_expression "param_1 & 0x4c" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }" if (parenthesized_expression "((int)(param_1 << 0xf) < 0)" ( (binary_expression "(int)(param_1 << 0xf) < 0" (cast_expression "(int)(param_1 << 0xf)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 << 0xf)" ( (binary_expression "param_1 << 0xf" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }" { (if_statement "if ((param_1 & 0x240) != 0) goto LAB_0001f94c;" if (parenthesized_expression "((param_1 & 0x240) != 0)" ( (binary_expression "(param_1 & 0x240) != 0" (parenthesized_expression "(param_1 & 0x240)" ( (binary_expression "param_1 & 0x240" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (if_statement "if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }" if (parenthesized_expression "((param_1 & 4) == 0)" ( (binary_expression "(param_1 & 4) == 0" (parenthesized_expression "(param_1 & 4)" ( (binary_expression "param_1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1 = param_1 | 0x200;\n    }" { (expression_statement "param_1 = param_1 | 0x200;" (assignment_expression "param_1 = param_1 | 0x200" identifier = (binary_expression "param_1 | 0x200" identifier | number_literal)) ;) }) (else_clause "else {\n      param_1 = param_1 | 0x40;\n    }" else (compound_statement "{\n      param_1 = param_1 | 0x40;\n    }" { (expression_statement "param_1 = param_1 | 0x40;" (assignment_expression "param_1 = param_1 | 0x40" identifier = (binary_expression "param_1 | 0x40" identifier | number_literal)) ;) }))) })) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_0003f144)(1,0x174)" (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,0x174)" ( number_literal , number_literal ))))) ;) (if_statement "if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;" if (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" ( (binary_expression "puVar2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f94c;" goto statement_identifier ;)) (expression_statement "uVar15 = param_1 & 2;" (assignment_expression "uVar15 = param_1 & 2" identifier = (binary_expression "param_1 & 2" identifier & number_literal)) ;) (expression_statement "puVar2[0x43] = 0;" (assignment_expression "puVar2[0x43] = 0" (subscript_expression "puVar2[0x43]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x33] = 0xffffffff;" (assignment_expression "puVar2[0x33] = 0xffffffff" (subscript_expression "puVar2[0x33]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x35] = 0xffffffff;" (assignment_expression "puVar2[0x35] = 0xffffffff" (subscript_expression "puVar2[0x35]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }" { (expression_statement "(*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);" (call_expression "(*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0)" (parenthesized_expression "(*(code *)PTR_gnutls_priority_init_0003f2e0)" ( (pointer_expression "*(code *)PTR_gnutls_priority_init_0003f2e0" * (cast_expression "(code *)PTR_gnutls_priority_init_0003f2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0)" ( (binary_expression "puVar2 + 0x43" identifier + number_literal) , (binary_expression "PTR_DAT_0003f05c + -0x2ff8" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "puVar2[0x32] = 0;" (assignment_expression "puVar2[0x32] = 0" (subscript_expression "puVar2[0x32]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[0x3b] = 0x3fc;" (assignment_expression "puVar2[0x3b] = 0x3fc" (subscript_expression "puVar2[0x3b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;" (assignment_expression "puVar2[0x40] = (param_1 << 0x1a) >> 0x1f" (subscript_expression "puVar2[0x40]" identifier [ number_literal ]) = (binary_expression "(param_1 << 0x1a) >> 0x1f" (parenthesized_expression "(param_1 << 0x1a)" ( (binary_expression "param_1 << 0x1a" identifier << number_literal) )) >> number_literal)) ;) (expression_statement "puVar2[0x1f] = 0x8000;" (assignment_expression "puVar2[0x1f] = 0x8000" (subscript_expression "puVar2[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x31] = 0xffffffff;" (assignment_expression "puVar2[0x31] = 0xffffffff" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x20] = 0x400;" (assignment_expression "puVar2[0x20] = 0x400" (subscript_expression "puVar2[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10 = PTR_LAB_0003f084;" (assignment_expression "puVar10 = PTR_LAB_0003f084" identifier = identifier) ;) (expression_statement "uVar14 = SUB42(param_2,0);" (assignment_expression "uVar14 = SUB42(param_2,0)" identifier = (call_expression "SUB42(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = uVar14;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = uVar14" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" * (cast_expression "(undefined2 *)(puVar2 + 0x3f)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x3f)" ( (binary_expression "puVar2 + 0x3f" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2[0x10] = param_3;" (assignment_expression "puVar2[0x10] = param_3" (subscript_expression "puVar2[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[0x11] = param_4;" (assignment_expression "puVar2[0x11] = param_4" (subscript_expression "puVar2[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar2 = param_5;" (assignment_expression "*puVar2 = param_5" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[0x18] = puVar10 + -0x6eb8;" (assignment_expression "puVar2[0x18] = puVar10 + -0x6eb8" (subscript_expression "puVar2[0x18]" identifier [ number_literal ]) = (binary_expression "puVar10 + -0x6eb8" identifier + number_literal)) ;) (expression_statement "puVar2[1] = param_6;" (assignment_expression "puVar2[1] = param_6" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[0x5c] = 0x80;" (assignment_expression "puVar2[0x5c] = 0x80" (subscript_expression "puVar2[0x5c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10 = PTR_vfprintf_0003f1c0;" (assignment_expression "puVar10 = PTR_vfprintf_0003f1c0" identifier = identifier) ;) (expression_statement "puVar2[0x3a] = 0;" (assignment_expression "puVar2[0x3a] = 0" (subscript_expression "puVar2[0x3a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x3c] = 0;" (assignment_expression "puVar2[0x3c] = 0" (subscript_expression "puVar2[0x3c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x1a] = puVar10;" (assignment_expression "puVar2[0x1a] = puVar10" (subscript_expression "puVar2[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = PTR_stderr_0003f304;" (assignment_expression "puVar10 = PTR_stderr_0003f304" identifier = identifier) ;) (expression_statement "puVar2[0x37] = 0xffffffff;" (assignment_expression "puVar2[0x37] = 0xffffffff" (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x1b] = *(undefined4 *)puVar10;" (assignment_expression "puVar2[0x1b] = *(undefined4 *)puVar10" (subscript_expression "puVar2[0x1b]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)puVar10" * (cast_expression "(undefined4 *)puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" if (parenthesized_expression "((param_1 & 0xc) == 4)" ( (binary_expression "(param_1 & 0xc) == 4" (parenthesized_expression "(param_1 & 0xc)" ( (binary_expression "param_1 & 0xc" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ff0)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ff0" identifier + number_literal) ))) ;) (expression_statement "param_1 = puVar2[0x3e] | 8;" (assignment_expression "param_1 = puVar2[0x3e] | 8" identifier = (binary_expression "puVar2[0x3e] | 8" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" statement_identifier : (if_statement "if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" if (parenthesized_expression "((param_1 & 0x100) == 0)" ( (binary_expression "(param_1 & 0x100) == 0" (parenthesized_expression "(param_1 & 0x100)" ( (binary_expression "param_1 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar15 = puVar2[0x3e] & 2;\n    }" { (expression_statement "uVar15 = puVar2[0x3e] & 2;" (assignment_expression "uVar15 = puVar2[0x3e] & 2" identifier = (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal)) ;) }) (else_clause "else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" else (compound_statement "{\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" { (expression_statement "puVar2[0x3e] = param_1 | 0x400;" (assignment_expression "puVar2[0x3e] = param_1 | 0x400" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = (binary_expression "param_1 | 0x400" identifier | number_literal)) ;) (expression_statement "uVar15 = param_1 & 2;" (assignment_expression "uVar15 = param_1 & 2" identifier = (binary_expression "param_1 & 2" identifier & number_literal)) ;) })))) }) (else_clause "else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" else (compound_statement "{\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" { (if_statement "if ((param_1 & 8) != 0) goto LAB_0001f9b4;" if (parenthesized_expression "((param_1 & 8) != 0)" ( (binary_expression "(param_1 & 8) != 0" (parenthesized_expression "(param_1 & 8)" ( (binary_expression "param_1 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001f9b4;" goto statement_identifier ;)) (expression_statement "param_1 = param_1 & 0xfffffbff;" (assignment_expression "param_1 = param_1 & 0xfffffbff" identifier = (binary_expression "param_1 & 0xfffffbff" identifier & number_literal)) ;) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar2[0x59] = 0;" (assignment_expression "puVar2[0x59] = 0" (subscript_expression "puVar2[0x59]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x51] = 0;" (assignment_expression "puVar2[0x51] = 0" (subscript_expression "puVar2[0x51]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[0x5a] = 4;" (assignment_expression "puVar2[0x5a] = 4" (subscript_expression "puVar2[0x5a]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar2[0x44] = 1;\n  }" { (expression_statement "puVar2[0x44] = 1;" (assignment_expression "puVar2[0x44] = 1" (subscript_expression "puVar2[0x44]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar3 = FUN_00019160(puVar2,&local_f0,param_7);" (assignment_expression "iVar3 = FUN_00019160(puVar2,&local_f0,param_7)" identifier = (call_expression "FUN_00019160(puVar2,&local_f0,param_7)" identifier (argument_list "(puVar2,&local_f0,param_7)" ( identifier , (pointer_expression "&local_f0" & identifier) , identifier )))) ;) (if_statement "if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }" { (if_statement "if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;" if (parenthesized_expression "((puVar2[0x3e] & 2) == 0)" ( (binary_expression "(puVar2[0x3e] & 2) == 0" (parenthesized_expression "(puVar2[0x3e] & 2)" ( (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;)) (labeled_statement "LAB_0001fc74:\n    iVar3 = puVar2[0x43];" statement_identifier : (expression_statement "iVar3 = puVar2[0x43];" (assignment_expression "iVar3 = puVar2[0x43]" identifier = (subscript_expression "puVar2[0x43]" identifier [ number_literal ])) ;)) (labeled_statement "joined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;" statement_identifier : (if_statement "if (iVar3 == 0) goto LAB_0001fc50;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;))) (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)();" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)()" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;) })) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (if_statement "if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" if (parenthesized_expression "((puVar2[0x12] == 0) || ((uVar15 & 4) == 0))" ( (binary_expression "(puVar2[0x12] == 0) || ((uVar15 & 4) == 0)" (parenthesized_expression "(puVar2[0x12] == 0)" ( (binary_expression "puVar2[0x12] == 0" (subscript_expression "puVar2[0x12]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((uVar15 & 4) == 0)" ( (binary_expression "(uVar15 & 4) == 0" (parenthesized_expression "(uVar15 & 4)" ( (binary_expression "uVar15 & 4" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }" { (if_statement "if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;" if (parenthesized_expression "((uVar15 & 0x400) != 0)" ( (binary_expression "(uVar15 & 0x400) != 0" (parenthesized_expression "(uVar15 & 0x400)" ( (binary_expression "uVar15 & 0x400" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001f9d4;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" else (compound_statement "{\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" { (expression_statement "puVar2[0x3e] = uVar15 | 0x400;" (assignment_expression "puVar2[0x3e] = uVar15 | 0x400" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) = (binary_expression "uVar15 | 0x400" identifier | number_literal)) ;) (labeled_statement "LAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" statement_identifier : (if_statement "if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" if (parenthesized_expression "(puVar2[0x22] == 0)" ( (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);" (assignment_expression "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080)" identifier = (call_expression "(*(code *)PTR_eventfd_0003f180)(0,0x80080)" (parenthesized_expression "(*(code *)PTR_eventfd_0003f180)" ( (pointer_expression "*(code *)PTR_eventfd_0003f180" * (cast_expression "(code *)PTR_eventfd_0003f180" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x80080)" ( number_literal , number_literal )))) ;) (expression_statement "puVar2[0x37] = iVar3;" (assignment_expression "puVar2[0x37] = iVar3" (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2f20" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = puVar2[0x43];" (assignment_expression "iVar3 = puVar2[0x43]" identifier = (subscript_expression "puVar2[0x43]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0002099c;" goto statement_identifier ;) })) (if_statement "if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }" if (parenthesized_expression "(((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3))" ( (binary_expression "((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)" (parenthesized_expression "((puVar2[0x3e] & 0x240) == 0)" ( (binary_expression "(puVar2[0x3e] & 0x240) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" ( (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(0x3ff < iVar3)" ( (binary_expression "0x3ff < iVar3" number_literal < identifier) ))) )) (compound_statement "{\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ee4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ee4" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37])" identifier = (call_expression "(*(code *)PTR_close_0003f158)(puVar2[0x37])" (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 "(puVar2[0x37])" ( (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\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 "uVar11 = 0x1636;" (assignment_expression "uVar11 = 0x1636" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001f91c;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001f91c;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0001fc74;" goto statement_identifier ;) })) }))) }))) (expression_statement "uVar15 = puVar2[0x5a];" (assignment_expression "uVar15 = puVar2[0x5a]" identifier = (subscript_expression "puVar2[0x5a]" identifier [ number_literal ])) ;) (if_statement "if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }" { (if_statement "if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }" if (parenthesized_expression "(uVar15 != (uVar15 * 0x98) / 0x98)" ( (binary_expression "uVar15 != (uVar15 * 0x98) / 0x98" identifier != (binary_expression "(uVar15 * 0x98) / 0x98" (parenthesized_expression "(uVar15 * 0x98)" ( (binary_expression "uVar15 * 0x98" identifier * number_literal) )) / number_literal)) )) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e94)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e94" identifier + number_literal) ))) ;) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;" statement_identifier : (if_statement "if ((uVar15 & 2) == 0) goto LAB_0001fc50;" if (parenthesized_expression "((uVar15 & 2) == 0)" ( (binary_expression "(uVar15 & 2) == 0" (parenthesized_expression "(uVar15 & 2)" ( (binary_expression "uVar15 & 2" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;))) (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x43])" ( (subscript_expression "puVar2[0x43]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_0001fc50;" goto statement_identifier ;) })) (expression_statement "iVar3 = (*(code *)PTR_malloc_0003f25c)();" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0003f25c)()" identifier = (call_expression "(*(code *)PTR_malloc_0003f25c)()" (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 "()" ( )))) ;) (expression_statement "puVar2[0x52] = iVar3;" (assignment_expression "puVar2[0x52] = iVar3" (subscript_expression "puVar2[0x52]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e6c" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0001fc44;" goto statement_identifier ;) })) })) (expression_statement "param_5 = puVar2 + 0x53;" (assignment_expression "param_5 = puVar2 + 0x53" identifier = (binary_expression "puVar2 + 0x53" identifier + number_literal)) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e3c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e3c" identifier + number_literal) ))) ;) (if_statement "if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }" if (parenthesized_expression "((puVar2[0x3e] & 2) != 0)" ( (binary_expression "(puVar2[0x3e] & 2) != 0" (parenthesized_expression "(puVar2[0x3e] & 2)" ( (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }" { (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x43])" ( (subscript_expression "puVar2[0x43]" identifier [ number_literal ]) ))) ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2[0x52]);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2[0x52])" (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 "(puVar2[0x52])" ( (subscript_expression "puVar2[0x52]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2)" (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 "(puVar2)" ( identifier ))) ;) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (if_statement "if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }" if (parenthesized_expression "(((uVar15 & 8) == 0) && (puVar2[0x22] != 0))" ( (binary_expression "((uVar15 & 8) == 0) && (puVar2[0x22] != 0)" (parenthesized_expression "((uVar15 & 8) == 0)" ( (binary_expression "(uVar15 & 8) == 0" (parenthesized_expression "(uVar15 & 8)" ( (binary_expression "uVar15 & 8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(puVar2[0x22] != 0)" ( (binary_expression "puVar2[0x22] != 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e10)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2e10" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "param_1 = puVar2[0x31];" (assignment_expression "param_1 = puVar2[0x31]" identifier = (subscript_expression "puVar2[0x31]" identifier [ number_literal ])) ;) (if_statement "if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }" { (if_statement "if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }" if (parenthesized_expression "((uVar15 & 0x100) == 0)" ( (binary_expression "(uVar15 & 0x100) == 0" (parenthesized_expression "(uVar15 & 0x100)" ( (binary_expression "uVar15 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }" { (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" identifier = number_literal) ;) (if_statement "if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }" if (parenthesized_expression "((uVar15 & 0x10) == 0)" ( (binary_expression "(uVar15 & 0x10) == 0" (parenthesized_expression "(uVar15 & 0x10)" ( (binary_expression "uVar15 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar11 = 2;\n      }" { (expression_statement "uVar11 = 2;" (assignment_expression "uVar11 = 2" identifier = number_literal) ;) })) (expression_statement "param_1 = FUN_0002234c(uVar11);" (assignment_expression "param_1 = FUN_0002234c(uVar11)" identifier = (call_expression "FUN_0002234c(uVar11)" identifier (argument_list "(uVar11)" ( identifier )))) ;) (if_statement "if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2dcc" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (if_statement "if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" if (parenthesized_expression "(puVar2[0x32] == 0)" ( (binary_expression "puVar2[0x32] == 0" (subscript_expression "puVar2[0x32]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" { (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0xffff,4,&local_f4,4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_f4" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) }) (else_clause "else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" else (if_statement "if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" if (parenthesized_expression "(0 < (int)puVar2[0x32])" ( (binary_expression "0 < (int)puVar2[0x32]" number_literal < (cast_expression "(int)puVar2[0x32]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar2[0x32]" identifier [ number_literal ]))) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" { (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0xffff,4,&local_f4,4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_f4" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0xffff,0x200,&local_f4,4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_f4" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) })))) (if_statement "if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" if (parenthesized_expression "((puVar2[0x3e] & 0x10) == 0)" ( (binary_expression "(puVar2[0x3e] & 0x10) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x10)" ( (binary_expression "puVar2[0x3e] & 0x10" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }" { (expression_statement "local_ec = 0x10;" (assignment_expression "local_ec = 0x10" identifier = number_literal) ;) (if_statement "if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }" if (parenthesized_expression "(local_f0 == (undefined2 *)0x0)" ( (binary_expression "local_f0 == (undefined2 *)0x0" identifier == (cast_expression "(undefined2 *)0x0" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }" { (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (expression_statement "local_d8 = 2;" (assignment_expression "local_d8 = 2" identifier = number_literal) ;) (expression_statement "local_f0 = &local_d8;" (assignment_expression "local_f0 = &local_d8" identifier = (pointer_expression "&local_d8" & identifier)) ;) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;) (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_d6 = uVar14;" (assignment_expression "local_d6 = uVar14" identifier = identifier) ;) }) (else_clause "else {\n          puVar2[0x31] = param_1;\n        }" else (compound_statement "{\n          puVar2[0x31] = param_1;\n        }" { (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" else (compound_statement "{\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" { (expression_statement "local_ec = 0x1c;" (assignment_expression "local_ec = 0x1c" identifier = number_literal) ;) (if_statement "if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }" if (parenthesized_expression "(local_f0 == (undefined2 *)0x0)" ( (binary_expression "local_f0 == (undefined2 *)0x0" identifier == (cast_expression "(undefined2 *)0x0" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }" { (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 10;" (assignment_expression "local_c8 = 10" identifier = number_literal) ;) (expression_statement "local_f0 = &local_c8;" (assignment_expression "local_f0 = &local_c8" identifier = (pointer_expression "&local_c8" & identifier)) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_c6 = uVar14;" (assignment_expression "local_c6 = uVar14" identifier = identifier) ;) }) (else_clause "else {\n          puVar2[0x31] = param_1;\n        }" else (compound_statement "{\n          puVar2[0x31] = param_1;\n        }" { (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);" (assignment_expression "local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810)" identifier = (cast_expression "(int *)(uint)((puVar2[0x3e] & 0x810) != 0x810)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((puVar2[0x3e] & 0x810) != 0x810)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((puVar2[0x3e] & 0x810) != 0x810)" ( (binary_expression "(puVar2[0x3e] & 0x810) != 0x810" (parenthesized_expression "(puVar2[0x3e] & 0x810)" ( (binary_expression "puVar2[0x3e] & 0x810" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4)" identifier = (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" ( (pointer_expression "*(code *)PTR_setsockopt_0003f340" * (cast_expression "(code *)PTR_setsockopt_0003f340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x29,0x1a,&local_e0,4)" ( identifier , number_literal , number_literal , (pointer_expression "&local_e0" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) }))) (expression_statement "iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);" (assignment_expression "iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec)" identifier = (call_expression "(*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec)" (parenthesized_expression "(*(code *)PTR_bind_0003f21c)" ( (pointer_expression "*(code *)PTR_bind_0003f21c" * (cast_expression "(code *)PTR_bind_0003f21c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,local_f0,local_ec)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar10 = PTR_setsockopt_0003f340;" (assignment_expression "puVar10 = PTR_setsockopt_0003f340" identifier = identifier) ;) (if_statement "if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*piVar4)" (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 "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d88" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar11 = 0x1753;" (assignment_expression "uVar11 = 0x1753" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (if_statement "if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" if (parenthesized_expression "((puVar2[0x3e] & 0x4000) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x4000) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x4000)" ( (binary_expression "puVar2[0x3e] & 0x4000" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" { (if_statement "if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }" if (parenthesized_expression "(puVar2[0x5b] == 0)" ( (binary_expression "puVar2[0x5b] == 0" (subscript_expression "puVar2[0x5b]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar2[0x5b] = 10;\n        }" { (expression_statement "puVar2[0x5b] = 10;" (assignment_expression "puVar2[0x5b] = 10" (subscript_expression "puVar2[0x5b]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);" (assignment_expression "iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4)" identifier = (call_expression "(*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4)" (parenthesized_expression "(*(code *)puVar10)" ( (pointer_expression "*(code *)puVar10" * (cast_expression "(code *)puVar10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,6,0x17,puVar2 + 0x5b,4)" ( identifier , number_literal , number_literal , (binary_expression "puVar2 + 0x5b" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2da0" identifier + number_literal) , identifier ))) ;) })) })) (expression_statement "iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);" (assignment_expression "iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c])" identifier = (call_expression "(*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c])" (parenthesized_expression "(*(code *)PTR_listen_0003f1b8)" ( (pointer_expression "*(code *)PTR_listen_0003f1b8" * (cast_expression "(code *)PTR_listen_0003f1b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar2[0x5c])" ( identifier , (subscript_expression "puVar2[0x5c]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }" { (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d68" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar11 = 0x1771;" (assignment_expression "uVar11 = 0x1771" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001f7e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" statement_identifier : (if_statement "if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" if (parenthesized_expression "(((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0))" ( (binary_expression "((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)" (parenthesized_expression "((uVar15 & 0x200) != 0)" ( (binary_expression "(uVar15 & 0x200) != 0" (parenthesized_expression "(uVar15 & 0x200)" ( (binary_expression "uVar15 & 0x200" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(puVar2[0x22] == 0)" ( (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" { (if_statement "if ((uVar15 & 4) != 0) goto LAB_0001fdf8;" if (parenthesized_expression "((uVar15 & 4) != 0)" ( (binary_expression "(uVar15 & 4) != 0" (parenthesized_expression "(uVar15 & 4)" ( (binary_expression "uVar15 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0001fdf8;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_0001b338(puVar2);" (assignment_expression "iVar3 = FUN_0001b338(puVar2)" identifier = (call_expression "FUN_0001b338(puVar2)" identifier (argument_list "(puVar2)" ( identifier )))) ;) (if_statement "if (iVar3 != 1) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x25,0)" ( (binary_expression "puVar2 + 0x25" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (labeled_statement "LAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;)) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" 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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar11 = 0x17fc;" (assignment_expression "uVar11 = 0x17fc" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" else (compound_statement "{\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" { (labeled_statement "LAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" statement_identifier : (if_statement "if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" if (parenthesized_expression "((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0))" ( (binary_expression "(*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)" (parenthesized_expression "(*(short *)(puVar2 + 0x3f) == 0)" ( (binary_expression "*(short *)(puVar2 + 0x3f) == 0" (pointer_expression "*(short *)(puVar2 + 0x3f)" * (cast_expression "(short *)(puVar2 + 0x3f)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x3f)" ( (binary_expression "puVar2 + 0x3f" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((puVar2[0x3e] & 0x100) == 0)" ( (binary_expression "(puVar2[0x3e] & 0x100) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x100)" ( (binary_expression "puVar2[0x3e] & 0x100" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" { (expression_statement "uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);" (assignment_expression "uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80)" identifier = (call_expression "(*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80)" (parenthesized_expression "(*(code *)PTR_memset_0003f20c)" ( (pointer_expression "*(code *)PTR_memset_0003f20c" * (cast_expression "(code *)PTR_memset_0003f20c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_ac,0,0x80)" ( (pointer_expression "&local_ac" & identifier) , number_literal , number_literal )))) ;) (expression_statement "local_ec = 0x80;" (assignment_expression "local_ec = 0x80" identifier = number_literal) ;) (expression_statement "iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);" (assignment_expression "iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec)" identifier = (call_expression "(*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec)" (parenthesized_expression "(*(code *)PTR_getsockname_0003f19c)" ( (pointer_expression "*(code *)PTR_getsockname_0003f19c" * (cast_expression "(code *)PTR_getsockname_0003f19c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar11,&local_ec)" ( identifier , identifier , (pointer_expression "&local_ec" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }" { (if_statement "if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" if (parenthesized_expression "(local_ec < 0x81)" ( (binary_expression "local_ec < 0x81" identifier < number_literal) )) (compound_statement "{\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }" { (if_statement "if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" if (parenthesized_expression "((local_ac == 2) || (local_ac == 10))" ( (binary_expression "(local_ac == 2) || (local_ac == 10)" (parenthesized_expression "(local_ac == 2)" ( (binary_expression "local_ac == 2" identifier == number_literal) )) || (parenthesized_expression "(local_ac == 10)" ( (binary_expression "local_ac == 10" identifier == number_literal) ))) )) (compound_statement "{\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }" { (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = local_aa;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = local_aa" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" * (cast_expression "(undefined2 *)(puVar2 + 0x3f)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x3f)" ( (binary_expression "puVar2 + 0x3f" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" else (compound_statement "{\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" { (if_statement "if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }" if (parenthesized_expression "(local_ac != 1)" ( (binary_expression "local_ac != 1" identifier != number_literal) )) (compound_statement "{\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ccc)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ccc" identifier + number_literal) ))) ;) })) (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = 0;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = 0" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" * (cast_expression "(undefined2 *)(puVar2 + 0x3f)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x3f)" ( (binary_expression "puVar2 + 0x3f" identifier + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" else (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d18)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d18" identifier + number_literal) ))) ;) }))) }) (else_clause "else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" else (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" { (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" ( (pointer_expression "*puVar5" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2d40" identifier + number_literal) , identifier ))) ;) }))) }))) (expression_statement "iVar3 = FUN_00022234(param_1);" (assignment_expression "iVar3 = FUN_00022234(param_1)" identifier = (call_expression "FUN_00022234(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }" { (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (if_statement "if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;" if (parenthesized_expression "((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0))" ( (binary_expression "(0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_1)" ( (binary_expression "0x3ff < (int)param_1" number_literal < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((uVar15 & 0x240) == 0)" ( (binary_expression "(uVar15 & 0x240) == 0" (parenthesized_expression "(uVar15 & 0x240)" ( (binary_expression "uVar15 & 0x240" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0002006c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f82c;" goto statement_identifier ;) })) (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2cb0" identifier + number_literal) , identifier ))) ;) (if_statement "if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;" if (parenthesized_expression "((puVar2[0x3e] & 0x200) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x200) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x200)" ( (binary_expression "puVar2[0x3e] & 0x200" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00020280;" goto statement_identifier ;)) (if_statement "if (puVar2[0x22] != 0) goto LAB_00020280;" if (parenthesized_expression "(puVar2[0x22] != 0)" ( (binary_expression "puVar2[0x22] != 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00020280;" goto statement_identifier ;)) (if_statement "if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0))" ( (binary_expression "(0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_1)" ( (binary_expression "0x3ff < (int)param_1" number_literal < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((puVar2[0x3e] & 0x240) == 0)" ( (binary_expression "(puVar2[0x3e] & 0x240) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" ( (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }" { (labeled_statement "LAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);" statement_identifier : (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x3938" identifier + number_literal) , identifier , number_literal ))) ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" 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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar11 = 0x17dc;" (assignment_expression "uVar11 = 0x17dc" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x25,0)" ( (binary_expression "puVar2 + 0x25" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0001ff08;" goto statement_identifier ;) })) }))) (expression_statement "puVar5 = puVar2 + 0x25;" (assignment_expression "puVar5 = puVar2 + 0x25" identifier = (binary_expression "puVar2 + 0x25" identifier + number_literal)) ;) (if_statement "if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }" if (parenthesized_expression "(puVar2[0x22] == 0)" ( (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }" { (expression_statement "param_2 = puVar2 + 0x2b;" (assignment_expression "param_2 = puVar2 + 0x2b" identifier = (binary_expression "puVar2 + 0x2b" identifier + number_literal)) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c28" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar11 = 0x1809;" (assignment_expression "uVar11 = 0x1809" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" 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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar11 = 0x180c;" (assignment_expression "uVar11 = 0x180c" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) })) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) (if_statement "if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }" if (parenthesized_expression "((uVar15 & 2) != 0)" ( (binary_expression "(uVar15 & 2) != 0" (parenthesized_expression "(uVar15 & 2)" ( (binary_expression "uVar15 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }" { (if_statement "if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" if (parenthesized_expression "(puVar2[0x44] == 1)" ( (binary_expression "puVar2[0x44] == 1" (subscript_expression "puVar2[0x44]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150" * (cast_expression "(code *)PTR_gnutls_certificate_allocate_credentials_0003f150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x45)" ( (binary_expression "puVar2 + 0x45" identifier + number_literal) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000201cc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;)) (if_statement "if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }" if (parenthesized_expression "(puVar2[0x48] != 0)" ( (binary_expression "puVar2[0x48] != 0" (subscript_expression "puVar2[0x48]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);" (call_expression "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45])" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c" * (cast_expression "(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45])" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) ))) ;) })) (expression_statement "piVar4 = (int *)puVar2[0x4e];" (assignment_expression "piVar4 = (int *)puVar2[0x4e]" identifier = (cast_expression "(int *)puVar2[0x4e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[0x4e]" identifier [ number_literal ]))) ;) (if_statement "if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }" { (expression_statement "local_e0 = piVar4;" (assignment_expression "local_e0 = piVar4" identifier = identifier) ;) (expression_statement "local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);" (assignment_expression "local_dc = (*(code *)PTR_strlen_0003f228)(piVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(piVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4)" ( identifier )))) ;) (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45],&local_e0,1)" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) , (pointer_expression "&local_e0" & identifier) , number_literal )))) ;) (if_statement "if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2bf4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2bf4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) })) (if_statement "if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }" if (parenthesized_expression "(*(char *)(puVar2 + 0x50) != '\0')" ( (binary_expression "*(char *)(puVar2 + 0x50) != '\0'" (pointer_expression "*(char *)(puVar2 + 0x50)" * (cast_expression "(char *)(puVar2 + 0x50)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x50)" ( (binary_expression "puVar2 + 0x50" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }" { (expression_statement "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);" (call_expression "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f])" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4" * (cast_expression "(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45],puVar2[0x4f])" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) , (subscript_expression "puVar2[0x4f]" identifier [ number_literal ]) ))) ;) })) (expression_statement "param_2 = (int *)puVar2[0x4c];" (assignment_expression "param_2 = (int *)puVar2[0x4c]" identifier = (cast_expression "(int *)puVar2[0x4c]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[0x4c]" identifier [ number_literal ]))) ;) (if_statement "if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" if (parenthesized_expression "((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0))" ( (binary_expression "(param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)" (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar3 = puVar2[0x4b], iVar3 == 0)" ( (comma_expression "iVar3 = puVar2[0x4b], iVar3 == 0" (assignment_expression "iVar3 = puVar2[0x4b]" identifier = (subscript_expression "puVar2[0x4b]" identifier [ number_literal ])) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }" { (if_statement "if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(puVar2[0x48] == 0)" ( (binary_expression "puVar2[0x48] == 0" (subscript_expression "puVar2[0x48]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ba0)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ba0" identifier + number_literal) ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" else (compound_statement "{\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" { (expression_statement "local_e8 = iVar3;" (assignment_expression "local_e8 = iVar3" identifier = identifier) ;) (expression_statement "local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);" (assignment_expression "local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" identifier = identifier) ;) (expression_statement "local_dc = (*(code *)PTR_strlen_0003f228)(param_2);" (assignment_expression "local_dc = (*(code *)PTR_strlen_0003f228)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_0003f228)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" ( (pointer_expression "*(code *)PTR_strlen_0003f228" * (cast_expression "(code *)PTR_strlen_0003f228" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" if (parenthesized_expression "(puVar2[0x4d] == 0)" ( (binary_expression "puVar2[0x4d] == 0" (subscript_expression "puVar2[0x4d]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45],&local_e0,&local_e8,1)" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) , (pointer_expression "&local_e0" & identifier) , (pointer_expression "&local_e8" & identifier) , number_literal )))) ;) }) (else_clause "else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" else (compound_statement "{\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" { (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" identifier = (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)" ( (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c" * (cast_expression "(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" ( (subscript_expression "puVar2[0x45]" identifier [ number_literal ]) , (pointer_expression "&local_e0" & identifier) , (pointer_expression "&local_e8" & identifier) , number_literal , (subscript_expression "puVar2[0x4d]" identifier [ number_literal ]) , number_literal )))) ;) }))) (if_statement "if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }" { (expression_statement "uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);" (assignment_expression "uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3)" identifier = (call_expression "(*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3)" (parenthesized_expression "(*(code *)PTR_gnutls_strerror_0003f1b4)" ( (pointer_expression "*(code *)PTR_gnutls_strerror_0003f1b4" * (cast_expression "(code *)PTR_gnutls_strerror_0003f1b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2bd4" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" else (compound_statement "{\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" { (if_statement "if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }" if (parenthesized_expression "(puVar2[0x44] != 4)" ( (binary_expression "puVar2[0x44] != 4" (subscript_expression "puVar2[0x44]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b6c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b6c" identifier + number_literal) ))) ;) (labeled_statement "LAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);" statement_identifier : (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b3c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b3c" identifier + number_literal) ))) ;)) (if_statement "if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" if (parenthesized_expression "((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))" ( (binary_expression "(param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" (parenthesized_expression "(param_1 != 0xffffffff)" ( (binary_expression "param_1 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\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 "uVar11 = 0x181c;" (assignment_expression "uVar11 = 0x181c" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001fdd8;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001fdd8;" goto statement_identifier ;)) })) (if_statement "if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }" if (parenthesized_expression "(puVar2[0x22] == 0)" ( (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }" { (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x2b)" ( (binary_expression "puVar2 + 0x2b" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x181f;" (assignment_expression "uVar11 = 0x181f" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) })) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "uVar11 = 0x1820;" (assignment_expression "uVar11 = 0x1820" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47)" identifier = (call_expression "(*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47)" (parenthesized_expression "(*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)" ( (pointer_expression "*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4" * (cast_expression "(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x47)" ( (binary_expression "puVar2 + 0x47" identifier + number_literal) )))) ;) (if_statement "if (iVar3 != 0) goto LAB_000201cc;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000201cc;" goto statement_identifier ;)) }))) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" identifier = (subscript_expression "puVar2[0x3e]" identifier [ number_literal ])) ;) })) (if_statement "if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }" if (parenthesized_expression "((uVar15 & 0x108) == 8)" ( (binary_expression "(uVar15 & 0x108) == 8" (parenthesized_expression "(uVar15 & 0x108)" ( (binary_expression "uVar15 & 0x108" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }" { (expression_statement "uVar16 = puVar2[0x22];" (assignment_expression "uVar16 = puVar2[0x22]" identifier = (subscript_expression "puVar2[0x22]" identifier [ number_literal ])) ;) (if_statement "if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }" { (expression_statement "uVar15 = puVar2[0x3b];" (assignment_expression "uVar15 = puVar2[0x3b]" identifier = (subscript_expression "puVar2[0x3b]" identifier [ number_literal ])) ;) (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 "uVar19 = uVar15 / uVar16;" (assignment_expression "uVar19 = uVar15 / uVar16" identifier = (binary_expression "uVar15 / uVar16" identifier / identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" identifier = (call_expression "(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" (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 "(uVar16 * 0x174)" ( (binary_expression "uVar16 * 0x174" identifier * number_literal) )))) ;) (expression_statement "puVar2[0x1d] = iVar3;" (assignment_expression "puVar2[0x1d] = iVar3" (subscript_expression "puVar2[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = PTR_DAT_0003f05c;" (assignment_expression "puVar10 = PTR_DAT_0003f05c" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }" { (labeled_statement "LAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" statement_identifier : (if_statement "if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" if (parenthesized_expression "((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))" ( (binary_expression "(param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" (parenthesized_expression "(param_1 != 0xffffffff)" ( (binary_expression "param_1 != 0xffffffff" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\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 "uVar11 = 0x18b3;" (assignment_expression "uVar11 = 0x18b3" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) goto LAB_0001fdd8;" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_0001fdd8;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "uVar11 = 0x18b4;" (assignment_expression "uVar11 = 0x18b4" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (puVar2[0x1d] == 0) goto LAB_0001f860;" if (parenthesized_expression "(puVar2[0x1d] == 0)" ( (binary_expression "puVar2[0x1d] == 0" (subscript_expression "puVar2[0x1d]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_0003f2f8)();" (call_expression "(*(code *)PTR_free_0003f2f8)()" (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 "()" ( ))) ;) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;) })) (expression_statement "param_2 = (int *)0x0;" (assignment_expression "param_2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8)" identifier = (cast_expression "(code *)(PTR_LAB_0003f084 + -0x4cc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0003f084 + -0x4cc8)" ( (binary_expression "PTR_LAB_0003f084 + -0x4cc8" identifier + number_literal) )))) ;) (expression_statement "puVar7 = PTR_LAB_0003f084 + -6000;" (assignment_expression "puVar7 = PTR_LAB_0003f084 + -6000" identifier = (binary_expression "PTR_LAB_0003f084 + -6000" identifier + number_literal)) ;) (do_statement "do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );" do (compound_statement "{\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      }" { (expression_statement "puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);" (assignment_expression "puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3)" identifier = (cast_expression "(undefined4 *)((int)param_2 * 0x174 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 * 0x174 + iVar3)" ( (binary_expression "(int)param_2 * 0x174 + iVar3" (binary_expression "(int)param_2 * 0x174" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + identifier) )))) ;) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" identifier = identifier) ;) (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" identifier = identifier) ;) (do_statement "do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);" do (compound_statement "{\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        }" { (expression_statement "puVar9 = puVar8 + 4;" (assignment_expression "puVar9 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "uVar13 = puVar8[1];" (assignment_expression "uVar13 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = puVar8[2];" (assignment_expression "uVar12 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar8[3];" (assignment_expression "uVar11 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar6 = *puVar8;" (assignment_expression "*puVar6 = *puVar8" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar6[1] = uVar13;" (assignment_expression "puVar6[1] = uVar13" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = uVar12;" (assignment_expression "puVar6[2] = uVar12" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uVar11;" (assignment_expression "puVar6[3] = uVar11" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6 = puVar6 + 4;" (assignment_expression "puVar6 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar9;" (assignment_expression "puVar8 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(puVar9 != puVar2 + 0x5c)" ( (binary_expression "puVar9 != puVar2 + 0x5c" identifier != (binary_expression "puVar2 + 0x5c" identifier + number_literal)) )) ;) (expression_statement "*puVar6 = *puVar9;" (assignment_expression "*puVar6 = *puVar9" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar17[0x1c] = puVar2;" (assignment_expression "puVar17[0x1c] = puVar2" (subscript_expression "puVar17[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[0x22] = 0;" (assignment_expression "puVar17[0x22] = 0" (subscript_expression "puVar17[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17[0x1d] = 0;" (assignment_expression "puVar17[0x1d] = 0" (subscript_expression "puVar17[0x1d]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }" if (parenthesized_expression "((puVar2[0x3e] & 0x400) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x400) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x400)" ( (binary_expression "puVar2[0x3e] & 0x400" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }" { (expression_statement "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);" (assignment_expression "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080)" identifier = (call_expression "(*(code *)PTR_eventfd_0003f180)(0,0x80080)" (parenthesized_expression "(*(code *)PTR_eventfd_0003f180)" ( (pointer_expression "*(code *)PTR_eventfd_0003f180" * (cast_expression "(code *)PTR_eventfd_0003f180" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x80080)" ( number_literal , number_literal )))) ;) (expression_statement "puVar17[0x37] = iVar3;" (assignment_expression "puVar17[0x37] = iVar3" (subscript_expression "puVar17[0x37]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar6 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar6)" (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 "(*puVar6)" ( (pointer_expression "*puVar6" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2af4" identifier + number_literal) , identifier ))) ;) }) (else_clause "else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" else (compound_statement "{\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" { (if_statement "if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;" if (parenthesized_expression "(((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400))" ( (binary_expression "((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)" (parenthesized_expression "((puVar2[0x3e] & 0x240) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x240) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" ( (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar3 < 0x400)" ( (binary_expression "iVar3 < 0x400" identifier < number_literal) ))) )) (goto_statement "goto LAB_00020648;" goto statement_identifier ;)) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ab4)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2ab4" identifier + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37])" identifier = (call_expression "(*(code *)PTR_close_0003f158)(puVar17[0x37])" (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 "(puVar17[0x37])" ( (subscript_expression "puVar17[0x37]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;" if (parenthesized_expression "((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))" ( (binary_expression "(iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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)) ))) )) (goto_statement "goto LAB_00020b10;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;" statement_identifier : (expression_statement "pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;" (assignment_expression "pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac" identifier = (cast_expression "(code *)PTR_MHD_stop_daemon_0003f1ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (param_2 != (int *)0x0) goto LAB_0001f93c;" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001f93c;" goto statement_identifier ;)) (goto_statement "goto LAB_00020778;" goto statement_identifier ;) })) (expression_statement "puVar17[0x37] = 0xffffffff;" (assignment_expression "puVar17[0x37] = 0xffffffff" (subscript_expression "puVar17[0x37]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }" statement_identifier : (if_statement "if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }" if (parenthesized_expression "(param_2 < (int *)(uVar15 % uVar16))" ( (binary_expression "param_2 < (int *)(uVar15 % uVar16)" identifier < (cast_expression "(int *)(uVar15 % uVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 % uVar16)" ( (binary_expression "uVar15 % uVar16" identifier % identifier) )))) )) (compound_statement "{\n          puVar17[0x3b] = uVar19 + 1;\n        }" { (expression_statement "puVar17[0x3b] = uVar19 + 1;" (assignment_expression "puVar17[0x3b] = uVar19 + 1" (subscript_expression "puVar17[0x3b]" identifier [ number_literal ]) = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          puVar17[0x3b] = uVar19;\n        }" else (compound_statement "{\n          puVar17[0x3b] = uVar19;\n        }" { (expression_statement "puVar17[0x3b] = uVar19;" (assignment_expression "puVar17[0x3b] = uVar19" (subscript_expression "puVar17[0x3b]" identifier [ number_literal ]) = identifier) ;) })))) (if_statement "if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;" if (parenthesized_expression "(((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))" ( (binary_expression "((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1)" (parenthesized_expression "((puVar2[0x3e] & 0x200) != 0)" ( (binary_expression "(puVar2[0x3e] & 0x200) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x200)" ( (binary_expression "puVar2[0x3e] & 0x200" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar3 = (*pcVar18)(puVar17), iVar3 != 1)" ( (comma_expression "iVar3 = (*pcVar18)(puVar17), iVar3 != 1" (assignment_expression "iVar3 = (*pcVar18)(puVar17)" identifier = (call_expression "(*pcVar18)(puVar17)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(puVar17)" ( identifier )))) , (binary_expression "iVar3 != 1" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00020770;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" ( (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" * (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar17 + 0x2b,0)" ( (binary_expression "puVar17 + 0x2b" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }" { (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2a5c)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2a5c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_00020770;" goto statement_identifier ;) })) (expression_statement "iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);" (assignment_expression "iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" identifier = (call_expression "FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" identifier (argument_list "(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" ( (binary_expression "puVar17 + 0x23" identifier + number_literal) , (binary_expression "puVar10 + -0x2a28" identifier + number_literal) , (subscript_expression "puVar2[0x21]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar6 = (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 "()" ( ))))) ;) (expression_statement "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar6)" (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 "(*puVar6)" ( (pointer_expression "*puVar6" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2a1c" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar17 + 0x2b)" ( (binary_expression "puVar17 + 0x2b" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x189b;" (assignment_expression "uVar11 = 0x189b" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (goto_statement "goto LAB_00020770;" goto statement_identifier ;) })) (expression_statement "param_2 = (int *)((int)param_2 + 1);" (assignment_expression "param_2 = (int *)((int)param_2 + 1)" identifier = (cast_expression "(int *)((int)param_2 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 1)" ( (binary_expression "(int)param_2 + 1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;" if (parenthesized_expression "((int *)puVar2[0x22] <= param_2)" ( (binary_expression "(int *)puVar2[0x22] <= param_2" (cast_expression "(int *)puVar2[0x22]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[0x22]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_0001fcdc;" goto statement_identifier ;)) (expression_statement "iVar3 = puVar2[0x1d];" (assignment_expression "iVar3 = puVar2[0x1d]" identifier = (subscript_expression "puVar2[0x1d]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" if (parenthesized_expression "((uVar15 & 4) == 0)" ( (binary_expression "(uVar15 & 4) == 0" (parenthesized_expression "(uVar15 & 4)" ( (binary_expression "uVar15 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }" { (expression_statement "puVar10 = PTR_DAT_0003f05c + -0x3004;" (assignment_expression "puVar10 = PTR_DAT_0003f05c + -0x3004" identifier = (binary_expression "PTR_DAT_0003f05c + -0x3004" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" else (compound_statement "{\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" { (expression_statement "puVar10 = PTR_DAT_0003f05c + -0x3010;" (assignment_expression "puVar10 = PTR_DAT_0003f05c + -0x3010" identifier = (binary_expression "PTR_DAT_0003f05c + -0x3010" identifier + number_literal)) ;) }))) (expression_statement "iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);" (assignment_expression "iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" identifier = (call_expression "FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" identifier (argument_list "(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" ( (binary_expression "puVar2 + 0x23" identifier + number_literal) , identifier , (subscript_expression "puVar2[0x21]" identifier [ number_literal ]) , (binary_expression "PTR_LAB_0003f084 + -6000" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }" { (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" identifier = (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2b18" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 0x2b)" ( (binary_expression "puVar2 + 0x2b" identifier + number_literal) )))) ;) (expression_statement "uVar11 = 0x1837;" (assignment_expression "uVar11 = 0x1837" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "uVar11 = 0x1838;" (assignment_expression "uVar11 = 0x1838" identifier = number_literal) ;) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002025c;" goto statement_identifier ;)) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" if (parenthesized_expression "(param_1 == 0xffffffff)" ( (binary_expression "param_1 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001f860;" goto statement_identifier ;)) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar11 = 0x183a;" (assignment_expression "uVar11 = 0x183a" identifier = number_literal) ;) (goto_statement "goto joined_r0x00020848;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001fcdc:\n  puVar2[0x4d] = 0;" statement_identifier : (expression_statement "puVar2[0x4d] = 0;" (assignment_expression "puVar2[0x4d] = 0" (subscript_expression "puVar2[0x4d]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "puVar5 = puVar2;" (assignment_expression "puVar5 = puVar2" identifier = identifier) ;) (labeled_statement "LAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar5;\n  }" { (return_statement "return puVar5;" 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 "puVar2 = puVar5;" (assignment_expression "puVar2 = puVar5" identifier = identifier) ;) (labeled_statement "LAB_00020ae0:\n  uVar11 = 0x18dc;" statement_identifier : (expression_statement "uVar11 = 0x18dc;" (assignment_expression "uVar11 = 0x18dc" identifier = number_literal) ;)) (labeled_statement "LAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c)" (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,uVar11,\n             PTR_DAT_0003f05c + -0x302c)" ( (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 + -0x302c" identifier + number_literal) ))) ;)) (labeled_statement "LAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" identifier = (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" ( identifier )))) ;)) (if_statement "if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }" { (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar11 = 0x17cd;" (assignment_expression "uVar11 = 0x17cd" identifier = number_literal) ;) (labeled_statement "joined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" statement_identifier : (if_statement "if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" if (parenthesized_expression "(iVar3 == 9)" ( (binary_expression "iVar3 == 9" identifier == number_literal) )) (compound_statement "{\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" { (labeled_statement "LAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);" statement_identifier : (expression_statement "(**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);" (call_expression "(**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\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,uVar11,\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) ))) ;)) (labeled_statement "LAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);" statement_identifier : (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78)" identifier (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c78)" ( identifier , (binary_expression "PTR_DAT_0003f05c + -0x2c78" identifier + number_literal) ))) ;)) }))) })) (labeled_statement "LAB_0001f860:\n  iVar3 = puVar2[0x33];" statement_identifier : (expression_statement "iVar3 = puVar2[0x33];" (assignment_expression "iVar3 = puVar2[0x33]" identifier = (subscript_expression "puVar2[0x33]" identifier [ number_literal ])) ;)) (if_statement "if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;" if (parenthesized_expression "(*(char *)(puVar2 + 0x36) == '\0')" ( (binary_expression "*(char *)(puVar2 + 0x36) == '\0'" (pointer_expression "*(char *)(puVar2 + 0x36)" * (cast_expression "(char *)(puVar2 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x36)" ( (binary_expression "puVar2 + 0x36" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001f86c;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);" (assignment_expression "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0)" identifier = (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0)" (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 "(iVar3,2,puVar2[0x35],0)" ( identifier , number_literal , (subscript_expression "puVar2[0x35]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }" { (expression_statement "iVar3 = puVar2[0x33];" (assignment_expression "iVar3 = puVar2[0x33]" identifier = (subscript_expression "puVar2[0x33]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar2 + 0x36) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 0x36) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 0x36)" * (cast_expression "(undefined1 *)(puVar2 + 0x36)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x36)" ( (binary_expression "puVar2 + 0x36" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0001f86c;" goto statement_identifier ;) })) (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40)" (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,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40)" ( (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 + -0x4f40" identifier + number_literal) ))) ;) (labeled_statement "LAB_00020b10:\n  uVar11 = 0x1871;" statement_identifier : (expression_statement "uVar11 = 0x1871;" (assignment_expression "uVar11 = 0x1871" identifier = number_literal) ;)) (goto_statement "goto LAB_0001f91c;" goto statement_identifier ;) (labeled_statement "LAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" statement_identifier : (if_statement "if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_close_0003f158)();\n  }" { (expression_statement "(*(code *)PTR_close_0003f158)();" (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( ))) ;) }))) (if_statement "if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" if (parenthesized_expression "(puVar2[0x35] != -1)" ( (binary_expression "puVar2[0x35] != -1" (subscript_expression "puVar2[0x35]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_close_0003f158)();\n  }" { (expression_statement "(*(code *)PTR_close_0003f158)();" (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( ))) ;) })) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2[0x52]);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2[0x52])" (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 "(puVar2[0x52])" ( (subscript_expression "puVar2[0x52]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5)" identifier = (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" ( (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" * (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) goto code_r0x0001f8c8;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001f8c8;" goto statement_identifier ;)) (goto_statement "goto LAB_00020ae0;" goto statement_identifier ;) (labeled_statement "code_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" statement_identifier : (if_statement "if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" if (parenthesized_expression "((puVar2[0x3e] & 2) != 0)" ( (binary_expression "(puVar2[0x3e] & 2) != 0" (parenthesized_expression "(puVar2[0x3e] & 2)" ( (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" { (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" ( (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" * (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2[0x43])" ( (subscript_expression "puVar2[0x43]" identifier [ number_literal ]) ))) ;) }))) (if_statement "if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }" if (parenthesized_expression "((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0))" ( (binary_expression "(puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)" (parenthesized_expression "(puVar2[0x37] != -1)" ( (binary_expression "puVar2[0x37] != -1" (subscript_expression "puVar2[0x37]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)" ( (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)()" identifier = (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" ( )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\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 "uVar11 = 0x18e4;" (assignment_expression "uVar11 = 0x18e4" identifier = number_literal) ;) (if_statement "if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }" if (parenthesized_expression "(*piVar4 == 9)" ( (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" * identifier) == number_literal) )) (compound_statement "{\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }" { (labeled_statement "LAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;" statement_identifier : (expression_statement "pcVar18 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar18 = *(code **)PTR_DAT_0003f070" identifier = (pointer_expression "*(code **)PTR_DAT_0003f070" * (cast_expression "(code **)PTR_DAT_0003f070" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) (expression_statement "(*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);" (call_expression "(*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044)" ( (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 + -0x3044" identifier + number_literal) ))) ;) (labeled_statement "LAB_0001f93c:\n      puVar2[0x22] = param_2;" statement_identifier : (expression_statement "puVar2[0x22] = param_2;" (assignment_expression "puVar2[0x22] = param_2" (subscript_expression "puVar2[0x22]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "(*pcVar18)(puVar2);" (call_expression "(*pcVar18)(puVar2)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(puVar2)" ( identifier ))) ;) (labeled_statement "LAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;" statement_identifier : (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2)" (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 "(puVar2)" ( identifier ))) ;)) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001f950;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }))) })) (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)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 (subscript_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 ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_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 ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (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 ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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 ( 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 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 = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (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 ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ;)) })) (goto_statement goto statement_identifier ;) })) }))) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression (parenthesized_expression ( (binary_expression IDENT * LIT) )) / LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == 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 ( (subscript_expression IDENT [ 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 ( )))) ;) (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 = (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 = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) })) (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 , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & 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 ]) ))) ;) })) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression 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 = (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 ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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 , LIT , LIT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_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 , LIT , LIT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 , LIT , LIT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ))) ;) (goto_statement goto statement_identifier ;) })) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & 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 , LIT , LIT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 , IDENT , 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 , 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 ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (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 , LIT , LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 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 ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_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 ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 ( (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 )))) ;)) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == 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 ( (pointer_expression & IDENT) , LIT , LIT )))) ;) (expression_statement (assignment_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 , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }))) }) (else_clause else (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 IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (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 = (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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != 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 ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) (compound_statement { (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 )))) ;) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = 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 ( (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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 , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ( 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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (subscript_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 (subscript_expression IDENT [ LIT ]) == 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 ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (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 ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = 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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (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) )))) != (char_literal ' escape_sequence ')) )) (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 ]) , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (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 ( IDENT )))) ;) (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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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 ( (subscript_expression IDENT [ LIT ]) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) }) (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 ( (subscript_expression IDENT [ LIT ]) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) }))) (if_statement if (parenthesized_expression ( (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 )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) , (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 ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == 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 ( (binary_expression IDENT + LIT) )))) ;) (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 = (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 ;)) (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 ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (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 { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) , (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 (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 (subscript_expression IDENT [ LIT ]) == 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 ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != 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 ( 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 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 ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (goto_statement goto 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 ( (subscript_expression IDENT [ 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)) ))) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT % IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) , (binary_expression IDENT != 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 ( (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) , 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 ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (subscript_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 = (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 ( (binary_expression IDENT + LIT) )))) ;) (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 = (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 IDENT == 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 ( IDENT )))) ;) (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 ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = IDENT) ;) (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 (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ( IDENT , (binary_expression IDENT + LIT) ))) ;)) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_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) )))) == (char_literal ' escape_sequence ')) )) (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 ( IDENT , LIT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_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 (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) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (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 ( ))) ;) }))) (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_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 ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & 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 ]) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) , (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) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (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 *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 *\nMHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined2 uVar14;\n  uint uVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 local_f4;\n  undefined2 *local_f0;\n  uint local_ec;\n  int local_e8;\n  undefined4 local_e4;\n  int *local_e0;\n  undefined4 local_dc;\n  undefined2 local_d8;\n  undefined2 local_d6;\n  undefined4 local_d4;\n  undefined4 local_d0;\n  undefined4 local_cc;\n  undefined2 local_c8;\n  undefined2 local_c6;\n  undefined4 local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  undefined4 local_b0;\n  short local_ac;\n  undefined2 local_aa;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  local_f4 = 1;\n  local_f0 = (undefined2 *)0x0;\n  if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }\n  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;\n  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;\n  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;\n  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;\n  if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }\n  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;\n  uVar15 = param_1 & 2;\n  puVar2[0x43] = 0;\n  puVar2[0x33] = 0xffffffff;\n  puVar2[0x35] = 0xffffffff;\n  if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  puVar2[0x32] = 0;\n  puVar2[0x3e] = param_1;\n  puVar2[0x3b] = 0x3fc;\n  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;\n  puVar2[0x1f] = 0x8000;\n  puVar2[0x31] = 0xffffffff;\n  puVar2[0x20] = 0x400;\n  puVar10 = PTR_LAB_0003f084;\n  uVar14 = SUB42(param_2,0);\n  *(undefined2 *)(puVar2 + 0x3f) = uVar14;\n  puVar2[0x10] = param_3;\n  puVar2[0x11] = param_4;\n  *puVar2 = param_5;\n  puVar2[0x18] = puVar10 + -0x6eb8;\n  puVar2[1] = param_6;\n  puVar2[0x5c] = 0x80;\n  puVar10 = PTR_vfprintf_0003f1c0;\n  puVar2[0x3a] = 0;\n  puVar2[0x3c] = 0;\n  puVar2[0x1a] = puVar10;\n  puVar10 = PTR_stderr_0003f304;\n  puVar2[0x37] = 0xffffffff;\n  puVar2[0x1b] = *(undefined4 *)puVar10;\n  if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }\n  puVar2[0x59] = 0;\n  puVar2[0x51] = 0;\n  puVar2[0x5a] = 4;\n  if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }\n  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);\n  if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  uVar15 = puVar2[0x3e];\n  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar15 = puVar2[0x5a];\n  if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }\n  param_5 = puVar2 + 0x53;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);\n  if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }\n  uVar15 = puVar2[0x3e];\n  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  param_1 = puVar2[0x31];\n  if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  puVar5 = puVar2 + 0x25;\n  if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  uVar15 = puVar2[0x3e];\n  if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }\n  if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  puVar2[0x4d] = 0;\n  puVar5 = puVar2;\nLAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  puVar2 = puVar5;\nLAB_00020ae0:\n  uVar11 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n  if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = puVar2[0x33];\n  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);\n  if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar11 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }\n  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);\n  puVar5 = (undefined4 *)0x0;\n  goto LAB_0001f950;\n}" (type_identifier "undefined4") (pointer_declarator "*\nMHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" (* "*") (function_declarator "MHD_start_daemon_va(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" (identifier "MHD_start_daemon_va") (parameter_list "(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 *param_5" (type_identifier "undefined4") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined2 uVar14;\n  uint uVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  code *pcVar18;\n  uint uVar19;\n  undefined4 local_f4;\n  undefined2 *local_f0;\n  uint local_ec;\n  int local_e8;\n  undefined4 local_e4;\n  int *local_e0;\n  undefined4 local_dc;\n  undefined2 local_d8;\n  undefined2 local_d6;\n  undefined4 local_d4;\n  undefined4 local_d0;\n  undefined4 local_cc;\n  undefined2 local_c8;\n  undefined2 local_c6;\n  undefined4 local_c4;\n  undefined4 local_c0;\n  undefined4 local_bc;\n  undefined4 local_b8;\n  undefined4 local_b4;\n  undefined4 local_b0;\n  short local_ac;\n  undefined2 local_aa;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  local_f4 = 1;\n  local_f0 = (undefined2 *)0x0;\n  if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }\n  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;\n  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;\n  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;\n  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;\n  if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }\n  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);\n  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;\n  uVar15 = param_1 & 2;\n  puVar2[0x43] = 0;\n  puVar2[0x33] = 0xffffffff;\n  puVar2[0x35] = 0xffffffff;\n  if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }\n  puVar2[0x32] = 0;\n  puVar2[0x3e] = param_1;\n  puVar2[0x3b] = 0x3fc;\n  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;\n  puVar2[0x1f] = 0x8000;\n  puVar2[0x31] = 0xffffffff;\n  puVar2[0x20] = 0x400;\n  puVar10 = PTR_LAB_0003f084;\n  uVar14 = SUB42(param_2,0);\n  *(undefined2 *)(puVar2 + 0x3f) = uVar14;\n  puVar2[0x10] = param_3;\n  puVar2[0x11] = param_4;\n  *puVar2 = param_5;\n  puVar2[0x18] = puVar10 + -0x6eb8;\n  puVar2[1] = param_6;\n  puVar2[0x5c] = 0x80;\n  puVar10 = PTR_vfprintf_0003f1c0;\n  puVar2[0x3a] = 0;\n  puVar2[0x3c] = 0;\n  puVar2[0x1a] = puVar10;\n  puVar10 = PTR_stderr_0003f304;\n  puVar2[0x37] = 0xffffffff;\n  puVar2[0x1b] = *(undefined4 *)puVar10;\n  if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }\n  puVar2[0x59] = 0;\n  puVar2[0x51] = 0;\n  puVar2[0x5a] = 4;\n  if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }\n  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);\n  if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }\n  uVar15 = puVar2[0x3e];\n  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }\n  uVar15 = puVar2[0x5a];\n  if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }\n  param_5 = puVar2 + 0x53;\n  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);\n  if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }\n  uVar15 = puVar2[0x3e];\n  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }\n  param_1 = puVar2[0x31];\n  if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }\n  puVar5 = puVar2 + 0x25;\n  if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }\n  uVar15 = puVar2[0x3e];\n  if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }\n  if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }\nLAB_0001fcdc:\n  puVar2[0x4d] = 0;\n  puVar5 = puVar2;\nLAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }\n  (*(code *)PTR___stack_chk_fail_0003f2b8)();\n  puVar2 = puVar5;\nLAB_00020ae0:\n  uVar11 = 0x18dc;\nLAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);\nLAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n  if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }\nLAB_0001f860:\n  iVar3 = puVar2[0x33];\n  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;\n  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);\n  if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);\nLAB_00020b10:\n  uVar11 = 0x1871;\n  goto LAB_0001f91c;\nLAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }\n  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);\n  if (iVar3 == 0) goto code_r0x0001f8c8;\n  goto LAB_00020ae0;\ncode_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }\n  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }\nLAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);\n  puVar5 = (undefined4 *)0x0;\n  goto LAB_0001f950;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "undefined2 uVar14;" (type_identifier "undefined2") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "code *pcVar18;" (type_identifier "code") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "undefined4 local_f4;" (type_identifier "undefined4") (identifier "local_f4") (; ";")) (declaration "undefined2 *local_f0;" (type_identifier "undefined2") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "uint local_ec;" (type_identifier "uint") (identifier "local_ec") (; ";")) (declaration "int local_e8;" (primitive_type "int") (identifier "local_e8") (; ";")) (declaration "undefined4 local_e4;" (type_identifier "undefined4") (identifier "local_e4") (; ";")) (declaration "int *local_e0;" (primitive_type "int") (pointer_declarator "*local_e0" (* "*") (identifier "local_e0")) (; ";")) (declaration "undefined4 local_dc;" (type_identifier "undefined4") (identifier "local_dc") (; ";")) (declaration "undefined2 local_d8;" (type_identifier "undefined2") (identifier "local_d8") (; ";")) (declaration "undefined2 local_d6;" (type_identifier "undefined2") (identifier "local_d6") (; ";")) (declaration "undefined4 local_d4;" (type_identifier "undefined4") (identifier "local_d4") (; ";")) (declaration "undefined4 local_d0;" (type_identifier "undefined4") (identifier "local_d0") (; ";")) (declaration "undefined4 local_cc;" (type_identifier "undefined4") (identifier "local_cc") (; ";")) (declaration "undefined2 local_c8;" (type_identifier "undefined2") (identifier "local_c8") (; ";")) (declaration "undefined2 local_c6;" (type_identifier "undefined2") (identifier "local_c6") (; ";")) (declaration "undefined4 local_c4;" (type_identifier "undefined4") (identifier "local_c4") (; ";")) (declaration "undefined4 local_c0;" (type_identifier "undefined4") (identifier "local_c0") (; ";")) (declaration "undefined4 local_bc;" (type_identifier "undefined4") (identifier "local_bc") (; ";")) (declaration "undefined4 local_b8;" (type_identifier "undefined4") (identifier "local_b8") (; ";")) (declaration "undefined4 local_b4;" (type_identifier "undefined4") (identifier "local_b4") (; ";")) (declaration "undefined4 local_b0;" (type_identifier "undefined4") (identifier "local_b0") (; ";")) (declaration "short local_ac;" (sized_type_specifier "short" (short "short")) (identifier "local_ac") (; ";")) (declaration "undefined2 local_aa;" (type_identifier "undefined2") (identifier "local_aa") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0003f2ec" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0003f2ec")) (; ";")) (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")))) (; ";")) (expression_statement "local_f4 = 1;" (assignment_expression "local_f4 = 1" (identifier "local_f4") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_f0 = (undefined2 *)0x0;" (assignment_expression "local_f0 = (undefined2 *)0x0" (identifier "local_f0") (= "=") (cast_expression "(undefined2 *)0x0" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((param_1 & 0x8000) != 0) {\n    param_1 = param_1 | 0x2400;\n  }" (if "if") (parenthesized_expression "((param_1 & 0x8000) != 0)" (( "(") (binary_expression "(param_1 & 0x8000) != 0" (parenthesized_expression "(param_1 & 0x8000)" (( "(") (binary_expression "param_1 & 0x8000" (identifier "param_1") (& "&") (number_literal "0x8000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    param_1 = param_1 | 0x2400;\n  }" ({ "{") (expression_statement "param_1 = param_1 | 0x2400;" (assignment_expression "param_1 = param_1 | 0x2400" (identifier "param_1") (= "=") (binary_expression "param_1 | 0x2400" (identifier "param_1") (| "|") (number_literal "0x2400"))) (; ";")) (} "}"))) (if_statement "if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;" (if "if") (parenthesized_expression "(param_5 == (undefined4 *)0x0)" (( "(") (binary_expression "param_5 == (undefined4 *)0x0" (identifier "param_5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001f94c;" (goto "goto") (statement_identifier "LAB_0001f94c") (; ";"))) (if_statement "if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;" (if "if") (parenthesized_expression "((param_1 & 0x240) == 0x240)" (( "(") (binary_expression "(param_1 & 0x240) == 0x240" (parenthesized_expression "(param_1 & 0x240)" (( "(") (binary_expression "param_1 & 0x240" (identifier "param_1") (& "&") (number_literal "0x240")) () ")")) (== "==") (number_literal "0x240")) () ")")) (goto_statement "goto LAB_0001f94c;" (goto "goto") (statement_identifier "LAB_0001f94c") (; ";"))) (if_statement "if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;" (if "if") (parenthesized_expression "((param_1 & 0x204) == 0x204)" (( "(") (binary_expression "(param_1 & 0x204) == 0x204" (parenthesized_expression "(param_1 & 0x204)" (( "(") (binary_expression "param_1 & 0x204" (identifier "param_1") (& "&") (number_literal "0x204")) () ")")) (== "==") (number_literal "0x204")) () ")")) (goto_statement "goto LAB_0001f94c;" (goto "goto") (statement_identifier "LAB_0001f94c") (; ";"))) (if_statement "if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;" (if "if") (parenthesized_expression "((param_1 & 0x4c) == 0x40)" (( "(") (binary_expression "(param_1 & 0x4c) == 0x40" (parenthesized_expression "(param_1 & 0x4c)" (( "(") (binary_expression "param_1 & 0x4c" (identifier "param_1") (& "&") (number_literal "0x4c")) () ")")) (== "==") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_0001f94c;" (goto "goto") (statement_identifier "LAB_0001f94c") (; ";"))) (if_statement "if ((int)(param_1 << 0xf) < 0) {\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }" (if "if") (parenthesized_expression "((int)(param_1 << 0xf) < 0)" (( "(") (binary_expression "(int)(param_1 << 0xf) < 0" (cast_expression "(int)(param_1 << 0xf)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1 << 0xf)" (( "(") (binary_expression "param_1 << 0xf" (identifier "param_1") (<< "<<") (number_literal "0xf")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;\n    if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }\n  }" ({ "{") (if_statement "if ((param_1 & 0x240) != 0) goto LAB_0001f94c;" (if "if") (parenthesized_expression "((param_1 & 0x240) != 0)" (( "(") (binary_expression "(param_1 & 0x240) != 0" (parenthesized_expression "(param_1 & 0x240)" (( "(") (binary_expression "param_1 & 0x240" (identifier "param_1") (& "&") (number_literal "0x240")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f94c;" (goto "goto") (statement_identifier "LAB_0001f94c") (; ";"))) (if_statement "if ((param_1 & 4) == 0) {\n      param_1 = param_1 | 0x200;\n    }\n    else {\n      param_1 = param_1 | 0x40;\n    }" (if "if") (parenthesized_expression "((param_1 & 4) == 0)" (( "(") (binary_expression "(param_1 & 4) == 0" (parenthesized_expression "(param_1 & 4)" (( "(") (binary_expression "param_1 & 4" (identifier "param_1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_1 = param_1 | 0x200;\n    }" ({ "{") (expression_statement "param_1 = param_1 | 0x200;" (assignment_expression "param_1 = param_1 | 0x200" (identifier "param_1") (= "=") (binary_expression "param_1 | 0x200" (identifier "param_1") (| "|") (number_literal "0x200"))) (; ";")) (} "}")) (else_clause "else {\n      param_1 = param_1 | 0x40;\n    }" (else "else") (compound_statement "{\n      param_1 = param_1 | 0x40;\n    }" ({ "{") (expression_statement "param_1 = param_1 | 0x40;" (assignment_expression "param_1 = param_1 | 0x40" (identifier "param_1") (= "=") (binary_expression "param_1 | 0x40" (identifier "param_1") (| "|") (number_literal "0x40"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);" (assignment_expression "puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_calloc_0003f144)(1,0x174)" (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,0x174)" (( "(") (number_literal "1") (, ",") (number_literal "0x174") () ")"))))) (; ";")) (if_statement "if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;" (if "if") (parenthesized_expression "(puVar2 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 == (undefined4 *)0x0" (identifier "puVar2") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001f94c;" (goto "goto") (statement_identifier "LAB_0001f94c") (; ";"))) (expression_statement "uVar15 = param_1 & 2;" (assignment_expression "uVar15 = param_1 & 2" (identifier "uVar15") (= "=") (binary_expression "param_1 & 2" (identifier "param_1") (& "&") (number_literal "2"))) (; ";")) (expression_statement "puVar2[0x43] = 0;" (assignment_expression "puVar2[0x43] = 0" (subscript_expression "puVar2[0x43]" (identifier "puVar2") ([ "[") (number_literal "0x43") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0x33] = 0xffffffff;" (assignment_expression "puVar2[0x33] = 0xffffffff" (subscript_expression "puVar2[0x33]" (identifier "puVar2") ([ "[") (number_literal "0x33") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar2[0x35] = 0xffffffff;" (assignment_expression "puVar2[0x35] = 0xffffffff" (subscript_expression "puVar2[0x35]" (identifier "puVar2") ([ "[") (number_literal "0x35") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (uVar15 != 0) {\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);\n  }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);" (call_expression "(*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0)" (parenthesized_expression "(*(code *)PTR_gnutls_priority_init_0003f2e0)" (( "(") (pointer_expression "*(code *)PTR_gnutls_priority_init_0003f2e0" (* "*") (cast_expression "(code *)PTR_gnutls_priority_init_0003f2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_priority_init_0003f2e0"))) () ")")) (argument_list "(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0)" (( "(") (binary_expression "puVar2 + 0x43" (identifier "puVar2") (+ "+") (number_literal "0x43")) (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2ff8" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2ff8")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2[0x32] = 0;" (assignment_expression "puVar2[0x32] = 0" (subscript_expression "puVar2[0x32]" (identifier "puVar2") ([ "[") (number_literal "0x32") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar2[0x3b] = 0x3fc;" (assignment_expression "puVar2[0x3b] = 0x3fc" (subscript_expression "puVar2[0x3b]" (identifier "puVar2") ([ "[") (number_literal "0x3b") (] "]")) (= "=") (number_literal "0x3fc")) (; ";")) (expression_statement "puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;" (assignment_expression "puVar2[0x40] = (param_1 << 0x1a) >> 0x1f" (subscript_expression "puVar2[0x40]" (identifier "puVar2") ([ "[") (number_literal "0x40") (] "]")) (= "=") (binary_expression "(param_1 << 0x1a) >> 0x1f" (parenthesized_expression "(param_1 << 0x1a)" (( "(") (binary_expression "param_1 << 0x1a" (identifier "param_1") (<< "<<") (number_literal "0x1a")) () ")")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "puVar2[0x1f] = 0x8000;" (assignment_expression "puVar2[0x1f] = 0x8000" (subscript_expression "puVar2[0x1f]" (identifier "puVar2") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0x8000")) (; ";")) (expression_statement "puVar2[0x31] = 0xffffffff;" (assignment_expression "puVar2[0x31] = 0xffffffff" (subscript_expression "puVar2[0x31]" (identifier "puVar2") ([ "[") (number_literal "0x31") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar2[0x20] = 0x400;" (assignment_expression "puVar2[0x20] = 0x400" (subscript_expression "puVar2[0x20]" (identifier "puVar2") ([ "[") (number_literal "0x20") (] "]")) (= "=") (number_literal "0x400")) (; ";")) (expression_statement "puVar10 = PTR_LAB_0003f084;" (assignment_expression "puVar10 = PTR_LAB_0003f084" (identifier "puVar10") (= "=") (identifier "PTR_LAB_0003f084")) (; ";")) (expression_statement "uVar14 = SUB42(param_2,0);" (assignment_expression "uVar14 = SUB42(param_2,0)" (identifier "uVar14") (= "=") (call_expression "SUB42(param_2,0)" (identifier "SUB42") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = uVar14;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = uVar14" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" (* "*") (cast_expression "(undefined2 *)(puVar2 + 0x3f)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x3f)" (( "(") (binary_expression "puVar2 + 0x3f" (identifier "puVar2") (+ "+") (number_literal "0x3f")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar2[0x10] = param_3;" (assignment_expression "puVar2[0x10] = param_3" (subscript_expression "puVar2[0x10]" (identifier "puVar2") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar2[0x11] = param_4;" (assignment_expression "puVar2[0x11] = param_4" (subscript_expression "puVar2[0x11]" (identifier "puVar2") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*puVar2 = param_5;" (assignment_expression "*puVar2 = param_5" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar2[0x18] = puVar10 + -0x6eb8;" (assignment_expression "puVar2[0x18] = puVar10 + -0x6eb8" (subscript_expression "puVar2[0x18]" (identifier "puVar2") ([ "[") (number_literal "0x18") (] "]")) (= "=") (binary_expression "puVar10 + -0x6eb8" (identifier "puVar10") (+ "+") (number_literal "-0x6eb8"))) (; ";")) (expression_statement "puVar2[1] = param_6;" (assignment_expression "puVar2[1] = param_6" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar2[0x5c] = 0x80;" (assignment_expression "puVar2[0x5c] = 0x80" (subscript_expression "puVar2[0x5c]" (identifier "puVar2") ([ "[") (number_literal "0x5c") (] "]")) (= "=") (number_literal "0x80")) (; ";")) (expression_statement "puVar10 = PTR_vfprintf_0003f1c0;" (assignment_expression "puVar10 = PTR_vfprintf_0003f1c0" (identifier "puVar10") (= "=") (identifier "PTR_vfprintf_0003f1c0")) (; ";")) (expression_statement "puVar2[0x3a] = 0;" (assignment_expression "puVar2[0x3a] = 0" (subscript_expression "puVar2[0x3a]" (identifier "puVar2") ([ "[") (number_literal "0x3a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0x3c] = 0;" (assignment_expression "puVar2[0x3c] = 0" (subscript_expression "puVar2[0x3c]" (identifier "puVar2") ([ "[") (number_literal "0x3c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0x1a] = puVar10;" (assignment_expression "puVar2[0x1a] = puVar10" (subscript_expression "puVar2[0x1a]" (identifier "puVar2") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "puVar10")) (; ";")) (expression_statement "puVar10 = PTR_stderr_0003f304;" (assignment_expression "puVar10 = PTR_stderr_0003f304" (identifier "puVar10") (= "=") (identifier "PTR_stderr_0003f304")) (; ";")) (expression_statement "puVar2[0x37] = 0xffffffff;" (assignment_expression "puVar2[0x37] = 0xffffffff" (subscript_expression "puVar2[0x37]" (identifier "puVar2") ([ "[") (number_literal "0x37") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar2[0x1b] = *(undefined4 *)puVar10;" (assignment_expression "puVar2[0x1b] = *(undefined4 *)puVar10" (subscript_expression "puVar2[0x1b]" (identifier "puVar2") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (pointer_expression "*(undefined4 *)puVar10" (* "*") (cast_expression "(undefined4 *)puVar10" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (if_statement "if ((param_1 & 0xc) == 4) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }\n  else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" (if "if") (parenthesized_expression "((param_1 & 0xc) == 4)" (( "(") (binary_expression "(param_1 & 0xc) == 4" (parenthesized_expression "(param_1 & 0xc)" (( "(") (binary_expression "param_1 & 0xc" (identifier "param_1") (& "&") (number_literal "0xc")) () ")")) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);\n    param_1 = puVar2[0x3e] | 8;\n    puVar2[0x3e] = param_1;\nLAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }\n  }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ff0)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2ff0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2ff0")) () ")"))) (; ";")) (expression_statement "param_1 = puVar2[0x3e] | 8;" (assignment_expression "param_1 = puVar2[0x3e] | 8" (identifier "param_1") (= "=") (binary_expression "puVar2[0x3e] | 8" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (| "|") (number_literal "8"))) (; ";")) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (identifier "param_1")) (; ";")) (labeled_statement "LAB_0001f9b4:\n    if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" (statement_identifier "LAB_0001f9b4") (: ":") (if_statement "if ((param_1 & 0x100) == 0) {\n      uVar15 = puVar2[0x3e] & 2;\n    }\n    else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" (if "if") (parenthesized_expression "((param_1 & 0x100) == 0)" (( "(") (binary_expression "(param_1 & 0x100) == 0" (parenthesized_expression "(param_1 & 0x100)" (( "(") (binary_expression "param_1 & 0x100" (identifier "param_1") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar15 = puVar2[0x3e] & 2;\n    }" ({ "{") (expression_statement "uVar15 = puVar2[0x3e] & 2;" (assignment_expression "uVar15 = puVar2[0x3e] & 2" (identifier "uVar15") (= "=") (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" (else "else") (compound_statement "{\n      puVar2[0x3e] = param_1 | 0x400;\n      uVar15 = param_1 & 2;\n    }" ({ "{") (expression_statement "puVar2[0x3e] = param_1 | 0x400;" (assignment_expression "puVar2[0x3e] = param_1 | 0x400" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (binary_expression "param_1 | 0x400" (identifier "param_1") (| "|") (number_literal "0x400"))) (; ";")) (expression_statement "uVar15 = param_1 & 2;" (assignment_expression "uVar15 = param_1 & 2" (identifier "uVar15") (= "=") (binary_expression "param_1 & 2" (identifier "param_1") (& "&") (number_literal "2"))) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" (else "else") (compound_statement "{\n    if ((param_1 & 8) != 0) goto LAB_0001f9b4;\n    param_1 = param_1 & 0xfffffbff;\n    puVar2[0x3e] = param_1;\n  }" ({ "{") (if_statement "if ((param_1 & 8) != 0) goto LAB_0001f9b4;" (if "if") (parenthesized_expression "((param_1 & 8) != 0)" (( "(") (binary_expression "(param_1 & 8) != 0" (parenthesized_expression "(param_1 & 8)" (( "(") (binary_expression "param_1 & 8" (identifier "param_1") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f9b4;" (goto "goto") (statement_identifier "LAB_0001f9b4") (; ";"))) (expression_statement "param_1 = param_1 & 0xfffffbff;" (assignment_expression "param_1 = param_1 & 0xfffffbff" (identifier "param_1") (= "=") (binary_expression "param_1 & 0xfffffbff" (identifier "param_1") (& "&") (number_literal "0xfffffbff"))) (; ";")) (expression_statement "puVar2[0x3e] = param_1;" (assignment_expression "puVar2[0x3e] = param_1" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (identifier "param_1")) (; ";")) (} "}")))) (expression_statement "puVar2[0x59] = 0;" (assignment_expression "puVar2[0x59] = 0" (subscript_expression "puVar2[0x59]" (identifier "puVar2") ([ "[") (number_literal "0x59") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0x51] = 0;" (assignment_expression "puVar2[0x51] = 0" (subscript_expression "puVar2[0x51]" (identifier "puVar2") ([ "[") (number_literal "0x51") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0x5a] = 4;" (assignment_expression "puVar2[0x5a] = 4" (subscript_expression "puVar2[0x5a]" (identifier "puVar2") ([ "[") (number_literal "0x5a") (] "]")) (= "=") (number_literal "4")) (; ";")) (if_statement "if (uVar15 != 0) {\n    puVar2[0x44] = 1;\n  }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar2[0x44] = 1;\n  }" ({ "{") (expression_statement "puVar2[0x44] = 1;" (assignment_expression "puVar2[0x44] = 1" (subscript_expression "puVar2[0x44]" (identifier "puVar2") ([ "[") (number_literal "0x44") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00019160(puVar2,&local_f0,param_7);" (assignment_expression "iVar3 = FUN_00019160(puVar2,&local_f0,param_7)" (identifier "iVar3") (= "=") (call_expression "FUN_00019160(puVar2,&local_f0,param_7)" (identifier "FUN_00019160") (argument_list "(puVar2,&local_f0,param_7)" (( "(") (identifier "puVar2") (, ",") (pointer_expression "&local_f0" (& "&") (identifier "local_f0")) (, ",") (identifier "param_7") () ")")))) (; ";")) (if_statement "if (iVar3 != 1) {\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }" (if "if") (parenthesized_expression "(iVar3 != 1)" (( "(") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;\nLAB_0001fc74:\n    iVar3 = puVar2[0x43];\njoined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)();\n    goto LAB_0001fc50;\n  }" ({ "{") (if_statement "if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;" (if "if") (parenthesized_expression "((puVar2[0x3e] & 2) == 0)" (( "(") (binary_expression "(puVar2[0x3e] & 2) == 0" (parenthesized_expression "(puVar2[0x3e] & 2)" (( "(") (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001fc50;" (goto "goto") (statement_identifier "LAB_0001fc50") (; ";"))) (labeled_statement "LAB_0001fc74:\n    iVar3 = puVar2[0x43];" (statement_identifier "LAB_0001fc74") (: ":") (expression_statement "iVar3 = puVar2[0x43];" (assignment_expression "iVar3 = puVar2[0x43]" (identifier "iVar3") (= "=") (subscript_expression "puVar2[0x43]" (identifier "puVar2") ([ "[") (number_literal "0x43") (] "]"))) (; ";"))) (labeled_statement "joined_r0x0002099c:\n    if (iVar3 == 0) goto LAB_0001fc50;" (statement_identifier "joined_r0x0002099c") (: ":") (if_statement "if (iVar3 == 0) goto LAB_0001fc50;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001fc50;" (goto "goto") (statement_identifier "LAB_0001fc50") (; ";")))) (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)();" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)()" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" (( "(") (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" (* "*") (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_priority_deinit_0003f170"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0001fc50;" (goto "goto") (statement_identifier "LAB_0001fc50") (; ";")) (} "}"))) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]"))) (; ";")) (if_statement "if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }\n  else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((puVar2[0x12] == 0) || ((uVar15 & 4) == 0))" (( "(") (binary_expression "(puVar2[0x12] == 0) || ((uVar15 & 4) == 0)" (parenthesized_expression "(puVar2[0x12] == 0)" (( "(") (binary_expression "puVar2[0x12] == 0" (subscript_expression "puVar2[0x12]" (identifier "puVar2") ([ "[") (number_literal "0x12") (] "]")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar15 & 4) == 0)" (( "(") (binary_expression "(uVar15 & 4) == 0" (parenthesized_expression "(uVar15 & 4)" (( "(") (binary_expression "uVar15 & 4" (identifier "uVar15") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;\n  }" ({ "{") (if_statement "if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;" (if "if") (parenthesized_expression "((uVar15 & 0x400) != 0)" (( "(") (binary_expression "(uVar15 & 0x400) != 0" (parenthesized_expression "(uVar15 & 0x400)" (( "(") (binary_expression "uVar15 & 0x400" (identifier "uVar15") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f9d4;" (goto "goto") (statement_identifier "LAB_0001f9d4") (; ";"))) (} "}")) (else_clause "else {\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    puVar2[0x3e] = uVar15 | 0x400;\nLAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }\n  }" ({ "{") (expression_statement "puVar2[0x3e] = uVar15 | 0x400;" (assignment_expression "puVar2[0x3e] = uVar15 | 0x400" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (binary_expression "uVar15 | 0x400" (identifier "uVar15") (| "|") (number_literal "0x400"))) (; ";")) (labeled_statement "LAB_0001f9d4:\n    if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" (statement_identifier "LAB_0001f9d4") (: ":") (if_statement "if (puVar2[0x22] == 0) {\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" (if "if") (parenthesized_expression "(puVar2[0x22] == 0)" (( "(") (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n      puVar2[0x37] = iVar3;\n      if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }\n      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }\n    }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);" (assignment_expression "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_eventfd_0003f180)(0,0x80080)" (parenthesized_expression "(*(code *)PTR_eventfd_0003f180)" (( "(") (pointer_expression "*(code *)PTR_eventfd_0003f180" (* "*") (cast_expression "(code *)PTR_eventfd_0003f180" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_eventfd_0003f180"))) () ")")) (argument_list "(0,0x80080)" (( "(") (number_literal "0") (, ",") (number_literal "0x80080") () ")")))) (; ";")) (expression_statement "puVar2[0x37] = iVar3;" (assignment_expression "puVar2[0x37] = iVar3" (subscript_expression "puVar2[0x37]" (identifier "puVar2") ([ "[") (number_literal "0x37") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == -1) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);\n        iVar3 = puVar2[0x43];\n        goto joined_r0x0002099c;\n      }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2f20" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2f20")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "iVar3 = puVar2[0x43];" (assignment_expression "iVar3 = puVar2[0x43]" (identifier "iVar3") (= "=") (subscript_expression "puVar2[0x43]" (identifier "puVar2") ([ "[") (number_literal "0x43") (] "]"))) (; ";")) (goto_statement "goto joined_r0x0002099c;" (goto "goto") (statement_identifier "joined_r0x0002099c") (; ";")) (} "}"))) (if_statement "if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }" (if "if") (parenthesized_expression "(((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3))" (( "(") (binary_expression "((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)" (parenthesized_expression "((puVar2[0x3e] & 0x240) == 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x240) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" (( "(") (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x240")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(0x3ff < iVar3)" (( "(") (binary_expression "0x3ff < iVar3" (number_literal "0x3ff") (< "<") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);\n        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);\n        if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }\n        goto LAB_0001fc74;\n      }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ee4)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2ee4" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2ee4")) () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37])" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(puVar2[0x37])" (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 "(puVar2[0x37])" (( "(") (subscript_expression "puVar2[0x37]" (identifier "puVar2") ([ "[") (number_literal "0x37") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x1636;\n          if (*piVar4 == 9) goto LAB_0001f91c;\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 "uVar11 = 0x1636;" (assignment_expression "uVar11 = 0x1636" (identifier "uVar11") (= "=") (number_literal "0x1636")) (; ";")) (if_statement "if (*piVar4 == 9) goto LAB_0001f91c;" (if "if") (parenthesized_expression "(*piVar4 == 9)" (( "(") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001f91c;" (goto "goto") (statement_identifier "LAB_0001f91c") (; ";"))) (} "}"))) (goto_statement "goto LAB_0001fc74;" (goto "goto") (statement_identifier "LAB_0001fc74") (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "uVar15 = puVar2[0x5a];" (assignment_expression "uVar15 = puVar2[0x5a]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x5a]" (identifier "puVar2") ([ "[") (number_literal "0x5a") (] "]"))) (; ";")) (if_statement "if (uVar15 != 0) {\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }\n    iVar3 = (*(code *)PTR_malloc_0003f25c)();\n    puVar2[0x52] = iVar3;\n    if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }\n  }" ({ "{") (if_statement "if (uVar15 != (uVar15 * 0x98) / 0x98) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }" (if "if") (parenthesized_expression "(uVar15 != (uVar15 * 0x98) / 0x98)" (( "(") (binary_expression "uVar15 != (uVar15 * 0x98) / 0x98" (identifier "uVar15") (!= "!=") (binary_expression "(uVar15 * 0x98) / 0x98" (parenthesized_expression "(uVar15 * 0x98)" (( "(") (binary_expression "uVar15 * 0x98" (identifier "uVar15") (* "*") (number_literal "0x98")) () ")")) (/ "/") (number_literal "0x98"))) () ")")) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);\n      uVar15 = puVar2[0x3e];\njoined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n      goto LAB_0001fc50;\n    }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e94)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2e94" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2e94")) () ")"))) (; ";")) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]"))) (; ";")) (labeled_statement "joined_r0x0001fc44:\n      if ((uVar15 & 2) == 0) goto LAB_0001fc50;" (statement_identifier "joined_r0x0001fc44") (: ":") (if_statement "if ((uVar15 & 2) == 0) goto LAB_0001fc50;" (if "if") (parenthesized_expression "((uVar15 & 2) == 0)" (( "(") (binary_expression "(uVar15 & 2) == 0" (parenthesized_expression "(uVar15 & 2)" (( "(") (binary_expression "uVar15 & 2" (identifier "uVar15") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001fc50;" (goto "goto") (statement_identifier "LAB_0001fc50") (; ";")))) (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" (( "(") (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" (* "*") (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_priority_deinit_0003f170"))) () ")")) (argument_list "(puVar2[0x43])" (( "(") (subscript_expression "puVar2[0x43]" (identifier "puVar2") ([ "[") (number_literal "0x43") (] "]")) () ")"))) (; ";")) (goto_statement "goto LAB_0001fc50;" (goto "goto") (statement_identifier "LAB_0001fc50") (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_malloc_0003f25c)();" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0003f25c)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_malloc_0003f25c)()" (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 "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar2[0x52] = iVar3;" (assignment_expression "puVar2[0x52] = iVar3" (subscript_expression "puVar2[0x52]" (identifier "puVar2") ([ "[") (number_literal "0x52") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == 0) {\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);\n      uVar15 = puVar2[0x3e];\n      goto joined_r0x0001fc44;\n    }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2e6c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2e6c")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]"))) (; ";")) (goto_statement "goto joined_r0x0001fc44;" (goto "goto") (statement_identifier "joined_r0x0001fc44") (; ";")) (} "}"))) (} "}"))) (expression_statement "param_5 = puVar2 + 0x53;" (assignment_expression "param_5 = puVar2 + 0x53" (identifier "param_5") (= "=") (binary_expression "puVar2 + 0x53" (identifier "puVar2") (+ "+") (number_literal "0x53"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" (* "*") (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_init_0003f2dc"))) () ")")) (argument_list "(param_5,0)" (( "(") (identifier "param_5") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);\n    if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }\n    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);\n    puVar5 = (undefined4 *)0x0;\n    (*(code *)PTR_free_0003f2f8)(puVar2);\n    goto LAB_0001f950;\n  }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e3c)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2e3c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2e3c")) () ")"))) (; ";")) (if_statement "if ((puVar2[0x3e] & 2) != 0) {\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }" (if "if") (parenthesized_expression "((puVar2[0x3e] & 2) != 0)" (( "(") (binary_expression "(puVar2[0x3e] & 2) != 0" (parenthesized_expression "(puVar2[0x3e] & 2)" (( "(") (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n    }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" (( "(") (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" (* "*") (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_priority_deinit_0003f170"))) () ")")) (argument_list "(puVar2[0x43])" (( "(") (subscript_expression "puVar2[0x43]" (identifier "puVar2") ([ "[") (number_literal "0x43") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2[0x52]);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2[0x52])" (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 "(puVar2[0x52])" (( "(") (subscript_expression "puVar2[0x52]" (identifier "puVar2") ([ "[") (number_literal "0x52") (] "]")) () ")"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2)" (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 "(puVar2)" (( "(") (identifier "puVar2") () ")"))) (; ";")) (goto_statement "goto LAB_0001f950;" (goto "goto") (statement_identifier "LAB_0001f950") (; ";")) (} "}"))) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]"))) (; ";")) (if_statement "if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }" (if "if") (parenthesized_expression "(((uVar15 & 8) == 0) && (puVar2[0x22] != 0))" (( "(") (binary_expression "((uVar15 & 8) == 0) && (puVar2[0x22] != 0)" (parenthesized_expression "((uVar15 & 8) == 0)" (( "(") (binary_expression "(uVar15 & 8) == 0" (parenthesized_expression "(uVar15 & 8)" (( "(") (binary_expression "uVar15 & 8" (identifier "uVar15") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar2[0x22] != 0)" (( "(") (binary_expression "puVar2[0x22] != 0" (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);\n    goto LAB_0001f860;\n  }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2e10)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2e10" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2e10")) () ")"))) (; ";")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";")) (} "}"))) (expression_statement "param_1 = puVar2[0x31];" (assignment_expression "param_1 = puVar2[0x31]" (identifier "param_1") (= "=") (subscript_expression "puVar2[0x31]" (identifier "puVar2") ([ "[") (number_literal "0x31") (] "]"))) (; ";")) (if_statement "if (param_1 == 0xffffffff) {\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }\n  else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 0xffffffff)" (( "(") (binary_expression "param_1 == 0xffffffff" (identifier "param_1") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }\nLAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }\n  }" ({ "{") (if_statement "if ((uVar15 & 0x100) == 0) {\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }" (if "if") (parenthesized_expression "((uVar15 & 0x100) == 0)" (( "(") (binary_expression "(uVar15 & 0x100) == 0" (parenthesized_expression "(uVar15 & 0x100)" (( "(") (binary_expression "uVar15 & 0x100" (identifier "uVar15") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = 10;\n      if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }\n      param_1 = FUN_0002234c(uVar11);\n      if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }\n      if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }\n      if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);\n      puVar10 = PTR_setsockopt_0003f340;\n      if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }\n      if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);\n      if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }\n      goto LAB_0001f7e0;\n    }" ({ "{") (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" (identifier "uVar11") (= "=") (number_literal "10")) (; ";")) (if_statement "if ((uVar15 & 0x10) == 0) {\n        uVar11 = 2;\n      }" (if "if") (parenthesized_expression "((uVar15 & 0x10) == 0)" (( "(") (binary_expression "(uVar15 & 0x10) == 0" (parenthesized_expression "(uVar15 & 0x10)" (( "(") (binary_expression "uVar15 & 0x10" (identifier "uVar15") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar11 = 2;\n      }" ({ "{") (expression_statement "uVar11 = 2;" (assignment_expression "uVar11 = 2" (identifier "uVar11") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "param_1 = FUN_0002234c(uVar11);" (assignment_expression "param_1 = FUN_0002234c(uVar11)" (identifier "param_1") (= "=") (call_expression "FUN_0002234c(uVar11)" (identifier "FUN_0002234c") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if (param_1 == 0xffffffff) {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }" (if "if") (parenthesized_expression "(param_1 == 0xffffffff)" (( "(") (binary_expression "param_1 == 0xffffffff" (identifier "param_1") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);\n        goto LAB_0001f860;\n      }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2dcc" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2dcc")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";")) (} "}"))) (if_statement "if (puVar2[0x32] == 0) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }\n      else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" (if "if") (parenthesized_expression "(puVar2[0x32] == 0)" (( "(") (binary_expression "puVar2[0x32] == 0" (subscript_expression "puVar2[0x32]" (identifier "puVar2") ([ "[") (number_literal "0x32") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" (( "(") (pointer_expression "*(code *)PTR_setsockopt_0003f340" (* "*") (cast_expression "(code *)PTR_setsockopt_0003f340" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_setsockopt_0003f340"))) () ")")) (argument_list "(param_1,0xffff,4,&local_f4,4)" (( "(") (identifier "param_1") (, ",") (number_literal "0xffff") (, ",") (number_literal "4") (, ",") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2da0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2da0")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" (else "else") (if_statement "if (0 < (int)puVar2[0x32]) {\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" (if "if") (parenthesized_expression "(0 < (int)puVar2[0x32])" (( "(") (binary_expression "0 < (int)puVar2[0x32]" (number_literal "0") (< "<") (cast_expression "(int)puVar2[0x32]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar2[0x32]" (identifier "puVar2") ([ "[") (number_literal "0x32") (] "]")))) () ")")) (compound_statement "{\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }\n      }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" (( "(") (pointer_expression "*(code *)PTR_setsockopt_0003f340" (* "*") (cast_expression "(code *)PTR_setsockopt_0003f340" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_setsockopt_0003f340"))) () ")")) (argument_list "(param_1,0xffff,4,&local_f4,4)" (( "(") (identifier "param_1") (, ",") (number_literal "0xffff") (, ",") (number_literal "4") (, ",") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2da0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2da0")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" (( "(") (pointer_expression "*(code *)PTR_setsockopt_0003f340" (* "*") (cast_expression "(code *)PTR_setsockopt_0003f340" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_setsockopt_0003f340"))) () ")")) (argument_list "(param_1,0xffff,0x200,&local_f4,4)" (( "(") (identifier "param_1") (, ",") (number_literal "0xffff") (, ",") (number_literal "0x200") (, ",") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n          goto LAB_0001f860;\n        }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2da0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2da0")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";")) (} "}"))) (} "}"))))) (if_statement "if ((puVar2[0x3e] & 0x10) == 0) {\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }\n      else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" (if "if") (parenthesized_expression "((puVar2[0x3e] & 0x10) == 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x10) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x10)" (( "(") (binary_expression "puVar2[0x3e] & 0x10" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_ec = 0x10;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n      }" ({ "{") (expression_statement "local_ec = 0x10;" (assignment_expression "local_ec = 0x10" (identifier "local_ec") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if (local_f0 == (undefined2 *)0x0) {\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }" (if "if") (parenthesized_expression "(local_f0 == (undefined2 *)0x0)" (( "(") (binary_expression "local_f0 == (undefined2 *)0x0" (identifier "local_f0") (== "==") (cast_expression "(undefined2 *)0x0" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_d4 = 0;\n          local_d0 = 0;\n          local_d8 = 2;\n          local_f0 = &local_d8;\n          local_cc = 0;\n          puVar2[0x31] = param_1;\n          local_d6 = uVar14;\n        }" ({ "{") (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d8 = 2;" (assignment_expression "local_d8 = 2" (identifier "local_d8") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_f0 = &local_d8;" (assignment_expression "local_f0 = &local_d8" (identifier "local_f0") (= "=") (pointer_expression "&local_d8" (& "&") (identifier "local_d8"))) (; ";")) (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" (identifier "local_cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" (identifier "puVar2") ([ "[") (number_literal "0x31") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_d6 = uVar14;" (assignment_expression "local_d6 = uVar14" (identifier "local_d6") (= "=") (identifier "uVar14")) (; ";")) (} "}")) (else_clause "else {\n          puVar2[0x31] = param_1;\n        }" (else "else") (compound_statement "{\n          puVar2[0x31] = param_1;\n        }" ({ "{") (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" (identifier "puVar2") ([ "[") (number_literal "0x31") (] "]")) (= "=") (identifier "param_1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" (else "else") (compound_statement "{\n        local_ec = 0x1c;\n        if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }\n        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);\n        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);\n        if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" ({ "{") (expression_statement "local_ec = 0x1c;" (assignment_expression "local_ec = 0x1c" (identifier "local_ec") (= "=") (number_literal "0x1c")) (; ";")) (if_statement "if (local_f0 == (undefined2 *)0x0) {\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }\n        else {\n          puVar2[0x31] = param_1;\n        }" (if "if") (parenthesized_expression "(local_f0 == (undefined2 *)0x0)" (( "(") (binary_expression "local_f0 == (undefined2 *)0x0" (identifier "local_f0") (== "==") (cast_expression "(undefined2 *)0x0" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_c4 = 0;\n          local_b0 = 0;\n          local_c8 = 10;\n          local_f0 = &local_c8;\n          local_c0 = 0;\n          local_bc = 0;\n          local_b8 = 0;\n          local_b4 = 0;\n          puVar2[0x31] = param_1;\n          local_c6 = uVar14;\n        }" ({ "{") (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" (identifier "local_c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 10;" (assignment_expression "local_c8 = 10" (identifier "local_c8") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_f0 = &local_c8;" (assignment_expression "local_f0 = &local_c8" (identifier "local_f0") (= "=") (pointer_expression "&local_c8" (& "&") (identifier "local_c8"))) (; ";")) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" (identifier "local_c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" (identifier "puVar2") ([ "[") (number_literal "0x31") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_c6 = uVar14;" (assignment_expression "local_c6 = uVar14" (identifier "local_c6") (= "=") (identifier "uVar14")) (; ";")) (} "}")) (else_clause "else {\n          puVar2[0x31] = param_1;\n        }" (else "else") (compound_statement "{\n          puVar2[0x31] = param_1;\n        }" ({ "{") (expression_statement "puVar2[0x31] = param_1;" (assignment_expression "puVar2[0x31] = param_1" (subscript_expression "puVar2[0x31]" (identifier "puVar2") ([ "[") (number_literal "0x31") (] "]")) (= "=") (identifier "param_1")) (; ";")) (} "}")))) (expression_statement "local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);" (assignment_expression "local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810)" (identifier "local_e0") (= "=") (cast_expression "(int *)(uint)((puVar2[0x3e] & 0x810) != 0x810)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)((puVar2[0x3e] & 0x810) != 0x810)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((puVar2[0x3e] & 0x810) != 0x810)" (( "(") (binary_expression "(puVar2[0x3e] & 0x810) != 0x810" (parenthesized_expression "(puVar2[0x3e] & 0x810)" (( "(") (binary_expression "puVar2[0x3e] & 0x810" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x810")) () ")")) (!= "!=") (number_literal "0x810")) () ")"))))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);" (assignment_expression "iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4)" (parenthesized_expression "(*(code *)PTR_setsockopt_0003f340)" (( "(") (pointer_expression "*(code *)PTR_setsockopt_0003f340" (* "*") (cast_expression "(code *)PTR_setsockopt_0003f340" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_setsockopt_0003f340"))) () ")")) (argument_list "(param_1,0x29,0x1a,&local_e0,4)" (( "(") (identifier "param_1") (, ",") (number_literal "0x29") (, ",") (number_literal "0x1a") (, ",") (pointer_expression "&local_e0" (& "&") (identifier "local_e0")) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2da0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2da0")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);" (assignment_expression "iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec)" (parenthesized_expression "(*(code *)PTR_bind_0003f21c)" (( "(") (pointer_expression "*(code *)PTR_bind_0003f21c" (* "*") (cast_expression "(code *)PTR_bind_0003f21c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_bind_0003f21c"))) () ")")) (argument_list "(param_1,local_f0,local_ec)" (( "(") (identifier "param_1") (, ",") (identifier "local_f0") (, ",") (identifier "local_ec") () ")")))) (; ";")) (expression_statement "puVar10 = PTR_setsockopt_0003f340;" (assignment_expression "puVar10 = PTR_setsockopt_0003f340" (identifier "puVar10") (= "=") (identifier "PTR_setsockopt_0003f340")) (; ";")) (if_statement "if (iVar3 == -1) {\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *piVar4;\n        uVar11 = 0x1753;\n        goto joined_r0x00020848;\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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*piVar4)" (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 "(*piVar4)" (( "(") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2d88" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2d88")) (, ",") (identifier "param_2") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (expression_statement "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" (identifier "iVar3") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar11 = 0x1753;" (assignment_expression "uVar11 = 0x1753" (identifier "uVar11") (= "=") (number_literal "0x1753")) (; ";")) (goto_statement "goto joined_r0x00020848;" (goto "goto") (statement_identifier "joined_r0x00020848") (; ";")) (} "}"))) (if_statement "if ((puVar2[0x3e] & 0x4000) != 0) {\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" (if "if") (parenthesized_expression "((puVar2[0x3e] & 0x4000) != 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x4000) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x4000)" (( "(") (binary_expression "puVar2[0x3e] & 0x4000" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }\n        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);\n        if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }\n      }" ({ "{") (if_statement "if (puVar2[0x5b] == 0) {\n          puVar2[0x5b] = 10;\n        }" (if "if") (parenthesized_expression "(puVar2[0x5b] == 0)" (( "(") (binary_expression "puVar2[0x5b] == 0" (subscript_expression "puVar2[0x5b]" (identifier "puVar2") ([ "[") (number_literal "0x5b") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar2[0x5b] = 10;\n        }" ({ "{") (expression_statement "puVar2[0x5b] = 10;" (assignment_expression "puVar2[0x5b] = 10" (subscript_expression "puVar2[0x5b]" (identifier "puVar2") ([ "[") (number_literal "0x5b") (] "]")) (= "=") (number_literal "10")) (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);" (assignment_expression "iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4)" (identifier "iVar3") (= "=") (call_expression "(*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4)" (parenthesized_expression "(*(code *)puVar10)" (( "(") (pointer_expression "*(code *)puVar10" (* "*") (cast_expression "(code *)puVar10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) () ")")) (argument_list "(param_1,6,0x17,puVar2 + 0x5b,4)" (( "(") (identifier "param_1") (, ",") (number_literal "6") (, ",") (number_literal "0x17") (, ",") (binary_expression "puVar2 + 0x5b" (identifier "puVar2") (+ "+") (number_literal "0x5b")) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);\n        }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2da0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2da0")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);" (assignment_expression "iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c])" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c])" (parenthesized_expression "(*(code *)PTR_listen_0003f1b8)" (( "(") (pointer_expression "*(code *)PTR_listen_0003f1b8" (* "*") (cast_expression "(code *)PTR_listen_0003f1b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_listen_0003f1b8"))) () ")")) (argument_list "(param_1,puVar2[0x5c])" (( "(") (identifier "param_1") (, ",") (subscript_expression "puVar2[0x5c]" (identifier "puVar2") ([ "[") (number_literal "0x5c") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);\n        iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n        if (iVar3 == 0) goto LAB_0001f860;\n        iVar3 = *param_2;\n        uVar11 = 0x1771;\n        goto joined_r0x00020848;\n      }" ({ "{") (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "param_2") (= "=") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2d68" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2d68")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" (identifier "iVar3") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar11 = 0x1771;" (assignment_expression "uVar11 = 0x1771" (identifier "uVar11") (= "=") (number_literal "0x1771")) (; ";")) (goto_statement "goto joined_r0x00020848;" (goto "goto") (statement_identifier "joined_r0x00020848") (; ";")) (} "}"))) (goto_statement "goto LAB_0001f7e0;" (goto "goto") (statement_identifier "LAB_0001f7e0") (; ";")) (} "}"))) (labeled_statement "LAB_0001f82c:\n    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" (statement_identifier "LAB_0001f82c") (: ":") (if_statement "if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" (if "if") (parenthesized_expression "(((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0))" (( "(") (binary_expression "((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)" (parenthesized_expression "((uVar15 & 0x200) != 0)" (( "(") (binary_expression "(uVar15 & 0x200) != 0" (parenthesized_expression "(uVar15 & 0x200)" (( "(") (binary_expression "uVar15 & 0x200" (identifier "uVar15") (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar2[0x22] == 0)" (( "(") (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;\n      iVar3 = FUN_0001b338(puVar2);\n      if (iVar3 != 1) goto LAB_0001f860;\n    }" ({ "{") (if_statement "if ((uVar15 & 4) != 0) goto LAB_0001fdf8;" (if "if") (parenthesized_expression "((uVar15 & 4) != 0)" (( "(") (binary_expression "(uVar15 & 4) != 0" (parenthesized_expression "(uVar15 & 4)" (( "(") (binary_expression "uVar15 & 4" (identifier "uVar15") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001fdf8;" (goto "goto") (statement_identifier "LAB_0001fdf8") (; ";"))) (expression_statement "iVar3 = FUN_0001b338(puVar2);" (assignment_expression "iVar3 = FUN_0001b338(puVar2)" (identifier "iVar3") (= "=") (call_expression "FUN_0001b338(puVar2)" (identifier "FUN_0001b338") (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")")))) (; ";")) (if_statement "if (iVar3 != 1) goto LAB_0001f860;" (if "if") (parenthesized_expression "(iVar3 != 1)" (( "(") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (} "}")))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" (* "*") (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_init_0003f2dc"))) () ")")) (argument_list "(puVar2 + 0x25,0)" (( "(") (binary_expression "puVar2 + 0x25" (identifier "puVar2") (+ "+") (number_literal "0x25")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\nLAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17fc;\n      goto joined_r0x00020848;\n    }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2c28" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2c28")) () ")"))) (; ";")) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" (if "if") (parenthesized_expression "(param_1 == 0xffffffff)" (( "(") (binary_expression "param_1 == 0xffffffff" (identifier "param_1") (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (labeled_statement "LAB_0001ff08:\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (statement_identifier "LAB_0001ff08") (: ":") (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" (identifier "iVar3") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar11 = 0x17fc;" (assignment_expression "uVar11 = 0x17fc" (identifier "uVar11") (= "=") (number_literal "0x17fc")) (; ";")) (goto_statement "goto joined_r0x00020848;" (goto "goto") (statement_identifier "joined_r0x00020848") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" (else "else") (compound_statement "{\nLAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }\n    iVar3 = FUN_00022234(param_1);\n    if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }\n    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);\n    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;\n    if (puVar2[0x22] != 0) goto LAB_00020280;\n    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }\n  }" ({ "{") (labeled_statement "LAB_0001f7e0:\n    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" (statement_identifier "LAB_0001f7e0") (: ":") (if_statement "if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" (if "if") (parenthesized_expression "((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0))" (( "(") (binary_expression "(*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)" (parenthesized_expression "(*(short *)(puVar2 + 0x3f) == 0)" (( "(") (binary_expression "*(short *)(puVar2 + 0x3f) == 0" (pointer_expression "*(short *)(puVar2 + 0x3f)" (* "*") (cast_expression "(short *)(puVar2 + 0x3f)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x3f)" (( "(") (binary_expression "puVar2 + 0x3f" (identifier "puVar2") (+ "+") (number_literal "0x3f")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((puVar2[0x3e] & 0x100) == 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x100) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x100)" (( "(") (binary_expression "puVar2[0x3e] & 0x100" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);\n      local_ec = 0x80;\n      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);\n      if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }\n    }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);" (assignment_expression "uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80)" (parenthesized_expression "(*(code *)PTR_memset_0003f20c)" (( "(") (pointer_expression "*(code *)PTR_memset_0003f20c" (* "*") (cast_expression "(code *)PTR_memset_0003f20c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_0003f20c"))) () ")")) (argument_list "(&local_ac,0,0x80)" (( "(") (pointer_expression "&local_ac" (& "&") (identifier "local_ac")) (, ",") (number_literal "0") (, ",") (number_literal "0x80") () ")")))) (; ";")) (expression_statement "local_ec = 0x80;" (assignment_expression "local_ec = 0x80" (identifier "local_ec") (= "=") (number_literal "0x80")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);" (assignment_expression "iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec)" (parenthesized_expression "(*(code *)PTR_getsockname_0003f19c)" (( "(") (pointer_expression "*(code *)PTR_getsockname_0003f19c" (* "*") (cast_expression "(code *)PTR_getsockname_0003f19c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getsockname_0003f19c"))) () ")")) (argument_list "(param_1,uVar11,&local_ec)" (( "(") (identifier "param_1") (, ",") (identifier "uVar11") (, ",") (pointer_expression "&local_ec" (& "&") (identifier "local_ec")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }\n      else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }\n      }" ({ "{") (if_statement "if (local_ec < 0x81) {\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }\n        else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" (if "if") (parenthesized_expression "(local_ec < 0x81)" (( "(") (binary_expression "local_ec < 0x81" (identifier "local_ec") (< "<") (number_literal "0x81")) () ")")) (compound_statement "{\n          if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }\n        }" ({ "{") (if_statement "if ((local_ac == 2) || (local_ac == 10)) {\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }\n          else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" (if "if") (parenthesized_expression "((local_ac == 2) || (local_ac == 10))" (( "(") (binary_expression "(local_ac == 2) || (local_ac == 10)" (parenthesized_expression "(local_ac == 2)" (( "(") (binary_expression "local_ac == 2" (identifier "local_ac") (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(local_ac == 10)" (( "(") (binary_expression "local_ac == 10" (identifier "local_ac") (== "==") (number_literal "10")) () ")"))) () ")")) (compound_statement "{\n            *(undefined2 *)(puVar2 + 0x3f) = local_aa;\n          }" ({ "{") (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = local_aa;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = local_aa" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" (* "*") (cast_expression "(undefined2 *)(puVar2 + 0x3f)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x3f)" (( "(") (binary_expression "puVar2 + 0x3f" (identifier "puVar2") (+ "+") (number_literal "0x3f")) () ")")))) (= "=") (identifier "local_aa")) (; ";")) (} "}")) (else_clause "else {\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" (else "else") (compound_statement "{\n            if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }\n            *(undefined2 *)(puVar2 + 0x3f) = 0;\n          }" ({ "{") (if_statement "if (local_ac != 1) {\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }" (if "if") (parenthesized_expression "(local_ac != 1)" (( "(") (binary_expression "local_ac != 1" (identifier "local_ac") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);\n            }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ccc)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2ccc" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2ccc")) () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined2 *)(puVar2 + 0x3f) = 0;" (assignment_expression "*(undefined2 *)(puVar2 + 0x3f) = 0" (pointer_expression "*(undefined2 *)(puVar2 + 0x3f)" (* "*") (cast_expression "(undefined2 *)(puVar2 + 0x3f)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x3f)" (( "(") (binary_expression "puVar2 + 0x3f" (identifier "puVar2") (+ "+") (number_literal "0x3f")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" (else "else") (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);\n        }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d18)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2d18" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2d18")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" (else "else") (compound_statement "{\n        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);\n      }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar5)" (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 "(*puVar5)" (( "(") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2d40" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2d40")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar3 = FUN_00022234(param_1);" (assignment_expression "iVar3 = FUN_00022234(param_1)" (identifier "iVar3") (= "=") (call_expression "FUN_00022234(param_1)" (identifier "FUN_00022234") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar15 = puVar2[0x3e];\n      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;\n      goto LAB_0001f82c;\n    }" ({ "{") (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]"))) (; ";")) (if_statement "if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;" (if "if") (parenthesized_expression "((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0))" (( "(") (binary_expression "(0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_1)" (( "(") (binary_expression "0x3ff < (int)param_1" (number_literal "0x3ff") (< "<") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")) (&& "&&") (parenthesized_expression "((uVar15 & 0x240) == 0)" (( "(") (binary_expression "(uVar15 & 0x240) == 0" (parenthesized_expression "(uVar15 & 0x240)" (( "(") (binary_expression "uVar15 & 0x240" (identifier "uVar15") (& "&") (number_literal "0x240")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0002006c;" (goto "goto") (statement_identifier "LAB_0002006c") (; ";"))) (goto_statement "goto LAB_0001f82c;" (goto "goto") (statement_identifier "LAB_0001f82c") (; ";")) (} "}"))) (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "param_2") (= "=") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2cb0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2cb0")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (if_statement "if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;" (if "if") (parenthesized_expression "((puVar2[0x3e] & 0x200) != 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x200) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x200)" (( "(") (binary_expression "puVar2[0x3e] & 0x200" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020280;" (goto "goto") (statement_identifier "LAB_00020280") (; ";"))) (if_statement "if (puVar2[0x22] != 0) goto LAB_00020280;" (if "if") (parenthesized_expression "(puVar2[0x22] != 0)" (( "(") (binary_expression "puVar2[0x22] != 0" (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020280;" (goto "goto") (statement_identifier "LAB_00020280") (; ";"))) (if_statement "if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }" (if "if") (parenthesized_expression "((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0))" (( "(") (binary_expression "(0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)" (parenthesized_expression "(0x3ff < (int)param_1)" (( "(") (binary_expression "0x3ff < (int)param_1" (number_literal "0x3ff") (< "<") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")) (&& "&&") (parenthesized_expression "((puVar2[0x3e] & 0x240) == 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x240) == 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" (( "(") (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x240")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x17dc;\n      goto joined_r0x00020848;\n    }" ({ "{") (labeled_statement "LAB_0002006c:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);" (statement_identifier "LAB_0002006c") (: ":") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x3938" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3938")) (, ",") (identifier "param_1") (, ",") (number_literal "0x400") () ")"))) (; ";"))) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" (identifier "iVar3") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar11 = 0x17dc;" (assignment_expression "uVar11 = 0x17dc" (identifier "uVar11") (= "=") (number_literal "0x17dc")) (; ";")) (goto_statement "goto joined_r0x00020848;" (goto "goto") (statement_identifier "joined_r0x00020848") (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" (* "*") (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_init_0003f2dc"))) () ")")) (argument_list "(puVar2 + 0x25,0)" (( "(") (binary_expression "puVar2 + 0x25" (identifier "puVar2") (+ "+") (number_literal "0x25")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      goto LAB_0001ff08;\n    }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2c28" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2c28")) () ")"))) (; ";")) (goto_statement "goto LAB_0001ff08;" (goto "goto") (statement_identifier "LAB_0001ff08") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar5 = puVar2 + 0x25;" (assignment_expression "puVar5 = puVar2 + 0x25" (identifier "puVar5") (= "=") (binary_expression "puVar2 + 0x25" (identifier "puVar2") (+ "+") (number_literal "0x25"))) (; ";")) (if_statement "if (puVar2[0x22] == 0) {\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }" (if "if") (parenthesized_expression "(puVar2[0x22] == 0)" (( "(") (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_2 = puVar2 + 0x2b;\n    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);\n    if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }\n  }" ({ "{") (expression_statement "param_2 = puVar2 + 0x2b;" (assignment_expression "param_2 = puVar2 + 0x2b" (identifier "param_2") (= "=") (binary_expression "puVar2 + 0x2b" (identifier "puVar2") (+ "+") (number_literal "0x2b"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" (* "*") (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_init_0003f2dc"))) () ")")) (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);\n      uVar11 = 0x1809;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      iVar3 = *piVar4;\n      uVar11 = 0x180c;\n      goto joined_r0x00020848;\n    }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c28)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2c28" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2c28")) () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" (* "*") (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_destroy_0003f314"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar11 = 0x1809;" (assignment_expression "uVar11 = 0x1809" (identifier "uVar11") (= "=") (number_literal "0x1809")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002025c;" (goto "goto") (statement_identifier "LAB_0002025c") (; ";"))) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" (if "if") (parenthesized_expression "(param_1 == 0xffffffff)" (( "(") (binary_expression "param_1 == 0xffffffff" (identifier "param_1") (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (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 "iVar3 = *piVar4;" (assignment_expression "iVar3 = *piVar4" (identifier "iVar3") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "uVar11 = 0x180c;" (assignment_expression "uVar11 = 0x180c" (identifier "uVar11") (= "=") (number_literal "0x180c")) (; ";")) (goto_statement "goto joined_r0x00020848;" (goto "goto") (statement_identifier "joined_r0x00020848") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]"))) (; ";")) (if_statement "if ((uVar15 & 2) != 0) {\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }" (if "if") (parenthesized_expression "((uVar15 & 2) != 0)" (( "(") (binary_expression "(uVar15 & 2) != 0" (parenthesized_expression "(uVar15 & 2)" (( "(") (binary_expression "uVar15 & 2" (identifier "uVar15") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }\n    uVar15 = puVar2[0x3e];\n  }" ({ "{") (if_statement "if (puVar2[0x44] == 1) {\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }\n    else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" (if "if") (parenthesized_expression "(puVar2[0x44] == 1)" (( "(") (binary_expression "puVar2[0x44] == 1" (subscript_expression "puVar2[0x44]" (identifier "puVar2") ([ "[") (number_literal "0x44") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);\n      if (iVar3 != 0) goto LAB_000201cc;\n      if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }\n      piVar4 = (int *)puVar2[0x4e];\n      if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }\n      if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }\n      param_2 = (int *)puVar2[0x4c];\n      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }\n    }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)" (( "(") (pointer_expression "*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150" (* "*") (cast_expression "(code *)PTR_gnutls_certificate_allocate_credentials_0003f150" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_certificate_allocate_credentials_0003f150"))) () ")")) (argument_list "(puVar2 + 0x45)" (( "(") (binary_expression "puVar2 + 0x45" (identifier "puVar2") (+ "+") (number_literal "0x45")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_000201cc;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000201cc;" (goto "goto") (statement_identifier "LAB_000201cc") (; ";"))) (if_statement "if (puVar2[0x48] != 0) {\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }" (if "if") (parenthesized_expression "(puVar2[0x48] != 0)" (( "(") (binary_expression "puVar2[0x48] != 0" (subscript_expression "puVar2[0x48]" (identifier "puVar2") ([ "[") (number_literal "0x48") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);\n      }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);" (call_expression "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45])" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)" (( "(") (pointer_expression "*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c" (* "*") (cast_expression "(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_certificate_set_retrieve_function2_0003f31c"))) () ")")) (argument_list "(puVar2[0x45])" (( "(") (subscript_expression "puVar2[0x45]" (identifier "puVar2") ([ "[") (number_literal "0x45") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4 = (int *)puVar2[0x4e];" (assignment_expression "piVar4 = (int *)puVar2[0x4e]" (identifier "piVar4") (= "=") (cast_expression "(int *)puVar2[0x4e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[0x4e]" (identifier "puVar2") ([ "[") (number_literal "0x4e") (] "]")))) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_e0 = piVar4;\n        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);\n        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);\n        if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }\n      }" ({ "{") (expression_statement "local_e0 = piVar4;" (assignment_expression "local_e0 = piVar4" (identifier "local_e0") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);" (assignment_expression "local_dc = (*(code *)PTR_strlen_0003f228)(piVar4)" (identifier "local_dc") (= "=") (call_expression "(*(code *)PTR_strlen_0003f228)(piVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003f228" (* "*") (cast_expression "(code *)PTR_strlen_0003f228" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003f228"))) () ")")) (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)\n                          (puVar2[0x45],&local_e0,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)" (( "(") (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c" (* "*") (cast_expression "(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_certificate_set_x509_trust_mem_0003f29c"))) () ")")) (argument_list "(puVar2[0x45],&local_e0,1)" (( "(") (subscript_expression "puVar2[0x45]" (identifier "puVar2") ([ "[") (number_literal "0x45") (] "]")) (, ",") (pointer_expression "&local_e0" (& "&") (identifier "local_e0")) (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);\n          goto LAB_000201cc;\n        }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2bf4)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2bf4" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2bf4")) () ")"))) (; ";")) (goto_statement "goto LAB_000201cc;" (goto "goto") (statement_identifier "LAB_000201cc") (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(char *)(puVar2 + 0x50) != '\0') {\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }" (if "if") (parenthesized_expression "(*(char *)(puVar2 + 0x50) != '\0')" (( "(") (binary_expression "*(char *)(puVar2 + 0x50) != '\0'" (pointer_expression "*(char *)(puVar2 + 0x50)" (* "*") (cast_expression "(char *)(puVar2 + 0x50)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x50)" (( "(") (binary_expression "puVar2 + 0x50" (identifier "puVar2") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);\n      }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);" (call_expression "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f])" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)" (( "(") (pointer_expression "*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4" (* "*") (cast_expression "(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_certificate_set_dh_params_0003f1f4"))) () ")")) (argument_list "(puVar2[0x45],puVar2[0x4f])" (( "(") (subscript_expression "puVar2[0x45]" (identifier "puVar2") ([ "[") (number_literal "0x45") (] "]")) (, ",") (subscript_expression "puVar2[0x4f]" (identifier "puVar2") ([ "[") (number_literal "0x4f") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "param_2 = (int *)puVar2[0x4c];" (assignment_expression "param_2 = (int *)puVar2[0x4c]" (identifier "param_2") (= "=") (cast_expression "(int *)puVar2[0x4c]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[0x4c]" (identifier "puVar2") ([ "[") (number_literal "0x4c") (] "]")))) (; ";")) (if_statement "if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }\n      else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" (if "if") (parenthesized_expression "((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0))" (( "(") (binary_expression "(param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)" (parenthesized_expression "(param_2 == (int *)0x0)" (( "(") (binary_expression "param_2 == (int *)0x0" (identifier "param_2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = puVar2[0x4b], iVar3 == 0)" (( "(") (comma_expression "iVar3 = puVar2[0x4b], iVar3 == 0" (assignment_expression "iVar3 = puVar2[0x4b]" (identifier "iVar3") (= "=") (subscript_expression "puVar2[0x4b]" (identifier "puVar2") ([ "[") (number_literal "0x4b") (] "]"))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }\n      }" ({ "{") (if_statement "if (puVar2[0x48] == 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }" (if "if") (parenthesized_expression "(puVar2[0x48] == 0)" (( "(") (binary_expression "puVar2[0x48] == 0" (subscript_expression "puVar2[0x48]" (identifier "puVar2") ([ "[") (number_literal "0x48") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);\n          goto LAB_000201cc;\n        }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ba0)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2ba0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2ba0")) () ")"))) (; ";")) (goto_statement "goto LAB_000201cc;" (goto "goto") (statement_identifier "LAB_000201cc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" (else "else") (compound_statement "{\n        local_e8 = iVar3;\n        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);\n        local_e0 = param_2;\n        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);\n        if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }\n        if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }\n      }" ({ "{") (expression_statement "local_e8 = iVar3;" (assignment_expression "local_e8 = iVar3" (identifier "local_e8") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);" (assignment_expression "local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3)" (identifier "local_e4") (= "=") (call_expression "(*(code *)PTR_strlen_0003f228)(iVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003f228" (* "*") (cast_expression "(code *)PTR_strlen_0003f228" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003f228"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "local_e0 = param_2;" (assignment_expression "local_e0 = param_2" (identifier "local_e0") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_dc = (*(code *)PTR_strlen_0003f228)(param_2);" (assignment_expression "local_dc = (*(code *)PTR_strlen_0003f228)(param_2)" (identifier "local_dc") (= "=") (call_expression "(*(code *)PTR_strlen_0003f228)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0003f228)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003f228" (* "*") (cast_expression "(code *)PTR_strlen_0003f228" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003f228"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (puVar2[0x4d] == 0) {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }\n        else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" (if "if") (parenthesized_expression "(puVar2[0x4d] == 0)" (( "(") (binary_expression "puVar2[0x4d] == 0" (subscript_expression "puVar2[0x4d]" (identifier "puVar2") ([ "[") (number_literal "0x4d") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);\n        }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)\n                            (puVar2[0x45],&local_e0,&local_e8,1)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)" (( "(") (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320" (* "*") (cast_expression "(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_certificate_set_x509_key_mem_0003f320"))) () ")")) (argument_list "(puVar2[0x45],&local_e0,&local_e8,1)" (( "(") (subscript_expression "puVar2[0x45]" (identifier "puVar2") ([ "[") (number_literal "0x45") (] "]")) (, ",") (pointer_expression "&local_e0" (& "&") (identifier "local_e0")) (, ",") (pointer_expression "&local_e8" (& "&") (identifier "local_e8")) (, ",") (number_literal "1") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" (else "else") (compound_statement "{\n          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);\n        }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)\n                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" (parenthesized_expression "(*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)" (( "(") (pointer_expression "*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c" (* "*") (cast_expression "(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_certificate_set_x509_key_mem2_0003f30c"))) () ")")) (argument_list "(puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0)" (( "(") (subscript_expression "puVar2[0x45]" (identifier "puVar2") ([ "[") (number_literal "0x45") (] "]")) (, ",") (pointer_expression "&local_e0" (& "&") (identifier "local_e0")) (, ",") (pointer_expression "&local_e8" (& "&") (identifier "local_e8")) (, ",") (number_literal "1") (, ",") (subscript_expression "puVar2[0x4d]" (identifier "puVar2") ([ "[") (number_literal "0x4d") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 != 0) {\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);\n          goto LAB_000201cc;\n        }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);" (assignment_expression "uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3)" (parenthesized_expression "(*(code *)PTR_gnutls_strerror_0003f1b4)" (( "(") (pointer_expression "*(code *)PTR_gnutls_strerror_0003f1b4" (* "*") (cast_expression "(code *)PTR_gnutls_strerror_0003f1b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_strerror_0003f1b4"))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2bd4" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2bd4")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (goto_statement "goto LAB_000201cc;" (goto "goto") (statement_identifier "LAB_000201cc") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" (else "else") (compound_statement "{\n      if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }\n      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);\n      if (iVar3 != 0) goto LAB_000201cc;\n    }" ({ "{") (if_statement "if (puVar2[0x44] != 4) {\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }" (if "if") (parenthesized_expression "(puVar2[0x44] != 4)" (( "(") (binary_expression "puVar2[0x44] != 4" (subscript_expression "puVar2[0x44]" (identifier "puVar2") ([ "[") (number_literal "0x44") (] "]")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);\nLAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x1820;\n        if (iVar3 != 0) goto LAB_0002025c;\n        goto LAB_0001f860;\n      }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b6c)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2b6c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2b6c")) () ")"))) (; ";")) (labeled_statement "LAB_000201cc:\n        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);" (statement_identifier "LAB_000201cc") (: ":") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b3c)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2b3c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2b3c")) () ")"))) (; ";"))) (if_statement "if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" (if "if") (parenthesized_expression "((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))" (( "(") (binary_expression "(param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" (parenthesized_expression "(param_1 != 0xffffffff)" (( "(") (binary_expression "param_1 != 0xffffffff" (identifier "param_1") (!= "!=") (number_literal "0xffffffff")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" (( "(") (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x181c;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\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 "uVar11 = 0x181c;" (assignment_expression "uVar11 = 0x181c" (identifier "uVar11") (= "=") (number_literal "0x181c")) (; ";")) (if_statement "if (*piVar4 == 9) goto LAB_0001fdd8;" (if "if") (parenthesized_expression "(*piVar4 == 9)" (( "(") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001fdd8;" (goto "goto") (statement_identifier "LAB_0001fdd8") (; ";"))) (} "}"))) (if_statement "if (puVar2[0x22] == 0) {\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }" (if "if") (parenthesized_expression "(puVar2[0x22] == 0)" (( "(") (binary_expression "puVar2[0x22] == 0" (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n          uVar11 = 0x181f;\n          if (iVar3 != 0) goto LAB_0002025c;\n        }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" (* "*") (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_destroy_0003f314"))) () ")")) (argument_list "(puVar2 + 0x2b)" (( "(") (binary_expression "puVar2 + 0x2b" (identifier "puVar2") (+ "+") (number_literal "0x2b")) () ")")))) (; ";")) (expression_statement "uVar11 = 0x181f;" (assignment_expression "uVar11 = 0x181f" (identifier "uVar11") (= "=") (number_literal "0x181f")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002025c;" (goto "goto") (statement_identifier "LAB_0002025c") (; ";"))) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" (* "*") (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_destroy_0003f314"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "uVar11 = 0x1820;" (assignment_expression "uVar11 = 0x1820" (identifier "uVar11") (= "=") (number_literal "0x1820")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002025c;" (goto "goto") (statement_identifier "LAB_0002025c") (; ";"))) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";")) (} "}"))) (expression_statement "iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47)" (parenthesized_expression "(*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)" (( "(") (pointer_expression "*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4" (* "*") (cast_expression "(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_psk_allocate_server_credentials_0003f1a4"))) () ")")) (argument_list "(puVar2 + 0x47)" (( "(") (binary_expression "puVar2 + 0x47" (identifier "puVar2") (+ "+") (number_literal "0x47")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_000201cc;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000201cc;" (goto "goto") (statement_identifier "LAB_000201cc") (; ";"))) (} "}")))) (expression_statement "uVar15 = puVar2[0x3e];" (assignment_expression "uVar15 = puVar2[0x3e]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]"))) (; ";")) (} "}"))) (if_statement "if ((uVar15 & 0x108) == 8) {\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }" (if "if") (parenthesized_expression "((uVar15 & 0x108) == 8)" (( "(") (binary_expression "(uVar15 & 0x108) == 8" (parenthesized_expression "(uVar15 & 0x108)" (( "(") (binary_expression "uVar15 & 0x108" (identifier "uVar15") (& "&") (number_literal "0x108")) () ")")) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n    uVar16 = puVar2[0x22];\n    if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }\n    if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }\n    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);\n    if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }\n  }" ({ "{") (expression_statement "uVar16 = puVar2[0x22];" (assignment_expression "uVar16 = puVar2[0x22]" (identifier "uVar16") (= "=") (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]"))) (; ";")) (if_statement "if (uVar16 != 0) {\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar15 = puVar2[0x3b];\n      if (uVar16 == 0) {\n        trap(7);\n      }\n      uVar19 = uVar15 / uVar16;\n      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);\n      puVar2[0x1d] = iVar3;\n      puVar10 = PTR_DAT_0003f05c;\n      if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }\n      param_2 = (int *)0x0;\n      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);\n      puVar7 = PTR_LAB_0003f084 + -6000;\n      do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );\n    }" ({ "{") (expression_statement "uVar15 = puVar2[0x3b];" (assignment_expression "uVar15 = puVar2[0x3b]" (identifier "uVar15") (= "=") (subscript_expression "puVar2[0x3b]" (identifier "puVar2") ([ "[") (number_literal "0x3b") (] "]"))) (; ";")) (if_statement "if (uVar16 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (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 "uVar19 = uVar15 / uVar16;" (assignment_expression "uVar19 = uVar15 / uVar16" (identifier "uVar19") (= "=") (binary_expression "uVar15 / uVar16" (identifier "uVar15") (/ "/") (identifier "uVar16"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);" (assignment_expression "iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174)" (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 "(uVar16 * 0x174)" (( "(") (binary_expression "uVar16 * 0x174" (identifier "uVar16") (* "*") (number_literal "0x174")) () ")")))) (; ";")) (expression_statement "puVar2[0x1d] = iVar3;" (assignment_expression "puVar2[0x1d] = iVar3" (subscript_expression "puVar2[0x1d]" (identifier "puVar2") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "puVar10 = PTR_DAT_0003f05c;" (assignment_expression "puVar10 = PTR_DAT_0003f05c" (identifier "puVar10") (= "=") (identifier "PTR_DAT_0003f05c")) (; ";")) (if_statement "if (iVar3 == 0) {\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }\n        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n        uVar11 = 0x18b4;\n        if (iVar3 != 0) goto LAB_0002025c;\n        if (puVar2[0x1d] == 0) goto LAB_0001f860;\n        (*(code *)PTR_free_0003f2f8)();\n        goto LAB_0001f860;\n      }" ({ "{") (labeled_statement "LAB_00020778:\n        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" (statement_identifier "LAB_00020778") (: ":") (if_statement "if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))\n        {\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\n        }" (if "if") (parenthesized_expression "((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))" (( "(") (binary_expression "(param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" (parenthesized_expression "(param_1 != 0xffffffff)" (( "(") (binary_expression "param_1 != 0xffffffff" (identifier "param_1") (!= "!=") (number_literal "0xffffffff")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0)" (( "(") (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = 0x18b3;\n          if (*piVar4 == 9) goto LAB_0001fdd8;\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 "uVar11 = 0x18b3;" (assignment_expression "uVar11 = 0x18b3" (identifier "uVar11") (= "=") (number_literal "0x18b3")) (; ";")) (if_statement "if (*piVar4 == 9) goto LAB_0001fdd8;" (if "if") (parenthesized_expression "(*piVar4 == 9)" (( "(") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_0001fdd8;" (goto "goto") (statement_identifier "LAB_0001fdd8") (; ";"))) (} "}")))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" (* "*") (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_destroy_0003f314"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "uVar11 = 0x18b4;" (assignment_expression "uVar11 = 0x18b4" (identifier "uVar11") (= "=") (number_literal "0x18b4")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002025c;" (goto "goto") (statement_identifier "LAB_0002025c") (; ";"))) (if_statement "if (puVar2[0x1d] == 0) goto LAB_0001f860;" (if "if") (parenthesized_expression "(puVar2[0x1d] == 0)" (( "(") (binary_expression "puVar2[0x1d] == 0" (subscript_expression "puVar2[0x1d]" (identifier "puVar2") ([ "[") (number_literal "0x1d") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (expression_statement "(*(code *)PTR_free_0003f2f8)();" (call_expression "(*(code *)PTR_free_0003f2f8)()" (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 "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";")) (} "}"))) (expression_statement "param_2 = (int *)0x0;" (assignment_expression "param_2 = (int *)0x0" (identifier "param_2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8)" (identifier "pcVar18") (= "=") (cast_expression "(code *)(PTR_LAB_0003f084 + -0x4cc8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0003f084 + -0x4cc8)" (( "(") (binary_expression "PTR_LAB_0003f084 + -0x4cc8" (identifier "PTR_LAB_0003f084") (+ "+") (number_literal "-0x4cc8")) () ")")))) (; ";")) (expression_statement "puVar7 = PTR_LAB_0003f084 + -6000;" (assignment_expression "puVar7 = PTR_LAB_0003f084 + -6000" (identifier "puVar7") (= "=") (binary_expression "PTR_LAB_0003f084 + -6000" (identifier "PTR_LAB_0003f084") (+ "+") (number_literal "-6000"))) (; ";")) (do_statement "do {\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      } while( true );" (do "do") (compound_statement "{\n        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);\n        puVar6 = puVar17;\n        puVar8 = puVar2;\n        do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);\n        *puVar6 = *puVar9;\n        puVar17[0x1c] = puVar2;\n        puVar17[0x22] = 0;\n        puVar17[0x1d] = 0;\n        if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }\n        puVar17[0x37] = 0xffffffff;\nLAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }\n        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;\n        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);\n        if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }\n        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);\n        if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }\n        param_2 = (int *)((int)param_2 + 1);\n        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;\n        iVar3 = puVar2[0x1d];\n      }" ({ "{") (expression_statement "puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);" (assignment_expression "puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3)" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)((int)param_2 * 0x174 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 * 0x174 + iVar3)" (( "(") (binary_expression "(int)param_2 * 0x174 + iVar3" (binary_expression "(int)param_2 * 0x174" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (* "*") (number_literal "0x174")) (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" (identifier "puVar6") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" (identifier "puVar8") (= "=") (identifier "puVar2")) (; ";")) (do_statement "do {\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        } while (puVar9 != puVar2 + 0x5c);" (do "do") (compound_statement "{\n          puVar9 = puVar8 + 4;\n          uVar13 = puVar8[1];\n          uVar12 = puVar8[2];\n          uVar11 = puVar8[3];\n          *puVar6 = *puVar8;\n          puVar6[1] = uVar13;\n          puVar6[2] = uVar12;\n          puVar6[3] = uVar11;\n          puVar6 = puVar6 + 4;\n          puVar8 = puVar9;\n        }" ({ "{") (expression_statement "puVar9 = puVar8 + 4;" (assignment_expression "puVar9 = puVar8 + 4" (identifier "puVar9") (= "=") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar13 = puVar8[1];" (assignment_expression "uVar13 = puVar8[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar12 = puVar8[2];" (assignment_expression "uVar12 = puVar8[2]" (identifier "uVar12") (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar11 = puVar8[3];" (assignment_expression "uVar11 = puVar8[3]" (identifier "uVar11") (= "=") (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar6 = *puVar8;" (assignment_expression "*puVar6 = *puVar8" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar6[1] = uVar13;" (assignment_expression "puVar6[1] = uVar13" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar6[2] = uVar12;" (assignment_expression "puVar6[2] = uVar12" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar6[3] = uVar11;" (assignment_expression "puVar6[3] = uVar11" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar6 = puVar6 + 4;" (assignment_expression "puVar6 = puVar6 + 4" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar8 = puVar9;" (assignment_expression "puVar8 = puVar9" (identifier "puVar8") (= "=") (identifier "puVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != puVar2 + 0x5c)" (( "(") (binary_expression "puVar9 != puVar2 + 0x5c" (identifier "puVar9") (!= "!=") (binary_expression "puVar2 + 0x5c" (identifier "puVar2") (+ "+") (number_literal "0x5c"))) () ")")) (; ";")) (expression_statement "*puVar6 = *puVar9;" (assignment_expression "*puVar6 = *puVar9" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar17[0x1c] = puVar2;" (assignment_expression "puVar17[0x1c] = puVar2" (subscript_expression "puVar17[0x1c]" (identifier "puVar17") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "puVar17[0x22] = 0;" (assignment_expression "puVar17[0x22] = 0" (subscript_expression "puVar17[0x22]" (identifier "puVar17") ([ "[") (number_literal "0x22") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar17[0x1d] = 0;" (assignment_expression "puVar17[0x1d] = 0" (subscript_expression "puVar17[0x1d]" (identifier "puVar17") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((puVar2[0x3e] & 0x400) != 0) {\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }" (if "if") (parenthesized_expression "((puVar2[0x3e] & 0x400) != 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x400) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x400)" (( "(") (binary_expression "puVar2[0x3e] & 0x400" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);\n          puVar17[0x37] = iVar3;\n          if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }\nLAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;\n          if (param_2 != (int *)0x0) goto LAB_0001f93c;\n          goto LAB_00020778;\n        }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);" (assignment_expression "iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_eventfd_0003f180)(0,0x80080)" (parenthesized_expression "(*(code *)PTR_eventfd_0003f180)" (( "(") (pointer_expression "*(code *)PTR_eventfd_0003f180" (* "*") (cast_expression "(code *)PTR_eventfd_0003f180" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_eventfd_0003f180"))) () ")")) (argument_list "(0,0x80080)" (( "(") (number_literal "0") (, ",") (number_literal "0x80080") () ")")))) (; ";")) (expression_statement "puVar17[0x37] = iVar3;" (assignment_expression "puVar17[0x37] = iVar3" (subscript_expression "puVar17[0x37]" (identifier "puVar17") ([ "[") (number_literal "0x37") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == -1) {\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }\n          else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);\n          }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar6)" (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 "(*puVar6)" (( "(") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2af4" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2af4")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" (else "else") (compound_statement "{\n            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;\n            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);\n            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);\n            if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;\n          }" ({ "{") (if_statement "if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;" (if "if") (parenthesized_expression "(((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400))" (( "(") (binary_expression "((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)" (parenthesized_expression "((puVar2[0x3e] & 0x240) != 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x240) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x240)" (( "(") (binary_expression "puVar2[0x3e] & 0x240" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x240")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar3 < 0x400)" (( "(") (binary_expression "iVar3 < 0x400" (identifier "iVar3") (< "<") (number_literal "0x400")) () ")"))) () ")")) (goto_statement "goto LAB_00020648;" (goto "goto") (statement_identifier "LAB_00020648") (; ";"))) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2ab4)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2ab4" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2ab4")) () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37])" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(puVar17[0x37])" (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 "(puVar17[0x37])" (( "(") (subscript_expression "puVar17[0x37]" (identifier "puVar17") ([ "[") (number_literal "0x37") (] "]")) () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))\n            goto LAB_00020b10;" (if "if") (parenthesized_expression "((iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))" (( "(") (binary_expression "(iVar3 == 0) &&\n               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (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"))) () ")"))) () ")")) (goto_statement "goto LAB_00020b10;" (goto "goto") (statement_identifier "LAB_00020b10") (; ";"))) (} "}")))) (labeled_statement "LAB_00020770:\n          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;" (statement_identifier "LAB_00020770") (: ":") (expression_statement "pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;" (assignment_expression "pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac" (identifier "pcVar18") (= "=") (cast_expression "(code *)PTR_MHD_stop_daemon_0003f1ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_MHD_stop_daemon_0003f1ac"))) (; ";"))) (if_statement "if (param_2 != (int *)0x0) goto LAB_0001f93c;" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001f93c;" (goto "goto") (statement_identifier "LAB_0001f93c") (; ";"))) (goto_statement "goto LAB_00020778;" (goto "goto") (statement_identifier "LAB_00020778") (; ";")) (} "}"))) (expression_statement "puVar17[0x37] = 0xffffffff;" (assignment_expression "puVar17[0x37] = 0xffffffff" (subscript_expression "puVar17[0x37]" (identifier "puVar17") ([ "[") (number_literal "0x37") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (labeled_statement "LAB_00020648:\n        if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }" (statement_identifier "LAB_00020648") (: ":") (if_statement "if (param_2 < (int *)(uVar15 % uVar16)) {\n          puVar17[0x3b] = uVar19 + 1;\n        }\n        else {\n          puVar17[0x3b] = uVar19;\n        }" (if "if") (parenthesized_expression "(param_2 < (int *)(uVar15 % uVar16))" (( "(") (binary_expression "param_2 < (int *)(uVar15 % uVar16)" (identifier "param_2") (< "<") (cast_expression "(int *)(uVar15 % uVar16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 % uVar16)" (( "(") (binary_expression "uVar15 % uVar16" (identifier "uVar15") (% "%") (identifier "uVar16")) () ")")))) () ")")) (compound_statement "{\n          puVar17[0x3b] = uVar19 + 1;\n        }" ({ "{") (expression_statement "puVar17[0x3b] = uVar19 + 1;" (assignment_expression "puVar17[0x3b] = uVar19 + 1" (subscript_expression "puVar17[0x3b]" (identifier "puVar17") ([ "[") (number_literal "0x3b") (] "]")) (= "=") (binary_expression "uVar19 + 1" (identifier "uVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n          puVar17[0x3b] = uVar19;\n        }" (else "else") (compound_statement "{\n          puVar17[0x3b] = uVar19;\n        }" ({ "{") (expression_statement "puVar17[0x3b] = uVar19;" (assignment_expression "puVar17[0x3b] = uVar19" (subscript_expression "puVar17[0x3b]" (identifier "puVar17") ([ "[") (number_literal "0x3b") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (} "}"))))) (if_statement "if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))\n        goto LAB_00020770;" (if "if") (parenthesized_expression "(((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))" (( "(") (binary_expression "((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1)" (parenthesized_expression "((puVar2[0x3e] & 0x200) != 0)" (( "(") (binary_expression "(puVar2[0x3e] & 0x200) != 0" (parenthesized_expression "(puVar2[0x3e] & 0x200)" (( "(") (binary_expression "puVar2[0x3e] & 0x200" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (*pcVar18)(puVar17), iVar3 != 1)" (( "(") (comma_expression "iVar3 = (*pcVar18)(puVar17), iVar3 != 1" (assignment_expression "iVar3 = (*pcVar18)(puVar17)" (identifier "iVar3") (= "=") (call_expression "(*pcVar18)(puVar17)" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "(puVar17)" (( "(") (identifier "puVar17") () ")")))) (, ",") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1"))) () ")"))) () ")")) (goto_statement "goto LAB_00020770;" (goto "goto") (statement_identifier "LAB_00020770") (; ";"))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_init_0003f2dc)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_init_0003f2dc" (* "*") (cast_expression "(code *)PTR_pthread_mutex_init_0003f2dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_init_0003f2dc"))) () ")")) (argument_list "(puVar17 + 0x2b,0)" (( "(") (binary_expression "puVar17 + 0x2b" (identifier "puVar17") (+ "+") (number_literal "0x2b")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);\n          goto LAB_00020770;\n        }" ({ "{") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2a5c)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2a5c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2a5c")) () ")"))) (; ";")) (goto_statement "goto LAB_00020770;" (goto "goto") (statement_identifier "LAB_00020770") (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);" (assignment_expression "iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" (identifier "iVar3") (= "=") (call_expression "FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" (identifier "FUN_00023bd4") (argument_list "(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17)" (( "(") (binary_expression "puVar17 + 0x23" (identifier "puVar17") (+ "+") (number_literal "0x23")) (, ",") (binary_expression "puVar10 + -0x2a28" (identifier "puVar10") (+ "+") (number_literal "-0x2a28")) (, ",") (subscript_expression "puVar2[0x21]" (identifier "puVar2") ([ "[") (number_literal "0x21") (] "]")) (, ",") (identifier "puVar7") (, ",") (identifier "puVar17") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();\n          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);\n          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);\n          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);\n          uVar11 = 0x189b;\n          if (iVar3 != 0) goto LAB_0002025c;\n          goto LAB_00020770;\n        }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0003f204)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*puVar6)" (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 "(*puVar6)" (( "(") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2a1c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2a1c")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" (* "*") (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_destroy_0003f314"))) () ")")) (argument_list "(puVar17 + 0x2b)" (( "(") (binary_expression "puVar17 + 0x2b" (identifier "puVar17") (+ "+") (number_literal "0x2b")) () ")")))) (; ";")) (expression_statement "uVar11 = 0x189b;" (assignment_expression "uVar11 = 0x189b" (identifier "uVar11") (= "=") (number_literal "0x189b")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002025c;" (goto "goto") (statement_identifier "LAB_0002025c") (; ";"))) (goto_statement "goto LAB_00020770;" (goto "goto") (statement_identifier "LAB_00020770") (; ";")) (} "}"))) (expression_statement "param_2 = (int *)((int)param_2 + 1);" (assignment_expression "param_2 = (int *)((int)param_2 + 1)" (identifier "param_2") (= "=") (cast_expression "(int *)((int)param_2 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 1)" (( "(") (binary_expression "(int)param_2 + 1" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;" (if "if") (parenthesized_expression "((int *)puVar2[0x22] <= param_2)" (( "(") (binary_expression "(int *)puVar2[0x22] <= param_2" (cast_expression "(int *)puVar2[0x22]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]"))) (<= "<=") (identifier "param_2")) () ")")) (goto_statement "goto LAB_0001fcdc;" (goto "goto") (statement_identifier "LAB_0001fcdc") (; ";"))) (expression_statement "iVar3 = puVar2[0x1d];" (assignment_expression "iVar3 = puVar2[0x1d]" (identifier "iVar3") (= "=") (subscript_expression "puVar2[0x1d]" (identifier "puVar2") ([ "[") (number_literal "0x1d") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if ((uVar15 & 4) == 0) {\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }\n    else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" (if "if") (parenthesized_expression "((uVar15 & 4) == 0)" (( "(") (binary_expression "(uVar15 & 4) == 0" (parenthesized_expression "(uVar15 & 4)" (( "(") (binary_expression "uVar15 & 4" (identifier "uVar15") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar10 = PTR_DAT_0003f05c + -0x3004;\n    }" ({ "{") (expression_statement "puVar10 = PTR_DAT_0003f05c + -0x3004;" (assignment_expression "puVar10 = PTR_DAT_0003f05c + -0x3004" (identifier "puVar10") (= "=") (binary_expression "PTR_DAT_0003f05c + -0x3004" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3004"))) (; ";")) (} "}")) (else_clause "else {\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" (else "else") (compound_statement "{\n      puVar10 = PTR_DAT_0003f05c + -0x3010;\n    }" ({ "{") (expression_statement "puVar10 = PTR_DAT_0003f05c + -0x3010;" (assignment_expression "puVar10 = PTR_DAT_0003f05c + -0x3010" (identifier "puVar10") (= "=") (binary_expression "PTR_DAT_0003f05c + -0x3010" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3010"))) (; ";")) (} "}")))) (expression_statement "iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);" (assignment_expression "iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" (identifier "iVar3") (= "=") (call_expression "FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" (identifier "FUN_00023bd4") (argument_list "(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2)" (( "(") (binary_expression "puVar2 + 0x23" (identifier "puVar2") (+ "+") (number_literal "0x23")) (, ",") (identifier "puVar10") (, ",") (subscript_expression "puVar2[0x21]" (identifier "puVar2") ([ "[") (number_literal "0x21") (] "]")) (, ",") (binary_expression "PTR_LAB_0003f084 + -6000" (identifier "PTR_LAB_0003f084") (+ "+") (number_literal "-6000")) (, ",") (identifier "puVar2") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();\n      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);\n      uVar11 = 0x1837;\n      if (iVar3 != 0) goto LAB_0002025c;\n      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);\n      uVar11 = 0x1838;\n      if (iVar3 != 0) goto LAB_0002025c;\n      if (param_1 == 0xffffffff) goto LAB_0001f860;\n      iVar3 = (*(code *)PTR_close_0003f158)(param_1);\n      if (iVar3 == 0) goto LAB_0001f860;\n      iVar3 = *param_2;\n      uVar11 = 0x183a;\n      goto joined_r0x00020848;\n    }" ({ "{") (expression_statement "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();" (assignment_expression "param_2 = (int *)(*(code *)PTR___errno_location_0003f204)()" (identifier "param_2") (= "=") (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 "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strerror_0003f254)(*param_2)" (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 "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2b18" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2b18")) (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" (* "*") (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_destroy_0003f314"))) () ")")) (argument_list "(puVar2 + 0x2b)" (( "(") (binary_expression "puVar2 + 0x2b" (identifier "puVar2") (+ "+") (number_literal "0x2b")) () ")")))) (; ";")) (expression_statement "uVar11 = 0x1837;" (assignment_expression "uVar11 = 0x1837" (identifier "uVar11") (= "=") (number_literal "0x1837")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002025c;" (goto "goto") (statement_identifier "LAB_0002025c") (; ";"))) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" (* "*") (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_destroy_0003f314"))) () ")")) (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "uVar11 = 0x1838;" (assignment_expression "uVar11 = 0x1838" (identifier "uVar11") (= "=") (number_literal "0x1838")) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0002025c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002025c;" (goto "goto") (statement_identifier "LAB_0002025c") (; ";"))) (if_statement "if (param_1 == 0xffffffff) goto LAB_0001f860;" (if "if") (parenthesized_expression "(param_1 == 0xffffffff)" (( "(") (binary_expression "param_1 == 0xffffffff" (identifier "param_1") (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0001f860;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001f860;" (goto "goto") (statement_identifier "LAB_0001f860") (; ";"))) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" (identifier "iVar3") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar11 = 0x183a;" (assignment_expression "uVar11 = 0x183a" (identifier "uVar11") (= "=") (number_literal "0x183a")) (; ";")) (goto_statement "goto joined_r0x00020848;" (goto "goto") (statement_identifier "joined_r0x00020848") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0001fcdc:\n  puVar2[0x4d] = 0;" (statement_identifier "LAB_0001fcdc") (: ":") (expression_statement "puVar2[0x4d] = 0;" (assignment_expression "puVar2[0x4d] = 0" (subscript_expression "puVar2[0x4d]" (identifier "puVar2") ([ "[") (number_literal "0x4d") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "puVar5 = puVar2;" (assignment_expression "puVar5 = puVar2" (identifier "puVar5") (= "=") (identifier "puVar2")) (; ";")) (labeled_statement "LAB_0001f950:\n  if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }" (statement_identifier "LAB_0001f950") (: ":") (if_statement "if (local_2c == *(int *)puVar1) {\n    return puVar5;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar1)" (( "(") (binary_expression "local_2c == *(int *)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return puVar5;\n  }" ({ "{") (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}")))) (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 "puVar2 = puVar5;" (assignment_expression "puVar2 = puVar5" (identifier "puVar2") (= "=") (identifier "puVar5")) (; ";")) (labeled_statement "LAB_00020ae0:\n  uVar11 = 0x18dc;" (statement_identifier "LAB_00020ae0") (: ":") (expression_statement "uVar11 = 0x18dc;" (assignment_expression "uVar11 = 0x18dc" (identifier "uVar11") (= "=") (number_literal "0x18dc")) (; ";"))) (labeled_statement "LAB_0002025c:\n  (**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);" (statement_identifier "LAB_0002025c") (: ":") (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n             PTR_DAT_0003f05c + -0x302c)" (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,uVar11,\n             PTR_DAT_0003f05c + -0x302c)" (( "(") (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 "uVar11") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x302c" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x302c")) () ")"))) (; ";"))) (labeled_statement "LAB_00020280:\n  iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (statement_identifier "LAB_00020280") (: ":") (expression_statement "iVar3 = (*(code *)PTR_close_0003f158)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)(param_1)" (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_1)" (( "(") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = *param_2;\n    uVar11 = 0x17cd;\njoined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }\n  }" ({ "{") (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" (identifier "iVar3") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar11 = 0x17cd;" (assignment_expression "uVar11 = 0x17cd" (identifier "uVar11") (= "=") (number_literal "0x17cd")) (; ";")) (labeled_statement "joined_r0x00020848:\n    if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" (statement_identifier "joined_r0x00020848") (: ":") (if_statement "if (iVar3 == 9) {\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" (if "if") (parenthesized_expression "(iVar3 == 9)" (( "(") (binary_expression "iVar3 == 9" (identifier "iVar3") (== "==") (number_literal "9")) () ")")) (compound_statement "{\nLAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);\nLAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);\n    }" ({ "{") (labeled_statement "LAB_0001fdd8:\n      (**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);" (statement_identifier "LAB_0001fdd8") (: ":") (expression_statement "(**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3950);" (call_expression "(**(code **)PTR_DAT_0003f070)\n                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\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,uVar11,\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 "uVar11") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x3950" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3950")) () ")"))) (; ";"))) (labeled_statement "LAB_0001fdf8:\n      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);" (statement_identifier "LAB_0001fdf8") (: ":") (expression_statement "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);" (call_expression "FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78)" (identifier "FUN_00020df0") (argument_list "(puVar2,PTR_DAT_0003f05c + -0x2c78)" (( "(") (identifier "puVar2") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x2c78" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x2c78")) () ")"))) (; ";"))) (} "}")))) (} "}"))) (labeled_statement "LAB_0001f860:\n  iVar3 = puVar2[0x33];" (statement_identifier "LAB_0001f860") (: ":") (expression_statement "iVar3 = puVar2[0x33];" (assignment_expression "iVar3 = puVar2[0x33]" (identifier "iVar3") (= "=") (subscript_expression "puVar2[0x33]" (identifier "puVar2") ([ "[") (number_literal "0x33") (] "]"))) (; ";"))) (if_statement "if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;" (if "if") (parenthesized_expression "(*(char *)(puVar2 + 0x36) == '\0')" (( "(") (binary_expression "*(char *)(puVar2 + 0x36) == '\0'" (pointer_expression "*(char *)(puVar2 + 0x36)" (* "*") (cast_expression "(char *)(puVar2 + 0x36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x36)" (( "(") (binary_expression "puVar2 + 0x36" (identifier "puVar2") (+ "+") (number_literal "0x36")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0001f86c;" (goto "goto") (statement_identifier "LAB_0001f86c") (; ";"))) (expression_statement "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);" (assignment_expression "iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0)" (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 "(iVar3,2,puVar2[0x35],0)" (( "(") (identifier "iVar3") (, ",") (number_literal "2") (, ",") (subscript_expression "puVar2[0x35]" (identifier "puVar2") ([ "[") (number_literal "0x35") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = puVar2[0x33];\n    *(undefined1 *)(puVar2 + 0x36) = 0;\n    goto LAB_0001f86c;\n  }" ({ "{") (expression_statement "iVar3 = puVar2[0x33];" (assignment_expression "iVar3 = puVar2[0x33]" (identifier "iVar3") (= "=") (subscript_expression "puVar2[0x33]" (identifier "puVar2") ([ "[") (number_literal "0x33") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(puVar2 + 0x36) = 0;" (assignment_expression "*(undefined1 *)(puVar2 + 0x36) = 0" (pointer_expression "*(undefined1 *)(puVar2 + 0x36)" (* "*") (cast_expression "(undefined1 *)(puVar2 + 0x36)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x36)" (( "(") (binary_expression "puVar2 + 0x36" (identifier "puVar2") (+ "+") (number_literal "0x36")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001f86c;" (goto "goto") (statement_identifier "LAB_0001f86c") (; ";")) (} "}"))) (expression_statement "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40);" (call_expression "(**(code **)PTR_DAT_0003f070)\n            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40)" (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,0x18ce,\n             PTR_DAT_0003f05c + -0x4f40)" (( "(") (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 "0x18ce") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x4f40" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x4f40")) () ")"))) (; ";")) (labeled_statement "LAB_00020b10:\n  uVar11 = 0x1871;" (statement_identifier "LAB_00020b10") (: ":") (expression_statement "uVar11 = 0x1871;" (assignment_expression "uVar11 = 0x1871" (identifier "uVar11") (= "=") (number_literal "0x1871")) (; ";"))) (goto_statement "goto LAB_0001f91c;" (goto "goto") (statement_identifier "LAB_0001f91c") (; ";")) (labeled_statement "LAB_0001f86c:\n  if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" (statement_identifier "LAB_0001f86c") (: ":") (if_statement "if (iVar3 != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" (if "if") (parenthesized_expression "(iVar3 != -1)" (( "(") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    (*(code *)PTR_close_0003f158)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_close_0003f158)();" (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (puVar2[0x35] != -1) {\n    (*(code *)PTR_close_0003f158)();\n  }" (if "if") (parenthesized_expression "(puVar2[0x35] != -1)" (( "(") (binary_expression "puVar2[0x35] != -1" (subscript_expression "puVar2[0x35]" (identifier "puVar2") ([ "[") (number_literal "0x35") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    (*(code *)PTR_close_0003f158)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_close_0003f158)();" (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2[0x52]);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2[0x52])" (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 "(puVar2[0x52])" (( "(") (subscript_expression "puVar2[0x52]" (identifier "puVar2") ([ "[") (number_literal "0x52") (] "]")) () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);" (assignment_expression "iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5)" (parenthesized_expression "(*(code *)PTR_pthread_mutex_destroy_0003f314)" (( "(") (pointer_expression "*(code *)PTR_pthread_mutex_destroy_0003f314" (* "*") (cast_expression "(code *)PTR_pthread_mutex_destroy_0003f314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pthread_mutex_destroy_0003f314"))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto code_r0x0001f8c8;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0001f8c8;" (goto "goto") (statement_identifier "code_r0x0001f8c8") (; ";"))) (goto_statement "goto LAB_00020ae0;" (goto "goto") (statement_identifier "LAB_00020ae0") (; ";")) (labeled_statement "code_r0x0001f8c8:\n  if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" (statement_identifier "code_r0x0001f8c8") (: ":") (if_statement "if ((puVar2[0x3e] & 2) != 0) {\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" (if "if") (parenthesized_expression "((puVar2[0x3e] & 2) != 0)" (( "(") (binary_expression "(puVar2[0x3e] & 2) != 0" (parenthesized_expression "(puVar2[0x3e] & 2)" (( "(") (binary_expression "puVar2[0x3e] & 2" (subscript_expression "puVar2[0x3e]" (identifier "puVar2") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);\n  }" ({ "{") (expression_statement "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);" (call_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43])" (parenthesized_expression "(*(code *)PTR_gnutls_priority_deinit_0003f170)" (( "(") (pointer_expression "*(code *)PTR_gnutls_priority_deinit_0003f170" (* "*") (cast_expression "(code *)PTR_gnutls_priority_deinit_0003f170" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_priority_deinit_0003f170"))) () ")")) (argument_list "(puVar2[0x43])" (( "(") (subscript_expression "puVar2[0x43]" (identifier "puVar2") ([ "[") (number_literal "0x43") (] "]")) () ")"))) (; ";")) (} "}")))) (if_statement "if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\n  }" (if "if") (parenthesized_expression "((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0))" (( "(") (binary_expression "(puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)" (parenthesized_expression "(puVar2[0x37] != -1)" (( "(") (binary_expression "puVar2[0x37] != -1" (subscript_expression "puVar2[0x37]" (identifier "puVar2") ([ "[") (number_literal "0x37") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)" (( "(") (comma_expression "iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0" (assignment_expression "iVar3 = (*(code *)PTR_close_0003f158)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_close_0003f158)()" (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 "()" (( "(") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();\n    uVar11 = 0x18e4;\n    if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }\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 "uVar11 = 0x18e4;" (assignment_expression "uVar11 = 0x18e4" (identifier "uVar11") (= "=") (number_literal "0x18e4")) (; ";")) (if_statement "if (*piVar4 == 9) {\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }" (if "if") (parenthesized_expression "(*piVar4 == 9)" (( "(") (binary_expression "*piVar4 == 9" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (== "==") (number_literal "9")) () ")")) (compound_statement "{\nLAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;\n      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);\nLAB_0001f93c:\n      puVar2[0x22] = param_2;\n      (*pcVar18)(puVar2);\nLAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;\n      goto LAB_0001f950;\n    }" ({ "{") (labeled_statement "LAB_0001f91c:\n      pcVar18 = *(code **)PTR_DAT_0003f070;" (statement_identifier "LAB_0001f91c") (: ":") (expression_statement "pcVar18 = *(code **)PTR_DAT_0003f070;" (assignment_expression "pcVar18 = *(code **)PTR_DAT_0003f070" (identifier "pcVar18") (= "=") (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")))) (; ";"))) (expression_statement "(*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044);" (call_expression "(*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044)" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,\n                 PTR_DAT_0003f05c + -0x3044)" (( "(") (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 "uVar11") (, ",") (binary_expression "PTR_DAT_0003f05c + -0x3044" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x3044")) () ")"))) (; ";")) (labeled_statement "LAB_0001f93c:\n      puVar2[0x22] = param_2;" (statement_identifier "LAB_0001f93c") (: ":") (expression_statement "puVar2[0x22] = param_2;" (assignment_expression "puVar2[0x22] = param_2" (subscript_expression "puVar2[0x22]" (identifier "puVar2") ([ "[") (number_literal "0x22") (] "]")) (= "=") (identifier "param_2")) (; ";"))) (expression_statement "(*pcVar18)(puVar2);" (call_expression "(*pcVar18)(puVar2)" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")"))) (; ";")) (labeled_statement "LAB_0001f94c:\n      puVar5 = (undefined4 *)0x0;" (statement_identifier "LAB_0001f94c") (: ":") (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (goto_statement "goto LAB_0001f950;" (goto "goto") (statement_identifier "LAB_0001f950") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0001fc50:\n  (*(code *)PTR_free_0003f2f8)(puVar2);" (statement_identifier "LAB_0001fc50") (: ":") (expression_statement "(*(code *)PTR_free_0003f2f8)(puVar2);" (call_expression "(*(code *)PTR_free_0003f2f8)(puVar2)" (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 "(puVar2)" (( "(") (identifier "puVar2") () ")"))) (; ";"))) (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0001f950;" (goto "goto") (statement_identifier "LAB_0001f950") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (goto_statement label: (statement_identifier))) (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))) (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))) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))) (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: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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 (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (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))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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))) (labeled_statement label: (statement_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 (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (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))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))) (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))) (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (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: (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 (number_literal) (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: (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))))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) consequence: (compound_statement (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 (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: (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))))) (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: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (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)))) (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))))) (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)))) (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: (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))))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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))))))) (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))) (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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (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: (identifier) 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: (compound_statement (expression_statement (assignment_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: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))) (goto_statement label: (statement_identifier)))) (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: (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) (number_literal) (number_literal) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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) (number_literal) (number_literal) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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) (number_literal) (number_literal) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))) (goto_statement label: (statement_identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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 (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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) (number_literal) (number_literal) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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) (identifier) (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) (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))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (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) (number_literal) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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) (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: (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: (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)))) (goto_statement label: (statement_identifier)))) (labeled_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: (subscript_expression argument: (identifier) index: (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))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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)))))) (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: (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: (number_literal))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) 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 (pointer_expression argument: (identifier)) (number_literal) (number_literal))))) (expression_statement (assignment_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) (identifier) (pointer_expression argument: (identifier)))))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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: (identifier)))) alternative: (else_clause (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 (identifier) (binary_expression left: (identifier) right: (number_literal))))))) (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: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (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 (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)))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (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 (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) 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)) (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))))) (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: (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: (number_literal))) (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (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) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (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: (identifier) 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 (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: (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: (number_literal))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (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 (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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 (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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: (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: (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: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (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: (char_literal (escape_sequence)))) 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)) (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (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: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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 (subscript_expression argument: (identifier) index: (number_literal)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))))) 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 (subscript_expression argument: (identifier) index: (number_literal)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))))))) (if_statement condition: (parenthesized_expression (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))))) (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 (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: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (parenthesized_expression (comma_expression left: (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)))) right: (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))))) (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: (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 (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (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))) (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 (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (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: (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 (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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 (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 (labeled_statement label: (statement_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: (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)))) right: (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 (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (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))) (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) 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 (number_literal) (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: (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))))) (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))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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 (subscript_expression argument: (identifier) index: (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: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) 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 (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (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)) (subscript_expression argument: (identifier) index: (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: (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))))) (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 (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) condition: (parenthesized_expression (true))))) (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: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (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: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (subscript_expression argument: (identifier) index: (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: (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 (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (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: (identifier) 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 (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (labeled_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))) (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: (identifier))) (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 (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: (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: (compound_statement (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 (identifier) (binary_expression left: (identifier) 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: (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: (char_literal (escape_sequence)))) 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 (identifier) (number_literal) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_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)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_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)))))) (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 (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 (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))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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))) right: (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: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (goto_statement label: (statement_identifier)))))) (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 (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))))

undefined4 *
MASKED(uint param_1,int *param_2,undefined4 param_3,undefined4 param_4,
                   undefined4 *param_5,undefined4 param_6,undefined4 param_7)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  int *piVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  undefined *puVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  undefined *puVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined2 uVar14;
  uint uVar15;
  uint uVar16;
  undefined4 *puVar17;
  code *pcVar18;
  uint uVar19;
  undefined4 local_f4;
  undefined2 *local_f0;
  uint local_ec;
  int local_e8;
  undefined4 local_e4;
  int *local_e0;
  undefined4 local_dc;
  undefined2 local_d8;
  undefined2 local_d6;
  undefined4 local_d4;
  undefined4 local_d0;
  undefined4 local_cc;
  undefined2 local_c8;
  undefined2 local_c6;
  undefined4 local_c4;
  undefined4 local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  undefined4 local_b4;
  undefined4 local_b0;
  short local_ac;
  undefined2 local_aa;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0003f2ec;
  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;
  local_f4 = 1;
  local_f0 = (undefined2 *)0x0;
  if ((param_1 & 0x8000) != 0) {
    param_1 = param_1 | 0x2400;
  }
  if (param_5 == (undefined4 *)0x0) goto LAB_0001f94c;
  if ((param_1 & 0x240) == 0x240) goto LAB_0001f94c;
  if ((param_1 & 0x204) == 0x204) goto LAB_0001f94c;
  if ((param_1 & 0x4c) == 0x40) goto LAB_0001f94c;
  if ((int)(param_1 << 0xf) < 0) {
    if ((param_1 & 0x240) != 0) goto LAB_0001f94c;
    if ((param_1 & 4) == 0) {
      param_1 = param_1 | 0x200;
    }
    else {
      param_1 = param_1 | 0x40;
    }
  }
  puVar2 = (undefined4 *)(*(code *)PTR_calloc_0003f144)(1,0x174);
  if (puVar2 == (undefined4 *)0x0) goto LAB_0001f94c;
  uVar15 = param_1 & 2;
  puVar2[0x43] = 0;
  puVar2[0x33] = 0xffffffff;
  puVar2[0x35] = 0xffffffff;
  if (uVar15 != 0) {
    (*(code *)PTR_gnutls_priority_init_0003f2e0)(puVar2 + 0x43,PTR_DAT_0003f05c + -0x2ff8,0);
  }
  puVar2[0x32] = 0;
  puVar2[0x3e] = param_1;
  puVar2[0x3b] = 0x3fc;
  puVar2[0x40] = (param_1 << 0x1a) >> 0x1f;
  puVar2[0x1f] = 0x8000;
  puVar2[0x31] = 0xffffffff;
  puVar2[0x20] = 0x400;
  puVar10 = PTR_LAB_0003f084;
  uVar14 = SUB42(param_2,0);
  *(undefined2 *)(puVar2 + 0x3f) = uVar14;
  puVar2[0x10] = param_3;
  puVar2[0x11] = param_4;
  *puVar2 = param_5;
  puVar2[0x18] = puVar10 + -0x6eb8;
  puVar2[1] = param_6;
  puVar2[0x5c] = 0x80;
  puVar10 = PTR_vfprintf_0003f1c0;
  puVar2[0x3a] = 0;
  puVar2[0x3c] = 0;
  puVar2[0x1a] = puVar10;
  puVar10 = PTR_stderr_0003f304;
  puVar2[0x37] = 0xffffffff;
  puVar2[0x1b] = *(undefined4 *)puVar10;
  if ((param_1 & 0xc) == 4) {
    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ff0);
    param_1 = puVar2[0x3e] | 8;
    puVar2[0x3e] = param_1;
LAB_0001f9b4:
    if ((param_1 & 0x100) == 0) {
      uVar15 = puVar2[0x3e] & 2;
    }
    else {
      puVar2[0x3e] = param_1 | 0x400;
      uVar15 = param_1 & 2;
    }
  }
  else {
    if ((param_1 & 8) != 0) goto LAB_0001f9b4;
    param_1 = param_1 & 0xfffffbff;
    puVar2[0x3e] = param_1;
  }
  puVar2[0x59] = 0;
  puVar2[0x51] = 0;
  puVar2[0x5a] = 4;
  if (uVar15 != 0) {
    puVar2[0x44] = 1;
  }
  iVar3 = FUN_00019160(puVar2,&local_f0,param_7);
  if (iVar3 != 1) {
    if ((puVar2[0x3e] & 2) == 0) goto LAB_0001fc50;
LAB_0001fc74:
    iVar3 = puVar2[0x43];
joined_r0x0002099c:
    if (iVar3 == 0) goto LAB_0001fc50;
    (*(code *)PTR_gnutls_priority_deinit_0003f170)();
    goto LAB_0001fc50;
  }
  uVar15 = puVar2[0x3e];
  if ((puVar2[0x12] == 0) || ((uVar15 & 4) == 0)) {
    if ((uVar15 & 0x400) != 0) goto LAB_0001f9d4;
  }
  else {
    puVar2[0x3e] = uVar15 | 0x400;
LAB_0001f9d4:
    if (puVar2[0x22] == 0) {
      iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);
      puVar2[0x37] = iVar3;
      if (iVar3 == -1) {
        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2f20,uVar11);
        iVar3 = puVar2[0x43];
        goto joined_r0x0002099c;
      }
      if (((puVar2[0x3e] & 0x240) == 0) && (0x3ff < iVar3)) {
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ee4);
        iVar3 = (*(code *)PTR_close_0003f158)(puVar2[0x37]);
        if (iVar3 == 0) {
          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = 0x1636;
          if (*piVar4 == 9) goto LAB_0001f91c;
        }
        goto LAB_0001fc74;
      }
    }
  }
  uVar15 = puVar2[0x5a];
  if (uVar15 != 0) {
    if (uVar15 != (uVar15 * 0x98) / 0x98) {
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e94);
      uVar15 = puVar2[0x3e];
joined_r0x0001fc44:
      if ((uVar15 & 2) == 0) goto LAB_0001fc50;
      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);
      goto LAB_0001fc50;
    }
    iVar3 = (*(code *)PTR_malloc_0003f25c)();
    puVar2[0x52] = iVar3;
    if (iVar3 == 0) {
      puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
      uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e6c,uVar11);
      uVar15 = puVar2[0x3e];
      goto joined_r0x0001fc44;
    }
  }
  param_5 = puVar2 + 0x53;
  iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_5,0);
  if (iVar3 != 0) {
    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e3c);
    if ((puVar2[0x3e] & 2) != 0) {
      (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);
    }
    (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);
    puVar5 = (undefined4 *)0x0;
    (*(code *)PTR_free_0003f2f8)(puVar2);
    goto LAB_0001f950;
  }
  uVar15 = puVar2[0x3e];
  if (((uVar15 & 8) == 0) && (puVar2[0x22] != 0)) {
    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2e10);
    goto LAB_0001f860;
  }
  param_1 = puVar2[0x31];
  if (param_1 == 0xffffffff) {
    if ((uVar15 & 0x100) == 0) {
      uVar11 = 10;
      if ((uVar15 & 0x10) == 0) {
        uVar11 = 2;
      }
      param_1 = FUN_0002234c(uVar11);
      if (param_1 == 0xffffffff) {
        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2dcc,uVar11);
        goto LAB_0001f860;
      }
      if (puVar2[0x32] == 0) {
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);
        if (iVar3 < 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
        }
      }
      else if (0 < (int)puVar2[0x32]) {
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,4,&local_f4,4);
        if (iVar3 < 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
        }
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0xffff,0x200,&local_f4,4);
        if (iVar3 < 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
          goto LAB_0001f860;
        }
      }
      if ((puVar2[0x3e] & 0x10) == 0) {
        local_ec = 0x10;
        if (local_f0 == (undefined2 *)0x0) {
          local_d4 = 0;
          local_d0 = 0;
          local_d8 = 2;
          local_f0 = &local_d8;
          local_cc = 0;
          puVar2[0x31] = param_1;
          local_d6 = uVar14;
        }
        else {
          puVar2[0x31] = param_1;
        }
      }
      else {
        local_ec = 0x1c;
        if (local_f0 == (undefined2 *)0x0) {
          local_c4 = 0;
          local_b0 = 0;
          local_c8 = 10;
          local_f0 = &local_c8;
          local_c0 = 0;
          local_bc = 0;
          local_b8 = 0;
          local_b4 = 0;
          puVar2[0x31] = param_1;
          local_c6 = uVar14;
        }
        else {
          puVar2[0x31] = param_1;
        }
        local_e0 = (int *)(uint)((puVar2[0x3e] & 0x810) != 0x810);
        iVar3 = (*(code *)PTR_setsockopt_0003f340)(param_1,0x29,0x1a,&local_e0,4);
        if (iVar3 < 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
        }
      }
      iVar3 = (*(code *)PTR_bind_0003f21c)(param_1,local_f0,local_ec);
      puVar10 = PTR_setsockopt_0003f340;
      if (iVar3 == -1) {
        piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*piVar4);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d88,param_2,uVar11);
        iVar3 = (*(code *)PTR_close_0003f158)(param_1);
        if (iVar3 == 0) goto LAB_0001f860;
        iVar3 = *piVar4;
        uVar11 = 0x1753;
        goto joined_r0x00020848;
      }
      if ((puVar2[0x3e] & 0x4000) != 0) {
        if (puVar2[0x5b] == 0) {
          puVar2[0x5b] = 10;
        }
        iVar3 = (*(code *)puVar10)(param_1,6,0x17,puVar2 + 0x5b,4);
        if (iVar3 != 0) {
          puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2da0,uVar11);
        }
      }
      iVar3 = (*(code *)PTR_listen_0003f1b8)(param_1,puVar2[0x5c]);
      if (iVar3 < 0) {
        param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d68,uVar11);
        iVar3 = (*(code *)PTR_close_0003f158)(param_1);
        if (iVar3 == 0) goto LAB_0001f860;
        iVar3 = *param_2;
        uVar11 = 0x1771;
        goto joined_r0x00020848;
      }
      goto LAB_0001f7e0;
    }
LAB_0001f82c:
    if (((uVar15 & 0x200) != 0) && (puVar2[0x22] == 0)) {
      if ((uVar15 & 4) != 0) goto LAB_0001fdf8;
      iVar3 = FUN_0001b338(puVar2);
      if (iVar3 != 1) goto LAB_0001f860;
    }
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);
    if (iVar3 != 0) {
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);
      if (param_1 == 0xffffffff) goto LAB_0001f860;
LAB_0001ff08:
      iVar3 = (*(code *)PTR_close_0003f158)(param_1);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar4;
      uVar11 = 0x17fc;
      goto joined_r0x00020848;
    }
  }
  else {
LAB_0001f7e0:
    if ((*(short *)(puVar2 + 0x3f) == 0) && ((puVar2[0x3e] & 0x100) == 0)) {
      uVar11 = (*(code *)PTR_memset_0003f20c)(&local_ac,0,0x80);
      local_ec = 0x80;
      iVar3 = (*(code *)PTR_getsockname_0003f19c)(param_1,uVar11,&local_ec);
      if (iVar3 == 0) {
        if (local_ec < 0x81) {
          if ((local_ac == 2) || (local_ac == 10)) {
            *(undefined2 *)(puVar2 + 0x3f) = local_aa;
          }
          else {
            if (local_ac != 1) {
              FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ccc);
            }
            *(undefined2 *)(puVar2 + 0x3f) = 0;
          }
        }
        else {
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d18);
        }
      }
      else {
        puVar5 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
        uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar5);
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2d40,uVar11);
      }
    }
    iVar3 = FUN_00022234(param_1);
    if (iVar3 != 0) {
      uVar15 = puVar2[0x3e];
      if ((0x3ff < (int)param_1) && ((uVar15 & 0x240) == 0)) goto LAB_0002006c;
      goto LAB_0001f82c;
    }
    param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);
    FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2cb0,uVar11);
    if ((puVar2[0x3e] & 0x200) != 0) goto LAB_00020280;
    if (puVar2[0x22] != 0) goto LAB_00020280;
    if ((0x3ff < (int)param_1) && ((puVar2[0x3e] & 0x240) == 0)) {
LAB_0002006c:
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x3938,param_1,0x400);
      iVar3 = (*(code *)PTR_close_0003f158)(param_1);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar4;
      uVar11 = 0x17dc;
      goto joined_r0x00020848;
    }
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar2 + 0x25,0);
    if (iVar3 != 0) {
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);
      goto LAB_0001ff08;
    }
  }
  puVar5 = puVar2 + 0x25;
  if (puVar2[0x22] == 0) {
    param_2 = puVar2 + 0x2b;
    iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(param_2,0);
    if (iVar3 != 0) {
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c28);
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_2);
      uVar11 = 0x1809;
      if (iVar3 != 0) goto LAB_0002025c;
      if (param_1 == 0xffffffff) goto LAB_0001f860;
      iVar3 = (*(code *)PTR_close_0003f158)(param_1);
      if (iVar3 == 0) goto LAB_0001f860;
      piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
      iVar3 = *piVar4;
      uVar11 = 0x180c;
      goto joined_r0x00020848;
    }
  }
  uVar15 = puVar2[0x3e];
  if ((uVar15 & 2) != 0) {
    if (puVar2[0x44] == 1) {
      iVar3 = (*(code *)PTR_gnutls_certificate_allocate_credentials_0003f150)(puVar2 + 0x45);
      if (iVar3 != 0) goto LAB_000201cc;
      if (puVar2[0x48] != 0) {
        (*(code *)PTR_gnutls_certificate_set_retrieve_function2_0003f31c)(puVar2[0x45]);
      }
      piVar4 = (int *)puVar2[0x4e];
      if (piVar4 != (int *)0x0) {
        local_e0 = piVar4;
        local_dc = (*(code *)PTR_strlen_0003f228)(piVar4);
        iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_trust_mem_0003f29c)
                          (puVar2[0x45],&local_e0,1);
        if (iVar3 < 0) {
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bf4);
          goto LAB_000201cc;
        }
      }
      if (*(char *)(puVar2 + 0x50) != '\0') {
        (*(code *)PTR_gnutls_certificate_set_dh_params_0003f1f4)(puVar2[0x45],puVar2[0x4f]);
      }
      param_2 = (int *)puVar2[0x4c];
      if ((param_2 == (int *)0x0) || (iVar3 = puVar2[0x4b], iVar3 == 0)) {
        if (puVar2[0x48] == 0) {
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ba0);
          goto LAB_000201cc;
        }
      }
      else {
        local_e8 = iVar3;
        local_e4 = (*(code *)PTR_strlen_0003f228)(iVar3);
        local_e0 = param_2;
        local_dc = (*(code *)PTR_strlen_0003f228)(param_2);
        if (puVar2[0x4d] == 0) {
          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem_0003f320)
                            (puVar2[0x45],&local_e0,&local_e8,1);
        }
        else {
          iVar3 = (*(code *)PTR_gnutls_certificate_set_x509_key_mem2_0003f30c)
                            (puVar2[0x45],&local_e0,&local_e8,1,puVar2[0x4d],0);
        }
        if (iVar3 != 0) {
          uVar11 = (*(code *)PTR_gnutls_strerror_0003f1b4)(iVar3);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2bd4,uVar11);
          goto LAB_000201cc;
        }
      }
    }
    else {
      if (puVar2[0x44] != 4) {
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b6c);
LAB_000201cc:
        FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b3c);
        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))
        {
          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = 0x181c;
          if (*piVar4 == 9) goto LAB_0001fdd8;
        }
        if (puVar2[0x22] == 0) {
          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);
          uVar11 = 0x181f;
          if (iVar3 != 0) goto LAB_0002025c;
        }
        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);
        uVar11 = 0x1820;
        if (iVar3 != 0) goto LAB_0002025c;
        goto LAB_0001f860;
      }
      iVar3 = (*(code *)PTR_gnutls_psk_allocate_server_credentials_0003f1a4)(puVar2 + 0x47);
      if (iVar3 != 0) goto LAB_000201cc;
    }
    uVar15 = puVar2[0x3e];
  }
  if ((uVar15 & 0x108) == 8) {
    uVar16 = puVar2[0x22];
    if (uVar16 != 0) {
      uVar15 = puVar2[0x3b];
      if (uVar16 == 0) {
        trap(7);
      }
      uVar19 = uVar15 / uVar16;
      iVar3 = (*(code *)PTR_malloc_0003f25c)(uVar16 * 0x174);
      puVar2[0x1d] = iVar3;
      puVar10 = PTR_DAT_0003f05c;
      if (iVar3 == 0) {
LAB_00020778:
        if ((param_1 != 0xffffffff) && (iVar3 = (*(code *)PTR_close_0003f158)(param_1), iVar3 != 0))
        {
          piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = 0x18b3;
          if (*piVar4 == 9) goto LAB_0001fdd8;
        }
        iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);
        uVar11 = 0x18b4;
        if (iVar3 != 0) goto LAB_0002025c;
        if (puVar2[0x1d] == 0) goto LAB_0001f860;
        (*(code *)PTR_free_0003f2f8)();
        goto LAB_0001f860;
      }
      param_2 = (int *)0x0;
      pcVar18 = (code *)(PTR_LAB_0003f084 + -0x4cc8);
      puVar7 = PTR_LAB_0003f084 + -6000;
      do {
        puVar17 = (undefined4 *)((int)param_2 * 0x174 + iVar3);
        puVar6 = puVar17;
        puVar8 = puVar2;
        do {
          puVar9 = puVar8 + 4;
          uVar13 = puVar8[1];
          uVar12 = puVar8[2];
          uVar11 = puVar8[3];
          *puVar6 = *puVar8;
          puVar6[1] = uVar13;
          puVar6[2] = uVar12;
          puVar6[3] = uVar11;
          puVar6 = puVar6 + 4;
          puVar8 = puVar9;
        } while (puVar9 != puVar2 + 0x5c);
        *puVar6 = *puVar9;
        puVar17[0x1c] = puVar2;
        puVar17[0x22] = 0;
        puVar17[0x1d] = 0;
        if ((puVar2[0x3e] & 0x400) != 0) {
          iVar3 = (*(code *)PTR_eventfd_0003f180)(0,0x80080);
          puVar17[0x37] = iVar3;
          if (iVar3 == -1) {
            puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
            uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);
            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2af4,uVar11);
          }
          else {
            if (((puVar2[0x3e] & 0x240) != 0) || (iVar3 < 0x400)) goto LAB_00020648;
            FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2ab4);
            iVar3 = (*(code *)PTR_close_0003f158)(puVar17[0x37]);
            if ((iVar3 == 0) &&
               (piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)(), *piVar4 == 9))
            goto LAB_00020b10;
          }
LAB_00020770:
          pcVar18 = (code *)PTR_MHD_stop_daemon_0003f1ac;
          if (param_2 != (int *)0x0) goto LAB_0001f93c;
          goto LAB_00020778;
        }
        puVar17[0x37] = 0xffffffff;
LAB_00020648:
        if (param_2 < (int *)(uVar15 % uVar16)) {
          puVar17[0x3b] = uVar19 + 1;
        }
        else {
          puVar17[0x3b] = uVar19;
        }
        if (((puVar2[0x3e] & 0x200) != 0) && (iVar3 = (*pcVar18)(puVar17), iVar3 != 1))
        goto LAB_00020770;
        iVar3 = (*(code *)PTR_pthread_mutex_init_0003f2dc)(puVar17 + 0x2b,0);
        if (iVar3 != 0) {
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a5c);
          goto LAB_00020770;
        }
        iVar3 = FUN_00023bd4(puVar17 + 0x23,puVar10 + -0x2a28,puVar2[0x21],puVar7,puVar17);
        if (iVar3 == 0) {
          puVar6 = (undefined4 *)(*(code *)PTR___errno_location_0003f204)();
          uVar11 = (*(code *)PTR_strerror_0003f254)(*puVar6);
          FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2a1c,uVar11);
          iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar17 + 0x2b);
          uVar11 = 0x189b;
          if (iVar3 != 0) goto LAB_0002025c;
          goto LAB_00020770;
        }
        param_2 = (int *)((int)param_2 + 1);
        if ((int *)puVar2[0x22] <= param_2) goto LAB_0001fcdc;
        iVar3 = puVar2[0x1d];
      } while( true );
    }
    if ((uVar15 & 4) == 0) {
      puVar10 = PTR_DAT_0003f05c + -0x3004;
    }
    else {
      puVar10 = PTR_DAT_0003f05c + -0x3010;
    }
    iVar3 = FUN_00023bd4(puVar2 + 0x23,puVar10,puVar2[0x21],PTR_LAB_0003f084 + -6000,puVar2);
    if (iVar3 == 0) {
      param_2 = (int *)(*(code *)PTR___errno_location_0003f204)();
      uVar11 = (*(code *)PTR_strerror_0003f254)(*param_2);
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2b18,uVar11);
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar2 + 0x2b);
      uVar11 = 0x1837;
      if (iVar3 != 0) goto LAB_0002025c;
      iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(puVar5);
      uVar11 = 0x1838;
      if (iVar3 != 0) goto LAB_0002025c;
      if (param_1 == 0xffffffff) goto LAB_0001f860;
      iVar3 = (*(code *)PTR_close_0003f158)(param_1);
      if (iVar3 == 0) goto LAB_0001f860;
      iVar3 = *param_2;
      uVar11 = 0x183a;
      goto joined_r0x00020848;
    }
  }
LAB_0001fcdc:
  puVar2[0x4d] = 0;
  puVar5 = puVar2;
LAB_0001f950:
  if (local_2c == *(int *)puVar1) {
    return puVar5;
  }
  (*(code *)PTR___stack_chk_fail_0003f2b8)();
  puVar2 = puVar5;
LAB_00020ae0:
  uVar11 = 0x18dc;
LAB_0002025c:
  (**(code **)PTR_DAT_0003f070)
            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,
             PTR_DAT_0003f05c + -0x302c);
LAB_00020280:
  iVar3 = (*(code *)PTR_close_0003f158)(param_1);
  if (iVar3 != 0) {
    iVar3 = *param_2;
    uVar11 = 0x17cd;
joined_r0x00020848:
    if (iVar3 == 9) {
LAB_0001fdd8:
      (**(code **)PTR_DAT_0003f070)
                (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,
                 PTR_DAT_0003f05c + -0x3950);
LAB_0001fdf8:
      FUN_00020df0(puVar2,PTR_DAT_0003f05c + -0x2c78);
    }
  }
LAB_0001f860:
  iVar3 = puVar2[0x33];
  if (*(char *)(puVar2 + 0x36) == '\0') goto LAB_0001f86c;
  iVar3 = (*(code *)PTR_epoll_ctl_0003f278)(iVar3,2,puVar2[0x35],0);
  if (iVar3 == 0) {
    iVar3 = puVar2[0x33];
    *(undefined1 *)(puVar2 + 0x36) = 0;
    goto LAB_0001f86c;
  }
  (**(code **)PTR_DAT_0003f070)
            (*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,0x18ce,
             PTR_DAT_0003f05c + -0x4f40);
LAB_00020b10:
  uVar11 = 0x1871;
  goto LAB_0001f91c;
LAB_0001f86c:
  if (iVar3 != -1) {
    (*(code *)PTR_close_0003f158)();
  }
  if (puVar2[0x35] != -1) {
    (*(code *)PTR_close_0003f158)();
  }
  (*(code *)PTR_free_0003f2f8)(puVar2[0x52]);
  iVar3 = (*(code *)PTR_pthread_mutex_destroy_0003f314)(param_5);
  if (iVar3 == 0) goto code_r0x0001f8c8;
  goto LAB_00020ae0;
code_r0x0001f8c8:
  if ((puVar2[0x3e] & 2) != 0) {
    (*(code *)PTR_gnutls_priority_deinit_0003f170)(puVar2[0x43]);
  }
  if ((puVar2[0x37] != -1) && (iVar3 = (*(code *)PTR_close_0003f158)(), iVar3 == 0)) {
    piVar4 = (int *)(*(code *)PTR___errno_location_0003f204)();
    uVar11 = 0x18e4;
    if (*piVar4 == 9) {
LAB_0001f91c:
      pcVar18 = *(code **)PTR_DAT_0003f070;
      (*pcVar18)(*(undefined4 *)PTR_DAT_0003f068,PTR_DAT_0003f05c + -0x40a0,uVar11,
                 PTR_DAT_0003f05c + -0x3044);
LAB_0001f93c:
      puVar2[0x22] = param_2;
      (*pcVar18)(puVar2);
LAB_0001f94c:
      puVar5 = (undefined4 *)0x0;
      goto LAB_0001f950;
    }
  }
LAB_0001fc50:
  (*(code *)PTR_free_0003f2f8)(puVar2);
  puVar5 = (undefined4 *)0x0;
  goto LAB_0001f950;
}

