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

int MHD_connection_handle_idle(MHD_Connection *connection)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  time_t tVar4;
  size_t sVar5;
  int iVar6;
  MHD_CONNECTION_STATE MVar7;
  char *pcVar8;
  MHD_TLS_CONN_STATE MVar9;
  char cVar10;
  uint in_t1;
  size_t sVar11;
  char *in_t2;
  char *str;
  undefined *puVar12;
  MHD_Daemon *pMVar13;
  size_t line_len;
  size_t left_unprocessed;
  char cbuf [10];
  
  puVar1 = PTR___stack_chk_guard_0003f2ec;
  iVar2 = *(int *)PTR___stack_chk_guard_0003f2ec;
  puVar12 = PTR_DAT_0003f05c + -0x45c0;
  pMVar13 = connection->daemon;
  cVar10 = connection->suspended;
  connection->in_idle = true;
LAB_00015eac:
  iVar3 = 1;
  if (cVar10 != '\0') goto LAB_00015f88;
  MVar9 = connection->tls_state;
LAB_00015ec0:
  if ((1 < MVar9 - MHD_TLS_CONN_INIT) &&
     (connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED))) {
                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();
    return iVar2;
  }
  iVar3 = connection->connection_timeout;
  if (iVar3 != 0) goto LAB_00016168;
LAB_00015edc:
  MVar9 = connection->tls_state;
  puVar12 = (undefined *)0x1;
  if (MVar9 == MHD_TLS_CONN_NO_TLS) {
LAB_00015eec:
    puVar12 = PTR_DAT_0003f05c + -0x4610;
    if (connection->state < MHD_CONNECTION_UPGRADE) {
                    /* WARNING: Could not emulate address calculation at 0x00015f18 */
                    /* WARNING: Treating indirect jump as call */
      iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();
      return iVar2;
    }
LAB_00015ff0:
    iVar3 = 1;
    if (connection->suspended != false) goto LAB_00015f88;
  }
  else {
    if (MVar9 != MHD_TLS_CONN_INIT) {
      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;
      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);
      if (iVar3 == 0) {
        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;
      }
      else {
        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;
      }
      goto LAB_00015ff0;
    }
    connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;
  }
  if ((pMVar13->options & MHD_USE_EPOLL) == MHD_NO_FLAG) {
    iVar3 = 1;
  }
  else {
    iVar3 = MHD_connection_epoll_update_(connection);
  }
LAB_00015f88:
  do {
    connection->in_idle = false;
    sVar11 = in_t1;
    str = in_t2;
LAB_00015f8c:
    if (iVar2 == *(int *)puVar1) {
      return iVar3;
    }
    (*(code *)PTR___stack_chk_fail_0003f2b8)();
    if (sVar11 < 2) {
      in_t1 = 1;
LAB_00016c34:
      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);
LAB_00016c54:
      connection->read_buffer_offset = in_t1;
      in_t2 = str;
    }
    else {
      in_t1 = sVar11;
      in_t2 = str;
      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);
      if (sVar5 == 0) {
        iVar3 = 1;
        pcVar8 = str + 1;
        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {
          iVar3 = 2;
          pcVar8 = str + 2;
        }
        iVar6 = *(int *)&connection->current_chunk_size;
        in_t1 = sVar11 - iVar3;
        iVar3 = (int)connection->current_chunk_size;
        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;
        *(undefined4 *)&connection->current_chunk_offset = 0;
        if (in_t1 == 0) {
          if (iVar6 == 0 && iVar3 == 0) {
            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;
            *(undefined4 *)&connection->remaining_upload_size = 0;
          }
        }
        else {
          if (iVar6 != 0 || iVar3 != 0) {
            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);
            return iVar2;
          }
          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;
          *(undefined4 *)&connection->remaining_upload_size = 0;
          str = pcVar8;
          if (in_t1 != 0) goto LAB_00016c34;
        }
        goto LAB_00016c54;
      }
      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);
      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);
    }
    cVar10 = connection->suspended;
    if (connection->state == MHD_CONNECTION_CLOSED) goto LAB_00015eac;
    iVar3 = (int)connection->remaining_upload_size;
    if (*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0) {
      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&
          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))
      goto LAB_00016658;
      iVar3 = 1;
      if ((_Bool)cVar10 != false) goto LAB_00015f88;
      iVar3 = connection->connection_timeout;
      if (iVar3 == 0) goto LAB_00015edc;
LAB_00016168:
      tVar4 = MHD_monotonic_sec_counter();
      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);
      if (puVar12 == (undefined *)0x0) {
        iVar3 = 1;
        if (connection->suspended == false) goto LAB_00015edc;
        connection->in_idle = false;
        sVar11 = in_t1;
        str = in_t2;
      }
      else {
        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);
        iVar3 = 1;
        connection->in_idle = false;
        sVar11 = in_t1;
        str = in_t2;
      }
      goto LAB_00015f8c;
    }
    if (connection->have_chunked_upload == false) {
LAB_00016658:
      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;
    }
    else {
      MVar7 = MHD_CONNECTION_BODY_RECEIVED;
      if (connection->read_closed != false) {
        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;
      }
    }
    connection->state = MVar7;
    if ((_Bool)cVar10 == false) {
      MVar9 = connection->tls_state;
      goto LAB_00015ec0;
    }
    iVar3 = 1;
  } while( true );
}



undefined4 FUN_00015e38(int param_1)

{
  char cVar1;
  bool bVar2;
  undefined *puVar3;
  undefined4 uVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  undefined *puVar9;
  char cVar10;
  uint uVar11;
  uint uVar12;
  uint in_t1;
  uint uVar13;
  char *in_t2;
  char *pcVar14;
  undefined4 *in_t3;
  undefined4 *puVar15;
  undefined *puVar16;
  undefined *puVar17;
  int iVar18;
  uint uVar19;
  undefined4 local_4c;
  int local_48;
  uint local_3c [4];
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_0003f2ec;
  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;
  puVar16 = PTR_DAT_0003f05c + -0x45c0;
  iVar18 = *(int *)(param_1 + 0x18);
  cVar10 = *(char *)(param_1 + 0xf5);
  puVar17 = PTR_DAT_0003f05c + -0x4884;
  *(undefined1 *)(param_1 + 0xab) = 1;
LAB_00015eac:
  uVar4 = 1;
  if (cVar10 != '\0') goto LAB_00015f88;
  iVar8 = *(int *)(param_1 + 0xf0);
LAB_00015ec0:
  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {
                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();
    return uVar4;
  }
  iVar8 = *(int *)(param_1 + 0x98);
  if (iVar8 != 0) goto LAB_00016168;
LAB_00015edc:
  iVar8 = *(int *)(param_1 + 0xf0);
  puVar16 = (undefined *)0x1;
  if (iVar8 == 0) {
LAB_00015eec:
    puVar17 = PTR_0003f058 + 0x27f0;
    puVar16 = PTR_DAT_0003f05c + -0x4610;
    if (*(uint *)(param_1 + 0xb4) < 0x14) {
                    /* WARNING: Could not emulate address calculation at 0x00015f18 */
                    /* WARNING: Treating indirect jump as call */
      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();
      return uVar4;
    }
switchD_00015f24_caseD_3:
    uVar4 = 1;
    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;
  }
  else {
    if (iVar8 != 1) {
      if (iVar8 != 2) goto LAB_00015eec;
      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));
      if (iVar8 == 0) {
        *(undefined4 *)(param_1 + 0xb8) = 0;
      }
      else {
        *(undefined4 *)(param_1 + 0xb8) = 1;
      }
      goto switchD_00015f24_caseD_3;
    }
    *(undefined4 *)(param_1 + 0xb8) = 0;
  }
  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {
    uVar4 = 1;
  }
  else {
    uVar4 = FUN_000150d8(param_1);
  }
LAB_00015f88:
  do {
    *(undefined1 *)(param_1 + 0xab) = 0;
    uVar13 = in_t1;
LAB_00015f8c:
    if (local_2c == *(int *)puVar3) {
      return uVar4;
    }
    (*(code *)PTR___stack_chk_fail_0003f2b8)();
LAB_000179e4:
    uVar12 = 0;
    if (1 < uVar13) {
      uVar11 = 1;
      uVar19 = 0;
      pcVar14 = in_t2;
      do {
        in_t1 = uVar13;
        in_t2 = pcVar14;
        puVar15 = in_t3;
        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);
        if (uVar6 != uVar12) goto LAB_00017458;
        in_t2 = pcVar14 + uVar11;
        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {
          uVar11 = uVar19 + 2;
          in_t2 = pcVar14 + uVar11;
        }
        uVar13 = uVar13 - uVar11;
        *(undefined4 *)(param_1 + 0xd4) = 0;
        *(undefined4 *)(param_1 + 0xd0) = 0;
        if (uVar13 == 0) {
          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {
            *(undefined4 *)(param_1 + 0x7c) = 0;
            *(undefined4 *)(param_1 + 0x78) = 0;
          }
          goto LAB_00016c54;
        }
        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {
          *(undefined4 *)(param_1 + 0x7c) = 0;
          *(undefined4 *)(param_1 + 0x78) = 0;
          goto LAB_00016c2c;
        }
        cVar10 = *(char *)(param_1 + 0xc0);
LAB_00016aa4:
        iVar8 = *(int *)(param_1 + 0x78);
        uVar12 = *(uint *)(param_1 + 0x7c);
        in_t1 = uVar13;
        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {
          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))
          goto LAB_00016f9c;
          if ((iVar8 == 0) && (uVar12 < uVar13)) {
            bVar2 = false;
          }
          else {
            bVar2 = false;
            uVar12 = uVar13;
          }
LAB_00016af0:
          *(undefined1 *)(param_1 + 0xa0) = 1;
          local_3c[0] = uVar12;
          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),
                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),
                                    in_t2,local_3c,param_1 + 0x2c);
          if (iVar8 == 0) {
            uVar4 = *(undefined4 *)(param_1 + 0x18);
            puVar9 = PTR_DAT_0003f05c + -0x4fc0;
            goto LAB_00017464;
          }
          if (uVar12 < local_3c[0]) {
            (**(code **)PTR_DAT_0003f070)
                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);
          }
          if (local_3c[0] != 0) {
            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {
              bVar2 = false;
            }
            else {
              FUN_00020df0(in_t3,puVar17);
              bVar2 = false;
            }
          }
          cVar10 = *(char *)(param_1 + 0xc0);
          iVar8 = uVar12 - local_3c[0];
          if (cVar10 != '\0') {
            uVar19 = *(uint *)(param_1 + 0xd4);
            uVar11 = uVar19 + iVar8;
            *(uint *)(param_1 + 0xd4) = uVar11;
            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);
          }
          uVar19 = *(uint *)(param_1 + 0x7c);
          in_t2 = in_t2 + iVar8;
          uVar13 = local_3c[0] + (uVar13 - uVar12);
          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {
            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;
            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);
          }
          if (!bVar2) goto LAB_00016c2c;
          goto LAB_00016aa4;
        }
        uVar11 = *(uint *)(param_1 + 0xd0);
        uVar19 = *(uint *)(param_1 + 200);
        uVar12 = *(uint *)(param_1 + 0xd4);
        uVar6 = *(uint *)(param_1 + 0xcc);
        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {
          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;
          uVar12 = uVar6 - uVar12;
          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||
             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {
LAB_00016f9c:
            bVar2 = false;
            uVar12 = uVar13;
          }
          goto LAB_00016af0;
        }
        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {
          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;
          if (in_t2[1] == '\r') {
            iVar8 = 2;
          }
          else {
            iVar8 = 2;
            if (in_t2[1] != '\n') {
              iVar8 = 1;
            }
          }
          uVar13 = uVar13 - iVar8;
          in_t2 = in_t2 + iVar8;
          *(undefined4 *)(param_1 + 0xd4) = 0;
          *(undefined4 *)(param_1 + 0xcc) = 0;
          *(undefined4 *)(param_1 + 0xd0) = 0;
          *(undefined4 *)(param_1 + 200) = 0;
        }
LAB_000175d8:
        pcVar14 = in_t2;
        if (uVar13 == 0) goto LAB_00016c54;
        cVar10 = *in_t2;
        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;
        in_t1 = uVar13;
        if (cVar10 != ';') {
          uVar6 = 1;
          do {
            uVar11 = uVar6 + 1;
            uVar19 = uVar6;
            if (uVar6 == uVar13) goto LAB_000178e4;
            cVar1 = in_t2[uVar6];
            uVar12 = uVar6;
            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;
            if (cVar1 == ';') {
              if (uVar6 < uVar13) goto LAB_00017988;
              goto LAB_00017804;
            }
            uVar6 = uVar11;
          } while (uVar11 != 0x10);
          if (in_t2[0x10] != ';') {
            if (uVar13 < 0x12) goto LAB_00016c2c;
            uVar4 = *(undefined4 *)(param_1 + 0x18);
            goto LAB_0001745c;
          }
          uVar12 = uVar11;
          if (0x10 < uVar13) goto LAB_00017988;
LAB_00016c2c:
          pcVar14 = in_t2;
          if (uVar13 == 0) goto LAB_00016c54;
          goto LAB_00016c34;
        }
        uVar6 = 0;
        uVar12 = uVar6;
LAB_00017988:
        do {
          uVar7 = uVar6 + 1;
          uVar11 = uVar6 + 2;
          uVar19 = uVar13;
          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;
          uVar6 = uVar7;
        } while (in_t2[uVar7] != '\n');
LAB_00017804:
        uVar6 = uVar12;
        if (uVar13 <= uVar11) {
LAB_000178e4:
          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;
          uVar19 = 1;
          uVar12 = uVar6;
        }
        puVar15 = in_t3;
        if (uVar12 == 0x10) {
LAB_00017458:
          uVar4 = *(undefined4 *)(param_1 + 0x18);
          in_t3 = puVar15;
LAB_0001745c:
          puVar9 = PTR_DAT_0003f05c + -0x48f0;
LAB_00017464:
          FUN_00020df0(uVar4,puVar9);
          FUN_00014148(param_1,1);
          goto LAB_00016c58;
        }
      } while( true );
    }
    uVar13 = 1;
LAB_00016c34:
    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);
    pcVar14 = in_t2;
LAB_00016c54:
    *(uint *)(param_1 + 100) = uVar13;
    in_t1 = uVar13;
    in_t2 = pcVar14;
LAB_00016c58:
    cVar10 = *(char *)(param_1 + 0xf5);
    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;
    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {
      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&
          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;
      uVar4 = 1;
      if (cVar10 != '\0') goto LAB_00015f88;
      iVar8 = *(int *)(param_1 + 0x98);
      if (iVar8 == 0) goto LAB_00015edc;
LAB_00016168:
      iVar5 = FUN_0002186c();
      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));
      if (puVar16 == (undefined *)0x0) {
        uVar4 = 1;
        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;
        *(undefined1 *)(param_1 + 0xab) = 0;
        uVar13 = in_t1;
      }
      else {
        FUN_00014148(param_1,2);
        uVar4 = 1;
        *(undefined1 *)(param_1 + 0xab) = 0;
        uVar13 = in_t1;
      }
      goto LAB_00015f8c;
    }
    if (*(char *)(param_1 + 0xc0) == '\0') {
LAB_00016658:
      uVar4 = 9;
    }
    else {
      uVar4 = 7;
      if (*(char *)(param_1 + 0xa9) != '\0') {
        uVar4 = 9;
      }
    }
    *(undefined4 *)(param_1 + 0xb4) = uVar4;
    if (cVar10 == '\0') {
      iVar8 = *(int *)(param_1 + 0xf0);
      goto LAB_00015ec0;
    }
    uVar4 = 1;
  } while( true );
}


lui gp,0x3
addiu gp,gp,0x11f8
addu gp,gp,t9
addiu sp,sp,-0x88
sw s3,0x6c(sp)
sw s8,0x80(sp)
or s8,a0,zero
sw s2,0x68(sp)
sw s1,0x64(sp)
sw s0,0x60(sp)
sw gp,0x20(sp)
sw ra,0x84(sp)
sw s7,0x7c(sp)
sw s6,0x78(sp)
sw s5,0x74(sp)
sw s4,0x70(sp)
lw s3,-0x7d44(gp)
lw s0,-0x7fd4(gp)
lw s1,-0x7fd8(gp)
lw s2,-0x7fd4(gp)
lw v0,0x0(s3)
addiu s0,s0,-0x45c0
lw s6,0x18(a0)
addiu s1,s1,0x5a80
lbu a2,0xf5(a0)
addiu s2,s2,-0x4884
sw v0,0x5c(sp)
li v0,0x1
sb v0,0xab(a0)
bne a2,zero,0x00015f88
_li v0,0x1
lw a1,0xf0(s8)
lw s4,-0x7fd8(gp)
lw s5,-0x7fd4(gp)
addiu v0,a1,-0x1
sltiu v0,v0,0x2
beq v0,zero,0x00015f2c
_nop
lw s0,0x98(s8)
bne s0,zero,0x00016168
_lw t9,-0x7fcc(gp)
lw v0,0xf0(s8)
bne v0,zero,0x00015fc8
_li s0,0x1
lw t9,-0x7fd8(gp)
lw s0,-0x7fd4(gp)
lw s5,-0x7fd4(gp)
addiu s2,t9,0x27f0
lw t9,-0x7fd8(gp)
lw s4,-0x7fd4(gp)
addiu s0,s0,-0x4610
addiu s1,t9,0x5834
lw v0,0xb4(s8)
sltiu a0,v0,0x14
beq a0,zero,0x00015ff0
_sll v0,v0,0x2
addu v0,s0,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
lw v0,0xb4(s8)
sltiu a0,v0,0x15
beq a0,zero,0x00015ed0
_sll v0,v0,0x2
addu v0,s0,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
or a1,zero,zero
or t9,s1,zero
bal 0x00015a80
_or a0,s8,zero
beq v0,zero,0x000170e8
_lw gp,0x20(sp)
lb a0,0x0(v0)
bne a0,zero,0x000171c0
_lw t9,-0x7fd8(gp)
lbu a2,0xf5(s8)
li v0,0x9
beq a2,zero,0x00016490
_sw v0,0xb4(s8)
li v0,0x1
sb zero,0xab(s8)
lw a0,0x5c(sp)
lw v1,0x0(s3)
bne a0,v1,0x000179d8
_lw ra,0x84(sp)
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
beq v0,s0,0x00016848
_li a0,0x2
bne v0,a0,0x00015eec
_lw t9,-0x7fd8(gp)
lw t9,-0x7db4(gp)
jalr t9
_lw a0,0xe4(s8)
bne v0,zero,0x00016a74
_lw gp,0x20(sp)
sw zero,0xb8(s8)
lbu v0,0xf5(s8)
bne v0,zero,0x00015f88
_li v0,0x1
lw v0,0xf8(s6)
andi v0,v0,0x200
beq v0,zero,0x00015f84
_lw t9,-0x7f44(gp)
bal 0x000150d8
_or a0,s8,zero
b 0x00015f88
_lw gp,0x20(sp)
li v0,0x1
b 0x00015ff0
_sw v0,0xb8(s8)
lw a0,0xbc(s8)
li v0,0x66
beq a0,v0,0x00017010
_lw t9,-0x7fd8(gp)
addiu s4,s8,0xa4
addiu t9,t9,0x2d9c
bal 0x00012d9c
_or a0,s4,zero
lw gp,0x20(sp)
lw t9,-0x7d58(gp)
jalr t9
_lw a0,0x24(s8)
lw gp,0x20(sp)
sw zero,0x24(s8)
lw t9,0x48(s6)
beq t9,zero,0x0001608c
_nop
lbu v0,0xa0(s8)
beq v0,zero,0x0001608c
_or a3,zero,zero
lw a0,0x4c(s6)
addiu a2,s8,0x2c
jalr t9
_or a1,s8,zero
lw gp,0x20(sp)
lw a0,0x40(s8)
li v0,0x1
bne a0,v0,0x00016900
_sb zero,0xa0(s8)
lbu v0,0xa9(s8)
bne v0,zero,0x00016904
_lw t9,-0x7fbc(gp)
lw t9,-0x7fd8(gp)
addiu t9,t9,0x2e60
bal 0x00012e60
_or a0,s4,zero
lw v0,0x18(s8)
lw gp,0x20(sp)
lw a0,0x28(s8)
lw a2,0x64(s8)
lw a1,0x44(s8)
lw t9,-0x7f40(gp)
sw zero,0x3c(s8)
sw zero,0xb4(s8)
sw zero,0x4c(s8)
sw zero,0x50(s8)
sw zero,0x74(s8)
sw zero,0x40(s8)
lw a3,0x7c(v0)
bal 0x00021604
_srl a3,a3,0x1
lw a0,0x18(s8)
lw gp,0x20(sp)
sw v0,0x44(s8)
lw v0,0x7c(a0)
srl v0,v0,0x1
b 0x00016934
_sw v0,0x60(s8)
addiu a1,sp,0x48
or t9,s1,zero
bal 0x00015a80
_or a0,s8,zero
lw gp,0x20(sp)
beq v0,zero,0x00016138
_or s4,v0,zero
lb v0,0x0(v0)
bne v0,zero,0x0001725c
_lw s7,0x48(sp)
lw v0,0xb4(s8)
bne v0,zero,0x0001699c
_nop
lbu v0,0xa9(s8)
bne v0,zero,0x00016824
_li a1,0x1
lbu v0,0xf5(s8)
bne v0,zero,0x00015f88
_li v0,0x1
lw s0,0x98(s8)
beq s0,zero,0x00015edc
_lw t9,-0x7fcc(gp)
bal 0x0002186c
_nop
lw a0,0x94(s8)
subu v0,v0,a0
slt s0,s0,v0
bne s0,zero,0x00017198
_lw gp,0x20(sp)
lbu v0,0xf5(s8)
beq v0,zero,0x00015edc
_li v0,0x1
b 0x00015f8c
_sb zero,0xab(s8)
or a1,zero,zero
or t9,s1,zero
bal 0x00015a80
_or a0,s8,zero
lw gp,0x20(sp)
beq v0,zero,0x000169e4
_or s4,v0,zero
lw t9,-0x7fd8(gp)
li a2,0x1
or a1,v0,zero
addiu t9,t9,0x5c64
bal 0x00015c64
_or a0,s8,zero
beq v0,zero,0x0001699c
_lw gp,0x20(sp)
lb v0,0x0(s4)
bne v0,zero,0x0001699c
_li a0,0x3
lw v0,0x44(s8)
lbu a2,0xf5(s8)
sw a0,0xb4(s8)
subu s4,s4,v0
b 0x00015eac
_sw s4,0x74(s8)
lw a2,-0x7fd4(gp)
li a1,0x1
lw t9,-0x7ee4(gp)
or a0,s8,zero
jalr t9
_addiu a2,a2,-0x4abc
lw gp,0x20(sp)
beq v0,zero,0x00016374
_or s7,v0,zero
lw t9,-0x7e08(gp)
jalr t9
_or a0,v0,zero
li a2,0x1
lw gp,0x20(sp)
addiu a1,v0,0x1
lw t9,-0x7f58(gp)
bal 0x000213f4
_lw a0,0x28(s8)
beq v0,zero,0x00017488
_lw gp,0x20(sp)
lw t9,-0x7e08(gp)
or a0,s7,zero
jalr t9
_sw v0,0x2c(sp)
or a1,s7,zero
lw gp,0x20(sp)
addiu a2,v0,0x1
lw t0,0x2c(sp)
lw t9,-0x7d40(gp)
jalr t9
_or a0,t0,zero
li t1,0x20
lw gp,0x20(sp)
or t0,v0,zero
li t2,0x3b
lw s7,-0x7fd8(gp)
addiu v0,s7,0x59e0
sw v0,0x2c(sp)
lw v0,-0x7fd4(gp)
addiu v0,v0,-0x47bc
b 0x000162a4
_sw v0,0x34(sp)
addiu t0,t0,0x1
lb v0,0x0(t0)
beq v0,t1,0x000162a0
_nop
beq v0,zero,0x00017668
_li a0,0x2c
beq v0,a0,0x00017668
_nop
beq v0,t2,0x00017668
_li a0,0x3d
beq v0,a0,0x00017034
_or v0,t0,zero
li a1,0x2c
b 0x000162f8
_li a2,0x3d
beq a0,a1,0x00016304
_nop
beq a0,t2,0x00016304
_nop
beq a0,a2,0x0001703c
_nop
or v0,s7,zero
lb a0,0x1(v0)
bne a0,zero,0x000162dc
_addiu s7,v0,0x1
lb a0,-0x1(s7)
beq a0,t1,0x00016328
_sltu a0,v0,t0
b 0x00017718
_lb t4,0x0(s7)
lb a0,0x0(v0)
bne a0,t1,0x00016330
_sb zero,0x1(v0)
sltu a0,v0,t0
beq a0,zero,0x00016318
_addiu v0,v0,-0x1
lb t4,0x0(s7)
li v0,0x3d
beq t4,v0,0x0001704c
_sb zero,0x0(s7)
lw a2,0x34(sp)
li a3,0x2
lw t9,0x2c(sp)
or a1,t0,zero
sw t4,0x30(sp)
jalr t9
_or a0,s8,zero
beq v0,zero,0x00016374
_lw gp,0x20(sp)
lw t4,0x30(sp)
li t1,0x20
bne t4,zero,0x000171b8
_li t2,0x3b
lw v0,0x18(s8)
lw v0,0x100(v0)
blez v0,0x0001689c
_lw a2,-0x7fd4(gp)
lw a1,0x3c(s8)
beq a1,zero,0x0001689c
_lw a0,-0x7fd4(gp)
lw t9,-0x7f60(gp)
bal 0x00021920
_addiu a0,a0,-0x5144
beq v0,zero,0x00016898
_lw gp,0x20(sp)
lw a2,-0x7fd4(gp)
li a1,0x1
lw t9,-0x7ee4(gp)
or a0,s8,zero
jalr t9
_addiu a2,a2,-0x4a84
bne v0,zero,0x00016898
_lw gp,0x20(sp)
lw a1,-0x7fd4(gp)
li v0,0x9
lw t9,-0x7fc4(gp)
lw a0,0x18(s8)
sw v0,0xb4(s8)
li v0,0x1
addiu a1,a1,-0x4a7c
bal 0x00020df0
_sb v0,0xa9(s8)
or a2,zero,zero
lw gp,0x20(sp)
li a0,0xc5
lw a1,-0x7fd4(gp)
lw t9,-0x7db0(gp)
jalr t9
_addiu a1,a1,-0x4a48
lw gp,0x20(sp)
beq v0,zero,0x000179b0
_or s7,v0,zero
lw t9,-0x7dd0(gp)
li a1,0x190
or a0,s8,zero
jalr t9
_or a2,v0,zero
or a0,s7,zero
lw gp,0x20(sp)
lw t9,-0x7d58(gp)
jalr t9
_or s7,v0,zero
li a0,0x1
beq s7,a0,0x00016474
_lw gp,0x20(sp)
lw a1,-0x7fd4(gp)
lw a0,0x18(s8)
lw t9,-0x7fc4(gp)
addiu a1,a1,-0x4c64
bal 0x00020df0
_nop
li a1,0x1
lw gp,0x20(sp)
lw t9,-0x7fbc(gp)
bal 0x00014148
_or a0,s8,zero
lw gp,0x20(sp)
lw a0,0xb4(s8)
li v0,0x13
beq a0,v0,0x00015eac
_lbu a2,0xf5(s8)
li v0,0x4
bne a2,zero,0x00015f84
_sw v0,0xb4(s8)
b 0x00015ec0
_lw a1,0xf0(s8)
or a1,zero,zero
or t9,s1,zero
bal 0x00015a80
_or a0,s8,zero
beq v0,zero,0x0001698c
_lw gp,0x20(sp)
lb a0,0x0(v0)
beq a0,zero,0x00016a5c
_li a0,0x3
lw t9,-0x7fd8(gp)
or a1,v0,zero
addiu t9,t9,0x41e8
bal 0x000141e8
_or a0,s8,zero
beq v0,zero,0x00017170
_lw gp,0x20(sp)
li v0,0x2
lbu a2,0xf5(s8)
b 0x00015eac
_sw v0,0xb4(s8)
lw a0,0x24(s8)
lw v0,0xc(a0)
beq v0,zero,0x00016a14
_lw t9,-0x7d88(gp)
jalr t9
_addiu a0,a0,0x1c
bne v0,zero,0x00017a60
_lw gp,0x20(sp)
lw a0,0x24(s8)
lw v0,0x38(a0)
lw a1,0x3c(a0)
or v0,v0,a1
bne v0,zero,0x00016ecc
_lw t9,-0x7fd8(gp)
lw v0,0xc(a0)
beq v0,zero,0x0001653c
_lw t9,-0x7cf4(gp)
jalr t9
_addiu a0,a0,0x1c
bne v0,zero,0x00017a58
_lw gp,0x20(sp)
lbu a2,0xf5(s8)
li v0,0x10
b 0x00015eac
_sw v0,0xb4(s8)
lw t9,-0x7fd8(gp)
addiu t9,t9,0x2898
bal 0x00012898
_or a0,s8,zero
or v0,zero,zero
lw gp,0x20(sp)
b 0x00015f8c
_sb zero,0xab(s8)
lw t9,-0x7fd8(gp)
addiu t9,t9,0x4320
bal 0x00014320
_or a0,s8,zero
li v0,0x13
lw a0,0xb4(s8)
beq a0,v0,0x0001699c
_lw gp,0x20(sp)
lw v0,0x24(s8)
beq v0,zero,0x000171e8
_lw a1,-0x7fd4(gp)
lw t9,-0x7f60(gp)
lw a0,0x34(s8)
bal 0x00021920
_addiu a1,a1,-0x4cc4
beq v0,zero,0x00016f48
_lw gp,0x20(sp)
or v0,zero,zero
or v1,zero,zero
sw v0,0x78(s8)
li v0,0x1
sw v1,0x7c(s8)
sb v0,0xa9(s8)
li v0,0x9
lbu a2,0xf5(s8)
beq a2,zero,0x00016490
_sw v0,0xb4(s8)
b 0x00015f88
_li v0,0x1
lw a0,0x8c(s8)
li v0,0x19
bne a0,v0,0x00015ed0
_lw t9,-0x7fd8(gp)
li v0,0x6
addiu a0,s8,0xa4
addiu t9,t9,0x2d9c
bal 0x00012d9c
_sw v0,0xb4(s8)
lw gp,0x20(sp)
b 0x00015eac
_lbu a2,0xf5(s8)
lw t1,0x64(s8)
bne t1,zero,0x00016a7c
_or v0,zero,zero
lw a0,0x78(s8)
lw a1,0x7c(s8)
or a3,a0,a1
beq a3,zero,0x000169c4
_li a3,-0x1
bne a0,a3,0x00016154
_nop
bne a1,a0,0x00016154
_nop
lw a0,0x64(s8)
bne a0,zero,0x00016154
_nop
lbu a0,0xa9(s8)
beq a0,zero,0x00016154
_nop
li a0,0x9
beq v0,zero,0x00016490
_sw a0,0xb4(s8)
b 0x00015f88
_li v0,0x1
lw a0,0x24(s8)
lw v0,0xc(a0)
beq v0,zero,0x00016a34
_lw t9,-0x7d88(gp)
jalr t9
_addiu a0,a0,0x1c
bne v0,zero,0x00017a9c
_lw gp,0x20(sp)
lw s5,0x24(s8)
lw v0,0x38(s5)
lw a0,0x3c(s5)
or a2,v0,a0
bne a2,zero,0x00016c90
_lw a1,0xc(s5)
beq a1,zero,0x0001653c
_lw t9,-0x7cf4(gp)
jalr t9
_addiu a0,s5,0x1c
beq v0,zero,0x0001653c
_lw gp,0x20(sp)
b 0x000177dc
_li a2,0xe5e
or a1,zero,zero
or t9,s1,zero
bal 0x00015a80
_or a0,s8,zero
lw gp,0x20(sp)
beq v0,zero,0x000169fc
_or s7,v0,zero
li a2,0x10
addiu t9,s4,0x5c64
or a1,v0,zero
bal 0x00015c64
_or a0,s8,zero
beq v0,zero,0x0001699c
_lw gp,0x20(sp)
lb v0,0x0(s7)
bne v0,zero,0x00015eac
_lbu a2,0xf5(s8)
li v0,0x9
beq a2,zero,0x00016490
_sw v0,0xb4(s8)
b 0x00015f88
_li v0,0x1
lw t9,-0x7fd8(gp)
addiu t9,t9,0x4320
bal 0x00014320
_or a0,s8,zero
li v0,0x13
lw a0,0xb4(s8)
beq a0,v0,0x0001699c
_lw gp,0x20(sp)
lw v0,0x24(s8)
beq v0,zero,0x00016150
_lw t9,-0x7fd8(gp)
addiu t9,t9,0x3274
bal 0x00013274
_or a0,s8,zero
beq v0,zero,0x000169a4
_lw gp,0x20(sp)
addiu a0,s8,0xa4
li v0,0xa
lw t9,-0x7fd8(gp)
addiu t9,t9,0x2ce0
bal 0x00012ce0
_sw v0,0xb4(s8)
lw gp,0x20(sp)
b 0x00016154
_lbu v0,0xf5(s8)
lw t9,-0x7fd8(gp)
addiu t9,t9,0x3274
bal 0x00013274
_or a0,s8,zero
beq v0,zero,0x000169a4
_lw gp,0x20(sp)
lbu v0,0xc0(s8)
beq v0,zero,0x0001688c
_li v0,0x12
lw a0,0x6c(s8)
lw v0,0x70(s8)
beq a0,v0,0x00016888
_li v0,0x11
lbu a2,0xf5(s8)
b 0x00015eac
_sw v0,0xb4(s8)
lw t9,-0x7fd8(gp)
addiu s4,s8,0xa4
addiu t9,t9,0x2d9c
bal 0x00012d9c
_or a0,s4,zero
or a0,s4,zero
lw v0,0x24(s8)
lw v0,0x14(v0)
beq v0,zero,0x0001721c
_lw gp,0x20(sp)
lw t9,-0x7fd8(gp)
addiu t9,t9,0x2e60
bal 0x00012e60
_nop
li v0,0x14
lw gp,0x20(sp)
or a1,s8,zero
lw a0,0x24(s8)
lw t9,-0x7f3c(gp)
bal 0x00023120
_sw v0,0xb4(s8)
li a0,0x1
beq v0,a0,0x00016c74
_lw gp,0x20(sp)
li a1,0x1
lw t9,-0x7fbc(gp)
bal 0x00014148
_or a0,s8,zero
lw gp,0x20(sp)
b 0x00015eac
_lbu a2,0xf5(s8)
sb zero,0xab(s8)
b 0x00015f8c
_li v0,0x1
b 0x00015ffc
_sw zero,0xb8(s8)
lw a0,0x64(s8)
lw v0,0x60(s8)
bne a0,v0,0x00016870
_or t9,s2,zero
bal 0x000127f0
_or a0,s8,zero
beq v0,zero,0x00017674
_lw gp,0x20(sp)
lbu v0,0xa9(s8)
beq v0,zero,0x00015fec
_nop
li v0,0x2
b 0x00015ff0
_sw v0,0xb8(s8)
li v0,0x12
lbu a2,0xf5(s8)
b 0x00015eac
_sw v0,0xb4(s8)
lw a2,-0x7fd4(gp)
or v1,zero,zero
lw t9,-0x7ee4(gp)
or v0,zero,zero
li a1,0x1
sw v1,0x7c(s8)
addiu a2,a2,-0x50c8
sw v0,0x78(s8)
jalr t9
_or a0,s8,zero
beq v0,zero,0x00017100
_lw gp,0x20(sp)
lw a1,-0x7fd4(gp)
li a3,-0x1
lw t9,-0x7f60(gp)
li a2,-0x1
or a0,v0,zero
sw a3,0x7c(s8)
addiu a1,a1,-0x4950
bal 0x00021920
_sw a2,0x78(s8)
beq v0,zero,0x00016474
_lw gp,0x20(sp)
li v0,0x1
b 0x00016474
_sb v0,0xc0(s8)
lw t9,-0x7fbc(gp)
or a1,zero,zero
bal 0x00014148
_or a0,s8,zero
lw gp,0x20(sp)
lw t9,-0x7fa0(gp)
bal 0x00021358
_lw a0,0x28(s8)
lw gp,0x20(sp)
sw zero,0x28(s8)
sw zero,0x44(s8)
sw zero,0x60(s8)
sw zero,0x64(s8)
or v1,zero,zero
lbu a2,0xf5(s8)
or v0,zero,zero
sw zero,0x2c(s8)
sw zero,0x8c(s8)
sw zero,0xbc(s8)
sw zero,0x1c(s8)
sw zero,0x20(s8)
sw v1,0x84(s8)
sw v0,0x80(s8)
sb zero,0xc0(s8)
sw v1,0xcc(s8)
sw v0,0xc8(s8)
sw v1,0xd4(s8)
sw v0,0xd0(s8)
sw zero,0x34(s8)
sw zero,0x38(s8)
sw zero,0x48(s8)
sw zero,0x68(s8)
sw zero,0x6c(s8)
b 0x00015eac
_sw zero,0x70(s8)
lw a0,0xb4(s8)
li v0,0x1
beq a0,v0,0x00016144
_nop
b 0x00015eac
_lbu a2,0xf5(s8)
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
lw a0,0x18(s8)
bal 0x00020df0
_addiu a1,a1,-0x4c34
li a1,0x1
b 0x00016824
_lw gp,0x20(sp)
lbu a0,0xc0(s8)
beq a0,zero,0x00016658
_li a3,0x9
lbu a0,0xa9(s8)
li a1,0x7
movn a1,a3,a0
b 0x0001665c
_or a0,a1,zero
lw a0,0xb4(s8)
li v0,0x2
beq a0,v0,0x00016144
_nop
b 0x00015eac
_lbu a2,0xf5(s8)
lw a0,0xb4(s8)
li v0,0x8
beq a0,v0,0x00016144
_nop
b 0x00015eac
_lbu a2,0xf5(s8)
lw v0,0x38(a0)
lw a0,0x3c(a0)
or v0,v0,a0
bne v0,zero,0x00016ecc
_lw t9,-0x7fd8(gp)
li v0,0x10
b 0x00015ec0
_sw v0,0xb4(s8)
lw v0,0x38(a0)
lw a0,0x3c(a0)
or a3,v0,a0
beq a3,zero,0x00016a28
_nop
lw a1,0x80(s8)
beq a1,v0,0x00017a18
_li v0,0xe
b 0x00015eac
_sw v0,0xb4(s8)
lw a1,0x44(s8)
lbu a2,0xf5(s8)
sw a0,0xb4(s8)
subu v0,v0,a1
b 0x00015eac
_sw v0,0x74(s8)
b 0x00015ff0
_sw s0,0xb8(s8)
lw v0,0x24(s8)
bne v0,zero,0x0001661c
_or v0,zero,zero
addiu v0,s5,-0x48a0
lw t3,0x18(s8)
lw t2,0x44(s8)
lbu a2,0xc0(s8)
sw v0,0x3c(sp)
lw v0,-0x7fd4(gp)
sw v0,0x40(sp)
lw a1,0x78(s8)
beq a2,zero,0x00016abc
_lw t0,0x7c(s8)
li v0,-0x1
beq a1,v0,0x00016fc0
_nop
addiu a0,t0,-0x1
subu v0,zero,a1
sltu a2,a0,t0
bne v0,a2,0x00016ad8
_sltiu a0,a0,-0x2
beq a0,zero,0x00016f9c
_or s7,t1,zero
bne a1,zero,0x00016fb4
_sltu v0,t0,t1
beq v0,zero,0x00016fb4
_nop
or s7,t0,zero
sw zero,0x2c(sp)
li a0,0x1
lw t4,0x3c(s8)
addiu v0,s8,0x2c
lw a3,0x34(s8)
lw a2,0x38(s8)
sb a0,0xa0(s8)
sw s7,0x4c(sp)
lw a0,0x4(t3)
sw v0,0x1c(sp)
addiu v0,sp,0x4c
sw t2,0x14(sp)
sw v0,0x18(sp)
sw t4,0x10(sp)
sw t1,0x38(sp)
sw t2,0x34(sp)
sw t3,0x30(sp)
lw t9,0x0(t3)
jalr t9
_or a1,s8,zero
lw gp,0x20(sp)
lw t3,0x30(sp)
lw t2,0x34(sp)
beq v0,zero,0x00017720
_lw t1,0x38(sp)
lw v0,0x4c(sp)
sltu a0,s7,v0
beq a0,zero,0x00016ba0
_lw a3,0x3c(sp)
lw v0,0x40(sp)
sw t1,0x38(sp)
addiu a1,v0,-0x51c8
lw v0,-0x7fc8(gp)
sw t2,0x34(sp)
sw t3,0x30(sp)
lw a0,0x0(v0)
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_li a2,0x9f3
lw gp,0x20(sp)
lw v0,0x4c(sp)
lw t1,0x38(sp)
lw t2,0x34(sp)
lw t3,0x30(sp)
beq v0,zero,0x00016bc8
_nop
lw a0,0xf8(t3)
andi a0,a0,0x8
beq a0,zero,0x00016bc4
_nop
lbu a0,0xf5(s8)
beq a0,zero,0x00016f14
_lw t9,-0x7fc4(gp)
sw zero,0x2c(sp)
lbu a2,0xc0(s8)
beq a2,zero,0x00016bf0
_subu a3,s7,v0
lw a0,0xd4(s8)
lw t4,0xd0(s8)
addu a1,a0,a3
sltu a0,a1,a0
sw a1,0xd4(s8)
addu a0,a0,t4
sw a0,0xd0(s8)
lw a0,0x78(s8)
subu t0,t1,s7
li t4,-0x1
lw a1,0x7c(s8)
addu t2,t2,a3
beq a0,t4,0x00016fa4
_addu t1,v0,t0
subu v0,a1,a3
sltu a1,a1,v0
sw v0,0x7c(s8)
subu a0,a0,a1
sw a0,0x78(s8)
lw v0,0x2c(sp)
bne v0,zero,0x00016aa4
_nop
beq t1,zero,0x00016c54
_nop
lw t9,-0x7d34(gp)
or a2,t1,zero
lw a0,0x44(s8)
or a1,t2,zero
jalr t9
_sw t1,0x2c(sp)
lw gp,0x20(sp)
lw t1,0x2c(sp)
sw t1,0x64(s8)
lbu a2,0xf5(s8)
li a0,0x13
lw a1,0xb4(s8)
bne a1,a0,0x0001661c
_or v0,a2,zero
b 0x00015eac
_nop
lw t9,-0x7d58(gp)
lw a0,0x24(s8)
jalr t9
_sw zero,0x24(s8)
lw gp,0x20(sp)
b 0x00015eac
_lbu a2,0xf5(s8)
lw a2,0x80(s8)
bne v0,a2,0x00016ca4
_lw a3,0x84(s8)
beq a0,a3,0x000166a4
_nop
beq a1,zero,0x00016e40
_li v0,0xe
lw s4,0x68(s8)
beq s4,zero,0x000174fc
_nop
lw a1,0x40(s5)
addiu s4,s4,-0xc
lw v0,0x48(s8)
lw t0,0x44(s5)
sltu a0,a2,a1
bne a0,zero,0x000176f4
_addiu v0,v0,0xa
bne a1,a2,0x00016ce4
_sltu a0,a3,t0
bne a0,zero,0x000176f4
_nop
lw a0,0x50(s5)
addu t1,a0,t0
sltu a0,t1,a0
addu a0,a0,a1
sltu a1,a2,a0
bne a1,zero,0x00016d10
_nop
bne a0,a2,0x000176f4
_sltu a0,a3,t1
beq a0,zero,0x000176f4
_nop
subu t1,t1,a3
lw a1,0x4(s5)
subu a3,a3,t0
lw t9,-0x7d40(gp)
sltu a0,s4,t1
movz s4,t1,a0
addu a1,a1,a3
or a0,v0,zero
jalr t9
_or a2,s4,zero
lw gp,0x20(sp)
li v0,-0x2
beq s4,v0,0x00017918
_li v0,-0x1
beq s4,v0,0x00017910
_nop
lw v0,0x38(s5)
lw a0,0x3c(s5)
or v0,v0,a0
beq v0,zero,0x00017910
_nop
beq s4,zero,0x000177bc
_lui a0,0x100
lw t9,-0x7cfc(gp)
lui v0,0xff
slt a0,s4,a0
ori v0,v0,0xffff
movz s4,v0,a0
addiu s5,sp,0x50
li a3,0xa
lw v0,-0x7fd4(gp)
li a2,0x1
li a1,0xa
sw s4,0x14(sp)
or a0,s5,zero
addiu v0,v0,-0x47c0
jalr t9
_sw v0,0x10(sp)
li v1,0xa
lw gp,0x20(sp)
or a2,v0,zero
lw a0,0x48(s8)
subu s7,v1,v0
or a1,s5,zero
lw t9,-0x7d40(gp)
jalr t9
_addu a0,a0,s7
addiu a0,s4,0xa
lw v0,0x48(s8)
li v1,0xa
lw gp,0x20(sp)
sra a1,s4,0x1f
addiu a2,s4,0xc
addu v0,v0,a0
li a0,0xd
sb v1,0x1(v0)
sb a0,0x0(v0)
lw v0,0x84(s8)
lw a0,0x80(s8)
sw s7,0x6c(s8)
addu s4,v0,s4
sw a2,0x70(s8)
addu a0,a0,a1
sltu v0,s4,v0
sw s4,0x84(s8)
addu v0,v0,a0
sw v0,0x80(s8)
lw a0,0x24(s8)
lw v0,0xc(a0)
beq v0,zero,0x00016e3c
_lw t9,-0x7cf4(gp)
jalr t9
_addiu a0,a0,0x1c
bne v0,zero,0x00017a38
_lw gp,0x20(sp)
li v0,0xe
lbu a2,0xf5(s8)
b 0x00015eac
_sw v0,0xb4(s8)
lw v0,0x64(s8)
lw a0,0x60(s8)
bne v0,a0,0x00016e8c
_or t9,s2,zero
bal 0x000127f0
_or a0,s8,zero
li a0,0x1
beq v0,a0,0x00016e84
_lw gp,0x20(sp)
lw v0,0x18(s8)
lw v0,0xf8(v0)
andi v0,v0,0x8
bne v0,zero,0x00016f84
_addiu a2,s5,-0x47b8
lw v0,0x64(s8)
lw a0,0x60(s8)
sltu v0,v0,a0
bne v0,zero,0x00016870
_li v0,0x2
b 0x00015ff0
_sw v0,0xb8(s8)
lbu v0,0xa9(s8)
beq v0,zero,0x00015fec
_lw t9,-0x7fbc(gp)
li a1,0x1
bal 0x00014148
_or a0,s8,zero
b 0x00015f08
_lw gp,0x20(sp)
li v0,0x3
b 0x00015ff0
_sw v0,0xb8(s8)
addiu t9,t9,0x4404
bal 0x00014404
_or a0,s8,zero
li a0,0x1
bne v0,a0,0x00016150
_lw gp,0x20(sp)
lw a0,0x24(s8)
lw v0,0xc(a0)
beq v0,zero,0x00016f04
_lw t9,-0x7cf4(gp)
jalr t9
_addiu a0,a0,0x1c
bne v0,zero,0x00017aa4
_lw gp,0x20(sp)
li a0,0xc
lbu v0,0xf5(s8)
b 0x00016154
_sw a0,0xb4(s8)
or a0,t3,zero
sw t1,0x38(sp)
or a1,s2,zero
sw t2,0x34(sp)
bal 0x00020df0
_sw t3,0x30(sp)
lw gp,0x20(sp)
lw v0,0x4c(sp)
lw t3,0x30(sp)
lw t2,0x34(sp)
lw t1,0x38(sp)
b 0x00016bc8
_sw zero,0x2c(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7f60(gp)
lw a0,0x34(s8)
bal 0x00021920
_addiu a1,a1,-0x4cbc
bne v0,zero,0x000165b0
_lw gp,0x20(sp)
lw a0,0x7c(s8)
li a1,0x9
lw v0,0x78(s8)
or v0,v0,a0
li a0,0x6
movz a0,a1,v0
b 0x000165cc
_or v0,a0,zero
li a1,0x1f4
or t9,s1,zero
bal 0x00015834
_or a0,s8,zero
b 0x00015f08
_lw gp,0x20(sp)
b 0x00016af0
_sw zero,0x2c(sp)
bne a1,a0,0x00016c0c
_lw v0,0x2c(sp)
b 0x00016c24
_nop
sw zero,0x2c(sp)
b 0x00016af0
_or s7,t1,zero
bne t0,a1,0x00016ac0
_addiu a0,t0,-0x1
lw a1,0xd0(s8)
lw v0,0xc8(s8)
lw a0,0xd4(s8)
beq a1,v0,0x00017424
_lw a2,0xcc(s8)
sltu a3,a1,v0
beq a3,zero,0x00017a40
_subu t0,a2,a0
subu v0,v0,a1
sltu a2,a2,t0
bne v0,a2,0x00016f9c
_or s7,t1,zero
sltu v0,t1,t0
bne v0,zero,0x00016f9c
_sltu v0,t0,t1
or s7,t0,zero
b 0x00016af0
_sw v0,0x2c(sp)
lw t9,-0x7d58(gp)
li v0,0x4
lw a0,0x24(s8)
jalr t9
_sw v0,0xb4(s8)
lw gp,0x20(sp)
lbu a2,0xf5(s8)
b 0x00015eac
_sw zero,0x24(s8)
addiu v0,t0,-0x1
or s7,t0,zero
lb a0,-0x1(s7)
beq a0,t1,0x00016328
_sltu a0,v0,t0
sb zero,0x0(s7)
lb t5,0x1(s7)
beq t5,zero,0x00017960
_addiu a2,s7,0x1
or a1,zero,zero
li t4,0x2c
li a3,0x22
or a0,a2,zero
or v0,t5,zero
bne a1,zero,0x00017084
_nop
beq v0,t2,0x00017248
_nop
beq v0,t4,0x00017248
_nop
bne v0,a3,0x00017090
_nop
xori a1,a1,0x1
addiu a0,a0,0x1
lb v0,0x0(a0)
bne v0,zero,0x0001706c
_nop
sw zero,0x30(sp)
li v0,0x22
beq t5,v0,0x000174c4
_lw t9,-0x7e08(gp)
lw t9,0x2c(sp)
li a3,0x2
or a1,t0,zero
jalr t9
_or a0,s8,zero
beq v0,zero,0x00016374
_lw gp,0x20(sp)
lw t0,0x30(sp)
li t2,0x3b
li t1,0x20
bne t0,zero,0x000162a4
_nop
b 0x00016378
_lw v0,0x18(s8)
lw a0,0xb4(s8)
li v0,0x7
beq a0,v0,0x00016144
_nop
b 0x00015eac
_lbu a2,0xf5(s8)
lw a2,-0x7fd4(gp)
li a1,0x1
lw t9,-0x7ee4(gp)
or a0,s8,zero
jalr t9
_addiu a2,a2,-0x50a8
lw gp,0x20(sp)
beq v0,zero,0x00016474
_or s7,v0,zero
lw t9,-0x7f38(gp)
addiu a1,s8,0x78
bal 0x00021b88
_or a0,v0,zero
addu v0,s7,v0
beq s7,v0,0x0001714c
_lw gp,0x20(sp)
lb v0,0x0(v0)
beq v0,zero,0x00016474
_nop
lw a1,-0x7fd4(gp)
or v1,zero,zero
or v0,zero,zero
lw a0,0x18(s8)
lw t9,-0x7fc4(gp)
sw v1,0x7c(s8)
addiu a1,a1,-0x4948
b 0x00016454
_sw v0,0x78(s8)
lw a2,-0x7fd4(gp)
li a1,0x190
lw t9,-0x7fd8(gp)
or a0,s8,zero
addiu t9,t9,0x5834
bal 0x00015834
_addiu a2,a2,-0x4b34
lw gp,0x20(sp)
b 0x00016154
_lbu v0,0xf5(s8)
lw t9,-0x7fbc(gp)
li a1,0x2
bal 0x00014148
_or a0,s8,zero
li v0,0x1
lw gp,0x20(sp)
b 0x00015f8c
_sb zero,0xab(s8)
b 0x000170d8
_addiu t0,s7,0x1
or a1,v0,zero
addiu t9,t9,0x41e8
bal 0x000141e8
_or a0,s8,zero
beq v0,zero,0x00017170
_lw gp,0x20(sp)
li v0,0x8
lbu a2,0xf5(s8)
b 0x00015eac
_sw v0,0xb4(s8)
lw a0,0x3c(s8)
beq a0,zero,0x00016f64
_lw t9,-0x7f60(gp)
lw a1,-0x7fd4(gp)
bal 0x00021920
_addiu a1,a1,-0x5144
bne v0,zero,0x00017768
_lw gp,0x20(sp)
lw v0,0x24(s8)
beq v0,zero,0x00016f64
_nop
b 0x00016598
_lw a1,-0x7fd4(gp)
lw t9,-0x7fd8(gp)
addiu t9,t9,0x2ce0
bal 0x00012ce0
_nop
lbu v0,0xc0(s8)
lw gp,0x20(sp)
beq v0,zero,0x0001765c
_lbu a2,0xf5(s8)
li v0,0xf
b 0x00015eac
_sw v0,0xb4(s8)
addiu v0,a0,0x1
sb zero,0x0(a0)
lb t5,0x1(s7)
b 0x000170a4
_sw v0,0x30(sp)
li a1,0x20
lw t9,-0x7e30(gp)
or a0,s4,zero
jalr t9
_or a2,s7,zero
beq v0,zero,0x00016820
_lw gp,0x20(sp)
lw v1,0x18(s8)
addiu s5,v0,0x1
sb zero,0x0(v0)
li a1,0x20
sw s4,0x34(s8)
lb v0,0x1(v0)
beq v0,a1,0x000172ac
_subu a0,s5,s4
b 0x000172bc
_nop
lb v0,0x0(s5)
bne v0,a1,0x000172bc
_subu a0,s5,s4
sltu v0,a0,s7
bne v0,zero,0x000172a0
_addiu s5,s5,0x1
addiu s5,s5,-0x1
beq s7,a0,0x00017734
_addiu v0,s7,-0x1
li a1,0x20
addu v0,s4,v0
lb a2,0x0(v0)
bne a2,a1,0x00017300
_sltu a1,s5,v0
beq a1,zero,0x00017754
_nop
b 0x000172f0
_li a2,0x20
beq v0,s5,0x00017754
_nop
addiu v0,v0,-0x1
lb a1,0x0(v0)
beq a1,a2,0x000172e8
_nop
sltu a1,s5,v0
bne a1,zero,0x0001731c
_li a3,0x20
b 0x00017758
_lw v0,-0x7fd4(gp)
beq a1,s5,0x00017754
_or v0,a1,zero
lb a2,-0x1(v0)
bne a2,a3,0x00017314
_addiu a1,v0,-0x1
sltu a2,s5,a1
beq a2,zero,0x00017754
_nop
subu a2,a1,s5
sb zero,0x0(a1)
sw v0,0x3c(s8)
lw v0,0x100(v1)
blez v0,0x00017368
_lw t9,-0x7e30(gp)
li a1,0x20
sw v1,0x2c(sp)
jalr t9
_or a0,s5,zero
lw gp,0x20(sp)
bne v0,zero,0x00016820
_lw v1,0x2c(sp)
lw t9,0x60(v1)
or a2,s5,zero
lw a0,0x64(v1)
or a1,s8,zero
jalr t9
_sw v1,0x2c(sp)
lw gp,0x20(sp)
lw t9,-0x7e08(gp)
jalr t9
_or a0,s5,zero
li a1,0x3f
lw gp,0x20(sp)
or a0,s5,zero
lw t9,-0x7e30(gp)
jalr t9
_or a2,v0,zero
lw v1,0x2c(sp)
or s4,v0,zero
lw a0,0x58(v1)
beq a0,zero,0x000173e0
_lw gp,0x20(sp)
li v0,0x1
or a2,s8,zero
sb v0,0xa0(s8)
or a1,s5,zero
lw t9,0x58(v1)
jalr t9
_lw a0,0x5c(v1)
lw gp,0x20(sp)
sw v0,0x2c(s8)
beq s4,zero,0x00017410
_lw s7,-0x7fd8(gp)
addiu v0,sp,0x4c
lw t9,-0x7f34(gp)
addiu a2,s4,0x1
li a1,0x8
sb zero,0x0(s4)
addiu a3,s7,0x59e0
sw v0,0x10(sp)
bal 0x00020fd0
_or a0,s8,zero
lw gp,0x20(sp)
li v0,0x1
lbu a2,0xf5(s8)
sw s5,0x38(s8)
b 0x00015eac
_sw v0,0xb4(s8)
bne a0,a2,0x00016fe0
_sltu a3,a1,v0
or v0,a1,a0
beq v0,zero,0x000175d8
_sltiu v0,t1,0x2
bne v0,zero,0x000175d8
_li a0,0xd
lb v0,0x0(t2)
beq v0,a0,0x00017598
_li a0,0xa
beq v0,a0,0x00017598
_nop
lw a1,-0x7fd4(gp)
lw a0,0x18(s8)
lw t9,-0x7fc4(gp)
addiu a1,a1,-0x48f0
bal 0x00020df0
_nop
li a1,0x1
lw gp,0x20(sp)
lw t9,-0x7fbc(gp)
bal 0x00014148
_or a0,s8,zero
b 0x00016c58
_lw gp,0x20(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7fc4(gp)
lw a0,0x18(s8)
bal 0x00020df0
_addiu a1,a1,-0x4ab4
li a1,0x1af
lw gp,0x20(sp)
or a0,s8,zero
lw a2,-0x7fd4(gp)
lw t9,-0x7fd8(gp)
addiu t9,t9,0x5834
bal 0x00015834
_addiu a2,a2,-0x4bc4
b 0x00016374
_lw gp,0x20(sp)
or a0,a2,zero
sw t5,0x40(sp)
sw t0,0x3c(sp)
jalr t9
_sw a2,0x38(sp)
addu v0,s7,v0
lw t5,0x40(sp)
lw a2,0x38(sp)
lb a0,0x0(v0)
bne a0,t5,0x000170b0
_lw t0,0x3c(sp)
addiu a2,s7,0x2
b 0x000170b0
_sb zero,0x0(v0)
lw a1,0x18(s8)
lui v0,0x200
addiu a0,v0,0x17
addiu v0,v0,0x16
lw a1,0x7c(a1)
sltu a0,a1,a0
movn v0,a1,a0
b 0x00017540
_or a0,v0,zero
lw t9,-0x7f58(gp)
or a2,zero,zero
lw a0,0x28(s8)
bal 0x000213f4
_or a1,s4,zero
or a0,s4,zero
bne v0,zero,0x000176a0
_lw gp,0x20(sp)
sltiu v0,a0,0x100
beq v0,zero,0x00017520
_srl s4,a0,0x1
lw t9,-0x7cf4(gp)
jalr t9
_addiu a0,s5,0x1c
li a2,0x48e
bne v0,zero,0x000177dc
_lw gp,0x20(sp)
lw a1,-0x7fd4(gp)
lw a0,0x18(s8)
lw t9,-0x7fc4(gp)
addiu a1,a1,-0x4820
bal 0x00020df0
_nop
li a1,0x1
lw gp,0x20(sp)
lw t9,-0x7fbc(gp)
bal 0x00014148
_or a0,s8,zero
b 0x00016150
_lw gp,0x20(sp)
lb v0,0x1(t2)
li a0,0xd
beq v0,a0,0x000179c4
_li a1,0x1
li a0,0x2
xori v0,v0,0xa
movn a0,a1,v0
or v0,a0,zero
or v1,zero,zero
subu t1,t1,v0
addu t2,t2,v0
sw v1,0xd4(s8)
or v0,zero,zero
sw v1,0xcc(s8)
sw v0,0xd0(s8)
sw v0,0xc8(s8)
beq t1,zero,0x00016c54
_nop
lb t4,0x0(t2)
li v0,0xd
beq t4,v0,0x000179e4
_li v0,0xa
beq t4,v0,0x000179e4
_li v0,0x3b
beq t4,v0,0x000179fc
_li a1,0x3b
li s7,0x1
li a0,0xd
li a2,0xa
li t0,0x10
beq s7,t1,0x000178dc
_addiu a3,s7,0x1
addu v0,t2,a3
lb v0,-0x1(v0)
beq v0,a0,0x00017800
_nop
beq v0,a2,0x00017800
_nop
beq v0,a1,0x00017968
_sltu v0,s7,t1
bne a3,t0,0x00017610
_or s7,a3,zero
lb v0,0x10(t2)
beq v0,a1,0x00017a88
_sltiu v0,t1,0x12
bne v0,zero,0x00016c2c
_lw a1,-0x7fd4(gp)
b 0x0001745c
_lw a0,0x18(s8)
li v0,0xd
b 0x00015eac
_sw v0,0xb4(s8)
addiu v0,t0,-0x1
b 0x00016304
_or s7,t0,zero
lw a1,0x38(s8)
li a0,0x1af
li v0,0x19e
addiu a2,s4,-0x4bc4
movn v0,a0,a1
or t9,s1,zero
or a0,s8,zero
bal 0x00015834
_or a1,v0,zero
b 0x00015f08
_lw gp,0x20(sp)
sw s4,0x68(s8)
sw v0,0x48(s8)
lw a0,0x38(s5)
lw a1,0x3c(s5)
or a0,a0,a1
bne a0,zero,0x00017a2c
_nop
li a0,0x30
sb a0,0x0(v0)
li a0,0xd
sb a0,0x1(v0)
li a0,0xa
sb a0,0x2(v0)
li v0,0x3
sw zero,0x6c(s8)
sw v0,0x70(s8)
lw a1,0x84(s8)
lw a0,0x80(s8)
sw a1,0x3c(s5)
b 0x00016e1c
_sw a0,0x38(s5)
lw a0,0x8(s5)
sw s4,0x14(sp)
sw v0,0x10(sp)
lw t9,0xc(s5)
jalr t9
_nop
lw gp,0x20(sp)
b 0x00016d3c
_or s4,v0,zero
b 0x00016340
_sb zero,0x0(s7)
lw a1,-0x7fd4(gp)
lw a0,0x18(s8)
lw t9,-0x7fc4(gp)
b 0x00017464
_addiu a1,a1,-0x4fc0
lw s5,-0x7fd4(gp)
addiu s5,s5,-0x47bc
sw s5,0x3c(s8)
lw v0,0x58(v1)
beq v0,zero,0x00017410
_or s4,zero,zero
b 0x000173c0
_li v0,0x1
lw v0,-0x7fd4(gp)
subu a2,s7,a0
addiu v0,v0,-0x47bc
b 0x00017340
_sw v0,0x3c(s8)
lw a2,-0x7fd4(gp)
li a1,0x1
lw t9,-0x7ee4(gp)
or a0,s8,zero
jalr t9
_addiu a2,a2,-0x4908
beq v0,zero,0x00017208
_lw gp,0x20(sp)
lw a1,-0x7fd4(gp)
or a0,v0,zero
lw t9,-0x7f60(gp)
bal 0x00021920
_addiu a1,a1,-0x4900
beq v0,zero,0x00017208
_lw gp,0x20(sp)
lw v0,0x8c(s8)
sltiu v0,v0,0x19
beq v0,zero,0x00017208
_addiu a0,s8,0xa4
b 0x00016764
_li v0,0x5
lw t9,-0x7cf4(gp)
li v0,0xf
addiu a0,s5,0x1c
jalr t9
_sw v0,0xb4(s8)
li a2,0x4d4
beq v0,zero,0x00016150
_lw gp,0x20(sp)
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x51b8
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x51c8
or t0,s7,zero
sltu v0,a3,t1
beq v0,zero,0x000178e4
_li v0,0x1
li v0,0x10
beq t0,v0,0x00017458
_lw a1,-0x7fd4(gp)
lw t9,-0x7f30(gp)
addiu a2,s8,0xc8
or a1,t0,zero
sw t0,0x30(sp)
sw t1,0x44(sp)
or a0,t2,zero
sw a3,0x38(sp)
sw t3,0x34(sp)
bal 0x00022050
_sw t2,0x2c(sp)
lw t0,0x30(sp)
bne v0,t0,0x00017454
_lw gp,0x20(sp)
lw a3,0x38(sp)
lw t1,0x44(sp)
lw t2,0x2c(sp)
lw t3,0x34(sp)
sltu v0,a3,t1
beq v0,zero,0x00017884
_addu a0,t2,a3
lb v0,0x0(a0)
li a1,0xd
beq v0,a1,0x00017904
_li a1,0xa
beq v0,a1,0x00017904
_nop
lw v0,0xc8(s8)
subu t1,t1,a3
lw a1,0xcc(s8)
or a3,zero,zero
or a2,zero,zero
sw a3,0xd4(s8)
sw a2,0xd0(s8)
beq t1,zero,0x000178c4
_or v0,v0,a1
bne v0,zero,0x00017954
_or v1,zero,zero
or v0,zero,zero
sw v1,0x7c(s8)
or t2,a0,zero
b 0x00016c2c
_sw v0,0x78(s8)
bne v0,zero,0x00016c54
_or v1,zero,zero
or v0,zero,zero
sw v1,0x7c(s8)
b 0x00016c54
_sw v0,0x78(s8)
or t0,s7,zero
li v0,0x1
bne s7,v0,0x00016c2c
_li v0,0x2
bne t1,v0,0x00016c2c
_li v0,0x30
bne t4,v0,0x00016c2c
_li a3,0x2
b 0x00017814
_li v0,0x10
addiu a3,s7,0x2
b 0x00017884
_addu a0,t2,a3
b 0x000176bc
_lw v0,0x48(s8)
lw a2,0x80(s8)
addiu a0,s5,0x1c
lw a3,0x84(s8)
lw t9,-0x7cf4(gp)
sw a2,0x38(s5)
jalr t9
_sw a3,0x3c(s5)
li a2,0x4be
bne v0,zero,0x000177dc
_lw gp,0x20(sp)
lw a1,-0x7fd4(gp)
lw a0,0x18(s8)
lw t9,-0x7fc4(gp)
b 0x00017574
_addiu a1,a1,-0x47fc
lbu a2,0xc0(s8)
b 0x00016aa4
_or t2,a0,zero
b 0x000170b0
_sw zero,0x30(sp)
beq v0,zero,0x00017800
_nop
li a2,0xd
li t0,0xa
b 0x00017988
_or a0,s7,zero
beq a1,t0,0x000179cc
_or a0,v0,zero
addiu v0,a0,0x1
beq v0,t1,0x00017a0c
_addiu a3,a0,0x2
addu a0,t2,v0
lb a1,0x0(a0)
bne a1,a2,0x00017980
_nop
or t0,s7,zero
b 0x00017804
_or s7,v0,zero
lw a1,-0x7fd4(gp)
lw a0,0x18(s8)
lw t9,-0x7fc4(gp)
b 0x00016454
_addiu a1,a1,-0x4980
b 0x000175b8
_li v0,0x2
or t0,s7,zero
b 0x00017804
_or s7,v0,zero
lw t9,-0x7d78(gp)
jalr t9
_nop
sltiu v0,t1,0x2
bne v0,zero,0x00017a04
_or t0,zero,zero
li a3,0x1
b 0x0001781c
_or s7,zero,zero
b 0x00017970
_or s7,zero,zero
b 0x00016c34
_li t1,0x1
or t0,s7,zero
b 0x00017804
_or s7,t1,zero
lw v0,0x84(s8)
beq v0,a0,0x00016540
_li v0,0xe
b 0x00015eac
_sw v0,0xb4(s8)
lw a2,0x80(s8)
b 0x00016cb8
_lw a3,0x84(s8)
b 0x000177dc
_li a2,0xe67
bne v0,a1,0x000175d8
_sltu a3,a0,a2
bne a3,zero,0x00016fe8
_subu t0,a2,a0
b 0x000175d8
_nop
b 0x000177dc
_li a2,0xe3c
li a2,0xe36
lw v0,-0x7fc8(gp)
lw a3,-0x7fd4(gp)
lw a1,-0x7fd4(gp)
lw a0,0x0(v0)
addiu a3,a3,-0x51e0
lw v0,-0x7fc0(gp)
lw t9,0x0(v0)
jalr t9
_addiu a1,a1,-0x51c8
sltiu v0,t1,0x11
beq v0,zero,0x00017974
_li a2,0xd
b 0x00016c2c
_nop
b 0x00017a64
_li a2,0xe56
b 0x000177dc
_li a2,0xe45
(translation_unit "undefined4 FUN_00015e38(int param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  undefined *puVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint in_t1;\n  uint uVar13;\n  char *in_t2;\n  char *pcVar14;\n  undefined4 *in_t3;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  int iVar18;\n  uint uVar19;\n  undefined4 local_4c;\n  int local_48;\n  uint local_3c [4];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar16 = PTR_DAT_0003f05c + -0x45c0;\n  iVar18 = *(int *)(param_1 + 0x18);\n  cVar10 = *(char *)(param_1 + 0xf5);\n  puVar17 = PTR_DAT_0003f05c + -0x4884;\n  *(undefined1 *)(param_1 + 0xab) = 1;\nLAB_00015eac:\n  uVar4 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  iVar8 = *(int *)(param_1 + 0xf0);\nLAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }\n  iVar8 = *(int *)(param_1 + 0x98);\n  if (iVar8 != 0) goto LAB_00016168;\nLAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);\n  puVar16 = (undefined *)0x1;\n  if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }\n  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }\nLAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );\n}\n\n" (function_definition "undefined4 FUN_00015e38(int param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  undefined *puVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint in_t1;\n  uint uVar13;\n  char *in_t2;\n  char *pcVar14;\n  undefined4 *in_t3;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  int iVar18;\n  uint uVar19;\n  undefined4 local_4c;\n  int local_48;\n  uint local_3c [4];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar16 = PTR_DAT_0003f05c + -0x45c0;\n  iVar18 = *(int *)(param_1 + 0x18);\n  cVar10 = *(char *)(param_1 + 0xf5);\n  puVar17 = PTR_DAT_0003f05c + -0x4884;\n  *(undefined1 *)(param_1 + 0xab) = 1;\nLAB_00015eac:\n  uVar4 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  iVar8 = *(int *)(param_1 + 0xf0);\nLAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }\n  iVar8 = *(int *)(param_1 + 0x98);\n  if (iVar8 != 0) goto LAB_00016168;\nLAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);\n  puVar16 = (undefined *)0x1;\n  if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }\n  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }\nLAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );\n}" type_identifier (function_declarator "FUN_00015e38(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  undefined *puVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint in_t1;\n  uint uVar13;\n  char *in_t2;\n  char *pcVar14;\n  undefined4 *in_t3;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  int iVar18;\n  uint uVar19;\n  undefined4 local_4c;\n  int local_48;\n  uint local_3c [4];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar16 = PTR_DAT_0003f05c + -0x45c0;\n  iVar18 = *(int *)(param_1 + 0x18);\n  cVar10 = *(char *)(param_1 + 0xf5);\n  puVar17 = PTR_DAT_0003f05c + -0x4884;\n  *(undefined1 *)(param_1 + 0xab) = 1;\nLAB_00015eac:\n  uVar4 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  iVar8 = *(int *)(param_1 + 0xf0);\nLAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }\n  iVar8 = *(int *)(param_1 + 0x98);\n  if (iVar8 != 0) goto LAB_00016168;\nLAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);\n  puVar16 = (undefined *)0x1;\n  if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }\n  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }\nLAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint in_t1;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char *in_t2;" primitive_type (pointer_declarator "*in_t2" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "undefined4 *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_3c [4];" type_identifier (array_declarator "local_3c [4]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar3 = 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 "puVar16 = PTR_DAT_0003f05c + -0x45c0;" (assignment_expression "puVar16 = PTR_DAT_0003f05c + -0x45c0" identifier = (binary_expression "PTR_DAT_0003f05c + -0x45c0" identifier + number_literal)) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "cVar10 = *(char *)(param_1 + 0xf5);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xf5)" identifier = (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = PTR_DAT_0003f05c + -0x4884;" (assignment_expression "puVar17 = PTR_DAT_0003f05c + -0x4884" identifier = (binary_expression "PTR_DAT_0003f05c + -0x4884" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" * (cast_expression "(undefined1 *)(param_1 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xab)" ( (binary_expression "param_1 + 0xab" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00015eac:\n  uVar4 = 1;" statement_identifier : (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;)) (if_statement "if (cVar10 != '\0') goto LAB_00015f88;" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" identifier = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" statement_identifier : (if_statement "if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" if (parenthesized_expression "((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15))" ( (binary_expression "(1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)" (parenthesized_expression "(1 < iVar8 - 1U)" ( (binary_expression "1 < iVar8 - 1U" number_literal < (binary_expression "iVar8 - 1U" identifier - number_literal)) )) && (parenthesized_expression "(*(uint *)(param_1 + 0xb4) < 0x15)" ( (binary_expression "*(uint *)(param_1 + 0xb4) < 0x15" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" { comment comment (expression_statement "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();" (assignment_expression "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" ( (binary_expression "&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" * (cast_expression "(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" ( (binary_expression "puVar16 + *(uint *)(param_1 + 0xb4) * 4" identifier + (binary_expression "*(uint *)(param_1 + 0xb4) * 4" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "iVar8 = *(int *)(param_1 + 0x98);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x98)" identifier = (pointer_expression "*(int *)(param_1 + 0x98)" * (cast_expression "(int *)(param_1 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) goto LAB_00016168;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (labeled_statement "LAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);" statement_identifier : (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" identifier = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;)) (expression_statement "puVar16 = (undefined *)0x1;" (assignment_expression "puVar16 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }" { (labeled_statement "LAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;" statement_identifier : (expression_statement "puVar17 = PTR_0003f058 + 0x27f0;" (assignment_expression "puVar17 = PTR_0003f058 + 0x27f0" identifier = (binary_expression "PTR_0003f058 + 0x27f0" identifier + number_literal)) ;)) (expression_statement "puVar16 = PTR_DAT_0003f05c + -0x4610;" (assignment_expression "puVar16 = PTR_DAT_0003f05c + -0x4610" identifier = (binary_expression "PTR_DAT_0003f05c + -0x4610" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }" if (parenthesized_expression "(*(uint *)(param_1 + 0xb4) < 0x14)" ( (binary_expression "*(uint *)(param_1 + 0xb4) < 0x14" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }" { comment comment (expression_statement "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();" (assignment_expression "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" ( (binary_expression "&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" * (cast_expression "(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" ( (binary_expression "puVar16 + *(uint *)(param_1 + 0xb4) * 4" identifier + (binary_expression "*(uint *)(param_1 + 0xb4) * 4" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar4;" return identifier ;) })) (labeled_statement "switchD_00015f24_caseD_3:\n    uVar4 = 1;" statement_identifier : (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;)) (if_statement "if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;" if (parenthesized_expression "(*(char *)(param_1 + 0xf5) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xf5) != '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" else (compound_statement "{\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" { (if_statement "if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }" { (if_statement "if (iVar8 != 2) goto LAB_00015eec;" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00015eec;" goto statement_identifier ;)) (expression_statement "iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));" (assignment_expression "iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4))" identifier = (call_expression "(*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4))" (parenthesized_expression "(*(code *)PTR_gnutls_record_get_direction_0003f27c)" ( (pointer_expression "*(code *)PTR_gnutls_record_get_direction_0003f27c" * (cast_expression "(code *)PTR_gnutls_record_get_direction_0003f27c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0xe4))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" * (cast_expression "(undefined4 *)(param_1 + 0xb8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" else (compound_statement "{\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" * (cast_expression "(undefined4 *)(param_1 + 0xb8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto switchD_00015f24_caseD_3;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" * (cast_expression "(undefined4 *)(param_1 + 0xb8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) )))) = number_literal) ;) }))) (if_statement "if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }" if (parenthesized_expression "((*(uint *)(iVar18 + 0xf8) & 0x200) == 0)" ( (binary_expression "(*(uint *)(iVar18 + 0xf8) & 0x200) == 0" (parenthesized_expression "(*(uint *)(iVar18 + 0xf8) & 0x200)" ( (binary_expression "*(uint *)(iVar18 + 0xf8) & 0x200" (pointer_expression "*(uint *)(iVar18 + 0xf8)" * (cast_expression "(uint *)(iVar18 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xf8)" ( (binary_expression "iVar18 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar4 = 1;\n  }" { (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    uVar4 = FUN_000150d8(param_1);\n  }" else (compound_statement "{\n    uVar4 = FUN_000150d8(param_1);\n  }" { (expression_statement "uVar4 = FUN_000150d8(param_1);" (assignment_expression "uVar4 = FUN_000150d8(param_1)" identifier = (call_expression "FUN_000150d8(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }))) (labeled_statement "LAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );" statement_identifier : (do_statement "do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );" do (compound_statement "{\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  }" { (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" * (cast_expression "(undefined1 *)(param_1 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xab)" ( (binary_expression "param_1 + 0xab" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" identifier = identifier) ;) (labeled_statement "LAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return uVar4;\n    }" { (return_statement "return uVar4;" 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 "()" ( ))) ;) (labeled_statement "LAB_000179e4:\n    uVar12 = 0;" statement_identifier : (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;)) (if_statement "if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) )) (compound_statement "{\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }" { (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" identifier = identifier) ;) (do_statement "do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );" do (compound_statement "{\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      }" { (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" identifier = identifier) ;) (expression_statement "in_t2 = pcVar14;" (assignment_expression "in_t2 = pcVar14" identifier = identifier) ;) (expression_statement "puVar15 = in_t3;" (assignment_expression "puVar15 = in_t3" identifier = identifier) ;) (expression_statement "uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);" (assignment_expression "uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200)" identifier = (call_expression "FUN_00022050(pcVar14,uVar12,param_1 + 200)" identifier (argument_list "(pcVar14,uVar12,param_1 + 200)" ( identifier , identifier , (binary_expression "param_1 + 200" identifier + number_literal) )))) ;) (if_statement "if (uVar6 != uVar12) goto LAB_00017458;" if (parenthesized_expression "(uVar6 != uVar12)" ( (binary_expression "uVar6 != uVar12" identifier != identifier) )) (goto_statement "goto LAB_00017458;" goto statement_identifier ;)) (expression_statement "in_t2 = pcVar14 + uVar11;" (assignment_expression "in_t2 = pcVar14 + uVar11" identifier = (binary_expression "pcVar14 + uVar11" identifier + identifier)) ;) (if_statement "if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }" if (parenthesized_expression "((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n'))))" ( (binary_expression "(uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))" (parenthesized_expression "(uVar11 < uVar13)" ( (binary_expression "uVar11 < uVar13" identifier < identifier) )) && (parenthesized_expression "((*in_t2 == '\r' || (*in_t2 == '\n')))" ( (parenthesized_expression "(*in_t2 == '\r' || (*in_t2 == '\n'))" ( (binary_expression "*in_t2 == '\r' || (*in_t2 == '\n')" (binary_expression "*in_t2 == '\r'" (pointer_expression "*in_t2" * identifier) == (char_literal "'\r'" ' escape_sequence ')) || (parenthesized_expression "(*in_t2 == '\n')" ( (binary_expression "*in_t2 == '\n'" (pointer_expression "*in_t2" * identifier) == (char_literal "'\n'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }" { (expression_statement "uVar11 = uVar19 + 2;" (assignment_expression "uVar11 = uVar19 + 2" identifier = (binary_expression "uVar19 + 2" identifier + number_literal)) ;) (expression_statement "in_t2 = pcVar14 + uVar11;" (assignment_expression "in_t2 = pcVar14 + uVar11" identifier = (binary_expression "pcVar14 + uVar11" identifier + identifier)) ;) })) (expression_statement "uVar13 = uVar13 - uVar11;" (assignment_expression "uVar13 = uVar13 - uVar11" identifier = (binary_expression "uVar13 - uVar11" identifier - identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd4)" * (cast_expression "(undefined4 *)(param_1 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd0)" * (cast_expression "(undefined4 *)(param_1 + 0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }" { (if_statement "if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }" if (parenthesized_expression "(*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0)" ( (binary_expression "*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0" (binary_expression "*(int *)(param_1 + 200) == 0" (pointer_expression "*(int *)(param_1 + 200)" * (cast_expression "(int *)(param_1 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(param_1 + 0xcc) == 0" (pointer_expression "*(int *)(param_1 + 0xcc)" * (cast_expression "(int *)(param_1 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_00016c54;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0)" ( (binary_expression "*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0" (binary_expression "*(int *)(param_1 + 200) == 0" (pointer_expression "*(int *)(param_1 + 200)" * (cast_expression "(int *)(param_1 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(param_1 + 0xcc) == 0" (pointer_expression "*(int *)(param_1 + 0xcc)" * (cast_expression "(int *)(param_1 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }" { (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00016c2c;" goto statement_identifier ;) })) (expression_statement "cVar10 = *(char *)(param_1 + 0xc0);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xc0)" identifier = (pointer_expression "*(char *)(param_1 + 0xc0)" * (cast_expression "(char *)(param_1 + 0xc0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc0)" ( (binary_expression "param_1 + 0xc0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);" statement_identifier : (expression_statement "iVar8 = *(int *)(param_1 + 0x78);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x78)" identifier = (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;)) (expression_statement "uVar12 = *(uint *)(param_1 + 0x7c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x7c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x7c)" * (cast_expression "(uint *)(param_1 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" identifier = identifier) ;) (if_statement "if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }" if (parenthesized_expression "(((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff))" ( (binary_expression "((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)" (parenthesized_expression "((cVar10 == '\0') || (iVar8 != -1))" ( (binary_expression "(cVar10 == '\0') || (iVar8 != -1)" (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) ))) )) || (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }" { (if_statement "if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;" if (parenthesized_expression "((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))" ( (binary_expression "(-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1)" (parenthesized_expression "(-iVar8 == (uint)(uVar12 - 1 < uVar12))" ( (binary_expression "-iVar8 == (uint)(uVar12 - 1 < uVar12)" (unary_expression "-iVar8" - identifier) == (call_expression "(uint)(uVar12 - 1 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 - 1 < uVar12)" ( (binary_expression "uVar12 - 1 < uVar12" (binary_expression "uVar12 - 1" identifier - number_literal) < identifier) )))) )) && (parenthesized_expression "(0xfffffffd < uVar12 - 1)" ( (binary_expression "0xfffffffd < uVar12 - 1" number_literal < (binary_expression "uVar12 - 1" identifier - number_literal)) ))) )) (goto_statement "goto LAB_00016f9c;" goto statement_identifier ;)) (if_statement "if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" if (parenthesized_expression "((iVar8 == 0) && (uVar12 < uVar13))" ( (binary_expression "(iVar8 == 0) && (uVar12 < uVar13)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar12 < uVar13)" ( (binary_expression "uVar12 < uVar13" identifier < identifier) ))) )) (compound_statement "{\n            bVar2 = false;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" else (compound_statement "{\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) }))) (labeled_statement "LAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;" statement_identifier : (expression_statement "*(undefined1 *)(param_1 + 0xa0) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xa0) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xa0)" * (cast_expression "(undefined1 *)(param_1 + 0xa0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "local_3c[0] = uVar12;" (assignment_expression "local_3c[0] = uVar12" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);" (assignment_expression "iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" identifier = (call_expression "(*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" (parenthesized_expression "(*(code *)*in_t3)" ( (pointer_expression "*(code *)*in_t3" * (cast_expression "(code *)*in_t3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_t3" * identifier))) )) (argument_list "(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" ( (subscript_expression "in_t3[1]" identifier [ number_literal ]) , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) , identifier , identifier , (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }" { (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = PTR_DAT_0003f05c + -0x4fc0;" (assignment_expression "puVar9 = PTR_DAT_0003f05c + -0x4fc0" identifier = (binary_expression "PTR_DAT_0003f05c + -0x4fc0" identifier + number_literal)) ;) (goto_statement "goto LAB_00017464;" goto statement_identifier ;) })) (if_statement "if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }" if (parenthesized_expression "(uVar12 < local_3c[0])" ( (binary_expression "uVar12 < local_3c[0]" identifier < (subscript_expression "local_3c[0]" identifier [ number_literal ])) )) (compound_statement "{\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }" { (expression_statement "(**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c)" (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,local_48 + -0x51c8,0x9f3,local_4c)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "local_48 + -0x51c8" identifier + number_literal) , number_literal , identifier ))) ;) })) (if_statement "if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }" if (parenthesized_expression "(local_3c[0] != 0)" ( (binary_expression "local_3c[0] != 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }" { (if_statement "if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" if (parenthesized_expression "(((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0'))" ( (binary_expression "((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')" (parenthesized_expression "((in_t3[0x3e] & 8) == 0)" ( (binary_expression "(in_t3[0x3e] & 8) == 0" (parenthesized_expression "(in_t3[0x3e] & 8)" ( (binary_expression "in_t3[0x3e] & 8" (subscript_expression "in_t3[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(param_1 + 0xf5) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xf5) != '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              bVar2 = false;\n            }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" else (compound_statement "{\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" { (expression_statement "FUN_00020df0(in_t3,puVar17);" (call_expression "FUN_00020df0(in_t3,puVar17)" identifier (argument_list "(in_t3,puVar17)" ( identifier , identifier ))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }))) })) (expression_statement "cVar10 = *(char *)(param_1 + 0xc0);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xc0)" identifier = (pointer_expression "*(char *)(param_1 + 0xc0)" * (cast_expression "(char *)(param_1 + 0xc0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc0)" ( (binary_expression "param_1 + 0xc0" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = uVar12 - local_3c[0];" (assignment_expression "iVar8 = uVar12 - local_3c[0]" identifier = (binary_expression "uVar12 - local_3c[0]" identifier - (subscript_expression "local_3c[0]" identifier [ number_literal ]))) ;) (if_statement "if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }" { (expression_statement "uVar19 = *(uint *)(param_1 + 0xd4);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0xd4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar19 + iVar8;" (assignment_expression "uVar11 = uVar19 + iVar8" identifier = (binary_expression "uVar19 + iVar8" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0xd4) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0xd4) = uVar11" (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);" (assignment_expression "*(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0)" (pointer_expression "*(uint *)(param_1 + 0xd0)" * (cast_expression "(uint *)(param_1 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) = (binary_expression "(uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0)" (call_expression "(uint)(uVar11 < uVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar19)" ( (binary_expression "uVar11 < uVar19" identifier < identifier) ))) + (pointer_expression "*(int *)(param_1 + 0xd0)" * (cast_expression "(int *)(param_1 + 0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar19 = *(uint *)(param_1 + 0x7c);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0x7c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x7c)" * (cast_expression "(uint *)(param_1 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "in_t2 = in_t2 + iVar8;" (assignment_expression "in_t2 = in_t2 + iVar8" identifier = (binary_expression "in_t2 + iVar8" identifier + identifier)) ;) (expression_statement "uVar13 = local_3c[0] + (uVar13 - uVar12);" (assignment_expression "uVar13 = local_3c[0] + (uVar13 - uVar12)" identifier = (binary_expression "local_3c[0] + (uVar13 - uVar12)" (subscript_expression "local_3c[0]" identifier [ number_literal ]) + (parenthesized_expression "(uVar13 - uVar12)" ( (binary_expression "uVar13 - uVar12" identifier - identifier) )))) ;) (if_statement "if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }" if (parenthesized_expression "((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff))" ( (binary_expression "(*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)" (parenthesized_expression "(*(int *)(param_1 + 0x78) != -1)" ( (binary_expression "*(int *)(param_1 + 0x78) != -1" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(uVar19 != 0xffffffff)" ( (binary_expression "uVar19 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }" { (expression_statement "*(uint *)(param_1 + 0x7c) = uVar19 - iVar8;" (assignment_expression "*(uint *)(param_1 + 0x7c) = uVar19 - iVar8" (pointer_expression "*(uint *)(param_1 + 0x7c)" * (cast_expression "(uint *)(param_1 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = (binary_expression "uVar19 - iVar8" identifier - identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);" (assignment_expression "*(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8)" (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8)" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) - (call_expression "(uint)(uVar19 < uVar19 - iVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar19 - iVar8)" ( (binary_expression "uVar19 < uVar19 - iVar8" identifier < (binary_expression "uVar19 - iVar8" identifier - identifier)) ))))) ;) })) (if_statement "if (!bVar2) goto LAB_00016c2c;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (goto_statement "goto LAB_00016c2c;" goto statement_identifier ;)) (goto_statement "goto LAB_00016aa4;" goto statement_identifier ;) })) (expression_statement "uVar11 = *(uint *)(param_1 + 0xd0);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xd0)" identifier = (pointer_expression "*(uint *)(param_1 + 0xd0)" * (cast_expression "(uint *)(param_1 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(param_1 + 200);" (assignment_expression "uVar19 = *(uint *)(param_1 + 200)" identifier = (pointer_expression "*(uint *)(param_1 + 200)" * (cast_expression "(uint *)(param_1 + 200)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(param_1 + 0xd4);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0xd4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 0xcc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xcc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xcc)" * (cast_expression "(uint *)(param_1 + 0xcc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) ))))) ;) (if_statement "if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }" if (parenthesized_expression "((uVar11 != uVar19) || (uVar12 != uVar6))" ( (binary_expression "(uVar11 != uVar19) || (uVar12 != uVar6)" (parenthesized_expression "(uVar11 != uVar19)" ( (binary_expression "uVar11 != uVar19" identifier != identifier) )) || (parenthesized_expression "(uVar12 != uVar6)" ( (binary_expression "uVar12 != uVar6" identifier != identifier) ))) )) (compound_statement "{\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }" { (if_statement "if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;" if (parenthesized_expression "((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12))))" ( (binary_expression "(uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))" (parenthesized_expression "(uVar19 <= uVar11)" ( (binary_expression "uVar19 <= uVar11" identifier <= identifier) )) && (parenthesized_expression "((uVar19 != uVar11 || (uVar6 <= uVar12)))" ( (parenthesized_expression "(uVar19 != uVar11 || (uVar6 <= uVar12))" ( (binary_expression "uVar19 != uVar11 || (uVar6 <= uVar12)" (binary_expression "uVar19 != uVar11" identifier != identifier) || (parenthesized_expression "(uVar6 <= uVar12)" ( (binary_expression "uVar6 <= uVar12" identifier <= identifier) ))) )) ))) )) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;)) (expression_statement "uVar12 = uVar6 - uVar12;" (assignment_expression "uVar12 = uVar6 - uVar12" identifier = (binary_expression "uVar6 - uVar12" identifier - identifier)) ;) (if_statement "if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" if (parenthesized_expression "((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12))" ( (binary_expression "(uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)" (parenthesized_expression "(uVar19 - uVar11 != (uint)(uVar6 < uVar12))" ( (binary_expression "uVar19 - uVar11 != (uint)(uVar6 < uVar12)" (binary_expression "uVar19 - uVar11" identifier - identifier) != (call_expression "(uint)(uVar6 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar12)" ( (binary_expression "uVar6 < uVar12" identifier < identifier) )))) )) || (parenthesized_expression "(bVar2 = uVar12 < uVar13, uVar13 < uVar12)" ( (comma_expression "bVar2 = uVar12 < uVar13, uVar13 < uVar12" (assignment_expression "bVar2 = uVar12 < uVar13" identifier = (binary_expression "uVar12 < uVar13" identifier < identifier)) , (binary_expression "uVar13 < uVar12" identifier < identifier)) ))) )) (compound_statement "{\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" { (labeled_statement "LAB_00016f9c:\n            bVar2 = false;" statement_identifier : (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;)) (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) })) (goto_statement "goto LAB_00016af0;" goto statement_identifier ;) })) (if_statement "if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }" if (parenthesized_expression "((uVar11 != 0 || uVar12 != 0) && (1 < uVar13))" ( (binary_expression "(uVar11 != 0 || uVar12 != 0) && (1 < uVar13)" (parenthesized_expression "(uVar11 != 0 || uVar12 != 0)" ( (binary_expression "uVar11 != 0 || uVar12 != 0" (binary_expression "uVar11 != 0" identifier != number_literal) || (binary_expression "uVar12 != 0" identifier != number_literal)) )) && (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) ))) )) (compound_statement "{\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }" { (if_statement "if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;" if (parenthesized_expression "((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n'))" ( (binary_expression "(*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')" (parenthesized_expression "(*in_t2 != '\r')" ( (binary_expression "*in_t2 != '\r'" (pointer_expression "*in_t2" * identifier) != (char_literal "'\r'" ' escape_sequence ')) )) && (parenthesized_expression "(puVar15 = in_t3, *in_t2 != '\n')" ( (comma_expression "puVar15 = in_t3, *in_t2 != '\n'" (assignment_expression "puVar15 = in_t3" identifier = identifier) , (binary_expression "*in_t2 != '\n'" (pointer_expression "*in_t2" * identifier) != (char_literal "'\n'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00017458;" goto statement_identifier ;)) (if_statement "if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" if (parenthesized_expression "(in_t2[1] == '\r')" ( (binary_expression "in_t2[1] == '\r'" (subscript_expression "in_t2[1]" identifier [ number_literal ]) == (char_literal "'\r'" ' escape_sequence ')) )) (compound_statement "{\n            iVar8 = 2;\n          }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) }) (else_clause "else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" else (compound_statement "{\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (if_statement "if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }" if (parenthesized_expression "(in_t2[1] != '\n')" ( (binary_expression "in_t2[1] != '\n'" (subscript_expression "in_t2[1]" identifier [ number_literal ]) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n              iVar8 = 1;\n            }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) })) }))) (expression_statement "uVar13 = uVar13 - iVar8;" (assignment_expression "uVar13 = uVar13 - iVar8" identifier = (binary_expression "uVar13 - iVar8" identifier - identifier)) ;) (expression_statement "in_t2 = in_t2 + iVar8;" (assignment_expression "in_t2 = in_t2 + iVar8" identifier = (binary_expression "in_t2 + iVar8" identifier + identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd4)" * (cast_expression "(undefined4 *)(param_1 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0xcc) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xcc) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xcc)" * (cast_expression "(undefined4 *)(param_1 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd0)" * (cast_expression "(undefined4 *)(param_1 + 0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 200) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 200) = 0" (pointer_expression "*(undefined4 *)(param_1 + 200)" * (cast_expression "(undefined4 *)(param_1 + 200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_000175d8:\n        pcVar14 = in_t2;" statement_identifier : (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" identifier = identifier) ;)) (if_statement "if (uVar13 == 0) goto LAB_00016c54;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c54;" goto statement_identifier ;)) (expression_statement "cVar10 = *in_t2;" (assignment_expression "cVar10 = *in_t2" identifier = (pointer_expression "*in_t2" * identifier)) ;) (if_statement "if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;" if (parenthesized_expression "((cVar10 == '\r') || (cVar10 == '\n'))" ( (binary_expression "(cVar10 == '\r') || (cVar10 == '\n')" (parenthesized_expression "(cVar10 == '\r')" ( (binary_expression "cVar10 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar10 == '\n')" ( (binary_expression "cVar10 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000179e4;" goto statement_identifier ;)) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" identifier = identifier) ;) (if_statement "if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }" if (parenthesized_expression "(cVar10 != ';')" ( (binary_expression "cVar10 != ';'" identifier != (char_literal "';'" ' character ')) )) (compound_statement "{\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }" { (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);" do (compound_statement "{\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          }" { (expression_statement "uVar11 = uVar6 + 1;" (assignment_expression "uVar11 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar6;" (assignment_expression "uVar19 = uVar6" identifier = identifier) ;) (if_statement "if (uVar6 == uVar13) goto LAB_000178e4;" if (parenthesized_expression "(uVar6 == uVar13)" ( (binary_expression "uVar6 == uVar13" identifier == identifier) )) (goto_statement "goto LAB_000178e4;" goto statement_identifier ;)) (expression_statement "cVar1 = in_t2[uVar6];" (assignment_expression "cVar1 = in_t2[uVar6]" identifier = (subscript_expression "in_t2[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) (if_statement "if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;" if (parenthesized_expression "((cVar1 == '\r') || (cVar1 == '\n'))" ( (binary_expression "(cVar1 == '\r') || (cVar1 == '\n')" (parenthesized_expression "(cVar1 == '\r')" ( (binary_expression "cVar1 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar1 == '\n')" ( (binary_expression "cVar1 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00017804;" goto statement_identifier ;)) (if_statement "if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }" if (parenthesized_expression "(cVar1 == ';')" ( (binary_expression "cVar1 == ';'" identifier == (char_literal "';'" ' character ')) )) (compound_statement "{\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }" { (if_statement "if (uVar6 < uVar13) goto LAB_00017988;" if (parenthesized_expression "(uVar6 < uVar13)" ( (binary_expression "uVar6 < uVar13" identifier < identifier) )) (goto_statement "goto LAB_00017988;" goto statement_identifier ;)) (goto_statement "goto LAB_00017804;" goto statement_identifier ;) })) (expression_statement "uVar6 = uVar11;" (assignment_expression "uVar6 = uVar11" identifier = identifier) ;) }) while (parenthesized_expression "(uVar11 != 0x10)" ( (binary_expression "uVar11 != 0x10" identifier != number_literal) )) ;) (if_statement "if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }" if (parenthesized_expression "(in_t2[0x10] != ';')" ( (binary_expression "in_t2[0x10] != ';'" (subscript_expression "in_t2[0x10]" identifier [ number_literal ]) != (char_literal "';'" ' character ')) )) (compound_statement "{\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }" { (if_statement "if (uVar13 < 0x12) goto LAB_00016c2c;" if (parenthesized_expression "(uVar13 < 0x12)" ( (binary_expression "uVar13 < 0x12" identifier < number_literal) )) (goto_statement "goto LAB_00016c2c;" goto statement_identifier ;)) (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001745c;" goto statement_identifier ;) })) (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" identifier = identifier) ;) (if_statement "if (0x10 < uVar13) goto LAB_00017988;" if (parenthesized_expression "(0x10 < uVar13)" ( (binary_expression "0x10 < uVar13" number_literal < identifier) )) (goto_statement "goto LAB_00017988;" goto statement_identifier ;)) (labeled_statement "LAB_00016c2c:\n          pcVar14 = in_t2;" statement_identifier : (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" identifier = identifier) ;)) (if_statement "if (uVar13 == 0) goto LAB_00016c54;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c54;" goto statement_identifier ;)) (goto_statement "goto LAB_00016c34;" goto statement_identifier ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) (labeled_statement "LAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');" statement_identifier : (do_statement "do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');" do (compound_statement "{\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        }" { (expression_statement "uVar7 = uVar6 + 1;" (assignment_expression "uVar7 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar6 + 2;" (assignment_expression "uVar11 = uVar6 + 2" identifier = (binary_expression "uVar6 + 2" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar13;" (assignment_expression "uVar19 = uVar13" identifier = identifier) ;) (if_statement "if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;" if (parenthesized_expression "((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r'))" ( (binary_expression "(uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')" (parenthesized_expression "(uVar7 == uVar13)" ( (binary_expression "uVar7 == uVar13" identifier == identifier) )) || (parenthesized_expression "(uVar19 = uVar7, in_t2[uVar7] == '\r')" ( (comma_expression "uVar19 = uVar7, in_t2[uVar7] == '\r'" (assignment_expression "uVar19 = uVar7" identifier = identifier) , (binary_expression "in_t2[uVar7] == '\r'" (subscript_expression "in_t2[uVar7]" identifier [ identifier ]) == (char_literal "'\r'" ' escape_sequence '))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar7;" (assignment_expression "uVar6 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "(in_t2[uVar7] != '\n')" ( (binary_expression "in_t2[uVar7] != '\n'" (subscript_expression "in_t2[uVar7]" identifier [ identifier ]) != (char_literal "'\n'" ' escape_sequence ')) )) ;)) (labeled_statement "LAB_00017804:\n        uVar6 = uVar12;" statement_identifier : (expression_statement "uVar6 = uVar12;" (assignment_expression "uVar6 = uVar12" identifier = identifier) ;)) (if_statement "if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }" if (parenthesized_expression "(uVar13 <= uVar11)" ( (binary_expression "uVar13 <= uVar11" identifier <= identifier) )) (compound_statement "{\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }" { (labeled_statement "LAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;" statement_identifier : (if_statement "if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;" if (parenthesized_expression "(((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0'))" ( (binary_expression "((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')" (parenthesized_expression "((uVar19 != 1) || (uVar13 != 2))" ( (binary_expression "(uVar19 != 1) || (uVar13 != 2)" (parenthesized_expression "(uVar19 != 1)" ( (binary_expression "uVar19 != 1" identifier != number_literal) )) || (parenthesized_expression "(uVar13 != 2)" ( (binary_expression "uVar13 != 2" identifier != number_literal) ))) )) || (parenthesized_expression "(uVar11 = 2, cVar10 != '0')" ( (comma_expression "uVar11 = 2, cVar10 != '0'" (assignment_expression "uVar11 = 2" identifier = number_literal) , (binary_expression "cVar10 != '0'" identifier != (char_literal "'0'" ' character '))) ))) )) (goto_statement "goto LAB_00016c2c;" goto statement_identifier ;))) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) })) (expression_statement "puVar15 = in_t3;" (assignment_expression "puVar15 = in_t3" identifier = identifier) ;) (if_statement "if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }" if (parenthesized_expression "(uVar12 == 0x10)" ( (binary_expression "uVar12 == 0x10" identifier == number_literal) )) (compound_statement "{\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }" { (labeled_statement "LAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);" statement_identifier : (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "in_t3 = puVar15;" (assignment_expression "in_t3 = puVar15" identifier = identifier) ;) (labeled_statement "LAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;" statement_identifier : (expression_statement "puVar9 = PTR_DAT_0003f05c + -0x48f0;" (assignment_expression "puVar9 = PTR_DAT_0003f05c + -0x48f0" identifier = (binary_expression "PTR_DAT_0003f05c + -0x48f0" identifier + number_literal)) ;)) (labeled_statement "LAB_00017464:\n          FUN_00020df0(uVar4,puVar9);" statement_identifier : (expression_statement "FUN_00020df0(uVar4,puVar9);" (call_expression "FUN_00020df0(uVar4,puVar9)" identifier (argument_list "(uVar4,puVar9)" ( identifier , identifier ))) ;)) (expression_statement "FUN_00014148(param_1,1);" (call_expression "FUN_00014148(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00016c58;" goto statement_identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);" statement_identifier : (expression_statement "(*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);" (call_expression "(*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13)" (parenthesized_expression "(*(code *)PTR_memmove_0003f2fc)" ( (pointer_expression "*(code *)PTR_memmove_0003f2fc" * (cast_expression "(code *)PTR_memmove_0003f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) , identifier , identifier ))) ;)) (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" identifier = identifier) ;) (labeled_statement "LAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;" statement_identifier : (expression_statement "*(uint *)(param_1 + 100) = uVar13;" (assignment_expression "*(uint *)(param_1 + 100) = uVar13" (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;)) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" identifier = identifier) ;) (expression_statement "in_t2 = pcVar14;" (assignment_expression "in_t2 = pcVar14" identifier = identifier) ;) (labeled_statement "LAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);" statement_identifier : (expression_statement "cVar10 = *(char *)(param_1 + 0xf5);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xf5)" identifier = (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;" if (parenthesized_expression "(*(int *)(param_1 + 0xb4) == 0x13)" ( (binary_expression "*(int *)(param_1 + 0xb4) == 0x13" (pointer_expression "*(int *)(param_1 + 0xb4)" * (cast_expression "(int *)(param_1 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00015eac;" goto statement_identifier ;)) (if_statement "if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0" (binary_expression "*(int *)(param_1 + 0x78) != 0" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(param_1 + 0x7c) != 0" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }" { (if_statement "if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;" if (parenthesized_expression "((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0'))" ( (binary_expression "(((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')" (parenthesized_expression "(((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0))" ( (binary_expression "((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)" (parenthesized_expression "((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1))" ( (binary_expression "(*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x78) == -1)" ( (binary_expression "*(int *)(param_1 + 0x78) == -1" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0x7c) == -1)" ( (binary_expression "*(int *)(param_1 + 0x7c) == -1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(char *)(param_1 + 0xa9) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xa9) != '\0'" (pointer_expression "*(char *)(param_1 + 0xa9)" * (cast_expression "(char *)(param_1 + 0xa9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa9)" ( (binary_expression "param_1 + 0xa9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00016658;" goto statement_identifier ;)) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (if_statement "if (cVar10 != '\0') goto LAB_00015f88;" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(param_1 + 0x98);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x98)" identifier = (pointer_expression "*(int *)(param_1 + 0x98)" * (cast_expression "(int *)(param_1 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_00015edc;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;)) (labeled_statement "LAB_00016168:\n      iVar5 = FUN_0002186c();" statement_identifier : (expression_statement "iVar5 = FUN_0002186c();" (assignment_expression "iVar5 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;)) (expression_statement "puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));" (assignment_expression "puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" identifier = (cast_expression "(undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" ( (binary_expression "iVar8 < iVar5 - *(int *)(param_1 + 0x94)" identifier < (binary_expression "iVar5 - *(int *)(param_1 + 0x94)" identifier - (pointer_expression "*(int *)(param_1 + 0x94)" * (cast_expression "(int *)(param_1 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x94)" ( (binary_expression "param_1 + 0x94" identifier + number_literal) )))))) ))))) ;) (if_statement "if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" if (parenthesized_expression "(puVar16 == (undefined *)0x0)" ( (binary_expression "puVar16 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" { (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (if_statement "if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;" if (parenthesized_expression "(*(char *)(param_1 + 0xf5) == '\0')" ( (binary_expression "*(char *)(param_1 + 0xf5) == '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" * (cast_expression "(undefined1 *)(param_1 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xab)" ( (binary_expression "param_1 + 0xab" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" identifier = identifier) ;) }) (else_clause "else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" else (compound_statement "{\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" { (expression_statement "FUN_00014148(param_1,2);" (call_expression "FUN_00014148(param_1,2)" identifier (argument_list "(param_1,2)" ( identifier , number_literal ))) ;) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" * (cast_expression "(undefined1 *)(param_1 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xab)" ( (binary_expression "param_1 + 0xab" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" identifier = identifier) ;) }))) (goto_statement "goto LAB_00015f8c;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0xc0) == '\0')" ( (binary_expression "*(char *)(param_1 + 0xc0) == '\0'" (pointer_expression "*(char *)(param_1 + 0xc0)" * (cast_expression "(char *)(param_1 + 0xc0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc0)" ( (binary_expression "param_1 + 0xc0" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00016658:\n      uVar4 = 9;\n    }" { (labeled_statement "LAB_00016658:\n      uVar4 = 9;" statement_identifier : (expression_statement "uVar4 = 9;" (assignment_expression "uVar4 = 9" identifier = number_literal) ;)) }) (else_clause "else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" else (compound_statement "{\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" { (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;) (if_statement "if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0xa9) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xa9) != '\0'" (pointer_expression "*(char *)(param_1 + 0xa9)" * (cast_expression "(char *)(param_1 + 0xa9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa9)" ( (binary_expression "param_1 + 0xa9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar4 = 9;\n      }" { (expression_statement "uVar4 = 9;" (assignment_expression "uVar4 = 9" identifier = number_literal) ;) })) }))) (expression_statement "*(undefined4 *)(param_1 + 0xb4) = uVar4;" (assignment_expression "*(undefined4 *)(param_1 + 0xb4) = uVar4" (pointer_expression "*(undefined4 *)(param_1 + 0xb4)" * (cast_expression "(undefined4 *)(param_1 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }" { (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" identifier = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00015ec0;" goto statement_identifier ;) })) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "/* WARNING: Enum "MHD_FLAG": Some values do not have unique names */\n/* WARNING: Enum "gnutls_pk_algorithm_t": Some values do not have unique names */\n/* WARNING: Enum "gnutls_certificate_type_t": Some values do not have unique names */\n\nint MHD_connection_handle_idle(MHD_Connection *connection)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  time_t tVar4;\n  size_t sVar5;\n  int iVar6;\n  MHD_CONNECTION_STATE MVar7;\n  char *pcVar8;\n  MHD_TLS_CONN_STATE MVar9;\n  char cVar10;\n  uint in_t1;\n  size_t sVar11;\n  char *in_t2;\n  char *str;\n  undefined *puVar12;\n  MHD_Daemon *pMVar13;\n  size_t line_len;\n  size_t left_unprocessed;\n  char cbuf [10];\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  iVar2 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar12 = PTR_DAT_0003f05c + -0x45c0;\n  pMVar13 = connection->daemon;\n  cVar10 = connection->suspended;\n  connection->in_idle = true;\nLAB_00015eac:\n  iVar3 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  MVar9 = connection->tls_state;\nLAB_00015ec0:\n  if ((1 < MVar9 - MHD_TLS_CONN_INIT) &&\n     (connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED))) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n    return iVar2;\n  }\n  iVar3 = connection->connection_timeout;\n  if (iVar3 != 0) goto LAB_00016168;\nLAB_00015edc:\n  MVar9 = connection->tls_state;\n  puVar12 = (undefined *)0x1;\n  if (MVar9 == MHD_TLS_CONN_NO_TLS) {\nLAB_00015eec:\n    puVar12 = PTR_DAT_0003f05c + -0x4610;\n    if (connection->state < MHD_CONNECTION_UPGRADE) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n      return iVar2;\n    }\nLAB_00015ff0:\n    iVar3 = 1;\n    if (connection->suspended != false) goto LAB_00015f88;\n  }\n  else {\n    if (MVar9 != MHD_TLS_CONN_INIT) {\n      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;\n      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);\n      if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }\n      goto LAB_00015ff0;\n    }\n    connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n  }\n  if ((pMVar13->options & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n    iVar3 = 1;\n  }\n  else {\n    iVar3 = MHD_connection_epoll_update_(connection);\n  }\nLAB_00015f88:\n  do {\n    connection->in_idle = false;\n    sVar11 = in_t1;\n    str = in_t2;\nLAB_00015f8c:\n    if (iVar2 == *(int *)puVar1) {\n      return iVar3;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    if (sVar11 < 2) {\n      in_t1 = 1;\nLAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);\nLAB_00016c54:\n      connection->read_buffer_offset = in_t1;\n      in_t2 = str;\n    }\n    else {\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }\n    cVar10 = connection->suspended;\n    if (connection->state == MHD_CONNECTION_CLOSED) goto LAB_00015eac;\n    iVar3 = (int)connection->remaining_upload_size;\n    if (*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0) {\n      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;\n      iVar3 = 1;\n      if ((_Bool)cVar10 != false) goto LAB_00015f88;\n      iVar3 = connection->connection_timeout;\n      if (iVar3 == 0) goto LAB_00015edc;\nLAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();\n      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);\n      if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      goto LAB_00015f8c;\n    }\n    if (connection->have_chunked_upload == false) {\nLAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n    }\n    else {\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }\n    connection->state = MVar7;\n    if ((_Bool)cVar10 == false) {\n      MVar9 = connection->tls_state;\n      goto LAB_00015ec0;\n    }\n    iVar3 = 1;\n  } while( true );\n}\n\n" comment comment comment (function_definition "int MHD_connection_handle_idle(MHD_Connection *connection)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  time_t tVar4;\n  size_t sVar5;\n  int iVar6;\n  MHD_CONNECTION_STATE MVar7;\n  char *pcVar8;\n  MHD_TLS_CONN_STATE MVar9;\n  char cVar10;\n  uint in_t1;\n  size_t sVar11;\n  char *in_t2;\n  char *str;\n  undefined *puVar12;\n  MHD_Daemon *pMVar13;\n  size_t line_len;\n  size_t left_unprocessed;\n  char cbuf [10];\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  iVar2 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar12 = PTR_DAT_0003f05c + -0x45c0;\n  pMVar13 = connection->daemon;\n  cVar10 = connection->suspended;\n  connection->in_idle = true;\nLAB_00015eac:\n  iVar3 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  MVar9 = connection->tls_state;\nLAB_00015ec0:\n  if ((1 < MVar9 - MHD_TLS_CONN_INIT) &&\n     (connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED))) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n    return iVar2;\n  }\n  iVar3 = connection->connection_timeout;\n  if (iVar3 != 0) goto LAB_00016168;\nLAB_00015edc:\n  MVar9 = connection->tls_state;\n  puVar12 = (undefined *)0x1;\n  if (MVar9 == MHD_TLS_CONN_NO_TLS) {\nLAB_00015eec:\n    puVar12 = PTR_DAT_0003f05c + -0x4610;\n    if (connection->state < MHD_CONNECTION_UPGRADE) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n      return iVar2;\n    }\nLAB_00015ff0:\n    iVar3 = 1;\n    if (connection->suspended != false) goto LAB_00015f88;\n  }\n  else {\n    if (MVar9 != MHD_TLS_CONN_INIT) {\n      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;\n      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);\n      if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }\n      goto LAB_00015ff0;\n    }\n    connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n  }\n  if ((pMVar13->options & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n    iVar3 = 1;\n  }\n  else {\n    iVar3 = MHD_connection_epoll_update_(connection);\n  }\nLAB_00015f88:\n  do {\n    connection->in_idle = false;\n    sVar11 = in_t1;\n    str = in_t2;\nLAB_00015f8c:\n    if (iVar2 == *(int *)puVar1) {\n      return iVar3;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    if (sVar11 < 2) {\n      in_t1 = 1;\nLAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);\nLAB_00016c54:\n      connection->read_buffer_offset = in_t1;\n      in_t2 = str;\n    }\n    else {\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }\n    cVar10 = connection->suspended;\n    if (connection->state == MHD_CONNECTION_CLOSED) goto LAB_00015eac;\n    iVar3 = (int)connection->remaining_upload_size;\n    if (*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0) {\n      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;\n      iVar3 = 1;\n      if ((_Bool)cVar10 != false) goto LAB_00015f88;\n      iVar3 = connection->connection_timeout;\n      if (iVar3 == 0) goto LAB_00015edc;\nLAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();\n      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);\n      if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      goto LAB_00015f8c;\n    }\n    if (connection->have_chunked_upload == false) {\nLAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n    }\n    else {\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }\n    connection->state = MVar7;\n    if ((_Bool)cVar10 == false) {\n      MVar9 = connection->tls_state;\n      goto LAB_00015ec0;\n    }\n    iVar3 = 1;\n  } while( true );\n}" primitive_type (function_declarator "MHD_connection_handle_idle(MHD_Connection *connection)" identifier (parameter_list "(MHD_Connection *connection)" ( (parameter_declaration "MHD_Connection *connection" type_identifier (pointer_declarator "*connection" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  time_t tVar4;\n  size_t sVar5;\n  int iVar6;\n  MHD_CONNECTION_STATE MVar7;\n  char *pcVar8;\n  MHD_TLS_CONN_STATE MVar9;\n  char cVar10;\n  uint in_t1;\n  size_t sVar11;\n  char *in_t2;\n  char *str;\n  undefined *puVar12;\n  MHD_Daemon *pMVar13;\n  size_t line_len;\n  size_t left_unprocessed;\n  char cbuf [10];\n  \n  puVar1 = PTR___stack_chk_guard_0003f2ec;\n  iVar2 = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar12 = PTR_DAT_0003f05c + -0x45c0;\n  pMVar13 = connection->daemon;\n  cVar10 = connection->suspended;\n  connection->in_idle = true;\nLAB_00015eac:\n  iVar3 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  MVar9 = connection->tls_state;\nLAB_00015ec0:\n  if ((1 < MVar9 - MHD_TLS_CONN_INIT) &&\n     (connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED))) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n    return iVar2;\n  }\n  iVar3 = connection->connection_timeout;\n  if (iVar3 != 0) goto LAB_00016168;\nLAB_00015edc:\n  MVar9 = connection->tls_state;\n  puVar12 = (undefined *)0x1;\n  if (MVar9 == MHD_TLS_CONN_NO_TLS) {\nLAB_00015eec:\n    puVar12 = PTR_DAT_0003f05c + -0x4610;\n    if (connection->state < MHD_CONNECTION_UPGRADE) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n      return iVar2;\n    }\nLAB_00015ff0:\n    iVar3 = 1;\n    if (connection->suspended != false) goto LAB_00015f88;\n  }\n  else {\n    if (MVar9 != MHD_TLS_CONN_INIT) {\n      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;\n      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);\n      if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }\n      goto LAB_00015ff0;\n    }\n    connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n  }\n  if ((pMVar13->options & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n    iVar3 = 1;\n  }\n  else {\n    iVar3 = MHD_connection_epoll_update_(connection);\n  }\nLAB_00015f88:\n  do {\n    connection->in_idle = false;\n    sVar11 = in_t1;\n    str = in_t2;\nLAB_00015f8c:\n    if (iVar2 == *(int *)puVar1) {\n      return iVar3;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    if (sVar11 < 2) {\n      in_t1 = 1;\nLAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);\nLAB_00016c54:\n      connection->read_buffer_offset = in_t1;\n      in_t2 = str;\n    }\n    else {\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }\n    cVar10 = connection->suspended;\n    if (connection->state == MHD_CONNECTION_CLOSED) goto LAB_00015eac;\n    iVar3 = (int)connection->remaining_upload_size;\n    if (*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0) {\n      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;\n      iVar3 = 1;\n      if ((_Bool)cVar10 != false) goto LAB_00015f88;\n      iVar3 = connection->connection_timeout;\n      if (iVar3 == 0) goto LAB_00015edc;\nLAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();\n      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);\n      if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      goto LAB_00015f8c;\n    }\n    if (connection->have_chunked_upload == false) {\nLAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n    }\n    else {\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }\n    connection->state = MVar7;\n    if ((_Bool)cVar10 == false) {\n      MVar9 = connection->tls_state;\n      goto LAB_00015ec0;\n    }\n    iVar3 = 1;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "time_t tVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "MHD_CONNECTION_STATE MVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "MHD_TLS_CONN_STATE MVar9;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "uint in_t1;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "char *in_t2;" primitive_type (pointer_declarator "*in_t2" * identifier) ;) (declaration "char *str;" primitive_type (pointer_declarator "*str" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "MHD_Daemon *pMVar13;" type_identifier (pointer_declarator "*pMVar13" * identifier) ;) (declaration "size_t line_len;" primitive_type identifier ;) (declaration "size_t left_unprocessed;" primitive_type identifier ;) (declaration "char cbuf [10];" primitive_type (array_declarator "cbuf [10]" identifier [ number_literal ]) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0003f2ec" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)PTR___stack_chk_guard_0003f2ec;" (assignment_expression "iVar2 = *(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 "puVar12 = PTR_DAT_0003f05c + -0x45c0;" (assignment_expression "puVar12 = PTR_DAT_0003f05c + -0x45c0" identifier = (binary_expression "PTR_DAT_0003f05c + -0x45c0" identifier + number_literal)) ;) (expression_statement "pMVar13 = connection->daemon;" (assignment_expression "pMVar13 = connection->daemon" identifier = (field_expression "connection->daemon" identifier -> field_identifier)) ;) (expression_statement "cVar10 = connection->suspended;" (assignment_expression "cVar10 = connection->suspended" identifier = (field_expression "connection->suspended" identifier -> field_identifier)) ;) (expression_statement "connection->in_idle = true;" (assignment_expression "connection->in_idle = true" (field_expression "connection->in_idle" identifier -> field_identifier) = true) ;) (labeled_statement "LAB_00015eac:\n  iVar3 = 1;" statement_identifier : (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;)) (if_statement "if (cVar10 != '\0') goto LAB_00015f88;" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) (expression_statement "MVar9 = connection->tls_state;" (assignment_expression "MVar9 = connection->tls_state" identifier = (field_expression "connection->tls_state" identifier -> field_identifier)) ;) (labeled_statement "LAB_00015ec0:\n  if ((1 < MVar9 - MHD_TLS_CONN_INIT) &&\n     (connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED))) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n    return iVar2;\n  }" statement_identifier : (if_statement "if ((1 < MVar9 - MHD_TLS_CONN_INIT) &&\n     (connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED))) {\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n    return iVar2;\n  }" if (parenthesized_expression "((1 < MVar9 - MHD_TLS_CONN_INIT) &&\n     (connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED)))" ( (binary_expression "(1 < MVar9 - MHD_TLS_CONN_INIT) &&\n     (connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED))" (parenthesized_expression "(1 < MVar9 - MHD_TLS_CONN_INIT)" ( (binary_expression "1 < MVar9 - MHD_TLS_CONN_INIT" number_literal < (binary_expression "MVar9 - MHD_TLS_CONN_INIT" identifier - identifier)) )) && (parenthesized_expression "(connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED))" ( (binary_expression "connection->state < (MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED)" (field_expression "connection->state" identifier -> field_identifier) < (parenthesized_expression "(MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED)" ( (binary_expression "MHD_CONNECTION_UPGRADE|MHD_CONNECTION_URL_RECEIVED" identifier | identifier) ))) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n    return iVar2;\n  }" { comment comment (expression_statement "iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();" (assignment_expression "iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4))" * (cast_expression "(code *)(&_gp + *(int *)(puVar12 + connection->state * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar12 + connection->state * 4))" ( (binary_expression "&_gp + *(int *)(puVar12 + connection->state * 4)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar12 + connection->state * 4)" * (cast_expression "(int *)(puVar12 + connection->state * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + connection->state * 4)" ( (binary_expression "puVar12 + connection->state * 4" identifier + (binary_expression "connection->state * 4" (field_expression "connection->state" identifier -> field_identifier) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) }))) (expression_statement "iVar3 = connection->connection_timeout;" (assignment_expression "iVar3 = connection->connection_timeout" identifier = (field_expression "connection->connection_timeout" identifier -> field_identifier)) ;) (if_statement "if (iVar3 != 0) goto LAB_00016168;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (labeled_statement "LAB_00015edc:\n  MVar9 = connection->tls_state;" statement_identifier : (expression_statement "MVar9 = connection->tls_state;" (assignment_expression "MVar9 = connection->tls_state" identifier = (field_expression "connection->tls_state" identifier -> field_identifier)) ;)) (expression_statement "puVar12 = (undefined *)0x1;" (assignment_expression "puVar12 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (MVar9 == MHD_TLS_CONN_NO_TLS) {\nLAB_00015eec:\n    puVar12 = PTR_DAT_0003f05c + -0x4610;\n    if (connection->state < MHD_CONNECTION_UPGRADE) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n      return iVar2;\n    }\nLAB_00015ff0:\n    iVar3 = 1;\n    if (connection->suspended != false) goto LAB_00015f88;\n  }\n  else {\n    if (MVar9 != MHD_TLS_CONN_INIT) {\n      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;\n      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);\n      if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }\n      goto LAB_00015ff0;\n    }\n    connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n  }" if (parenthesized_expression "(MVar9 == MHD_TLS_CONN_NO_TLS)" ( (binary_expression "MVar9 == MHD_TLS_CONN_NO_TLS" identifier == identifier) )) (compound_statement "{\nLAB_00015eec:\n    puVar12 = PTR_DAT_0003f05c + -0x4610;\n    if (connection->state < MHD_CONNECTION_UPGRADE) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n      return iVar2;\n    }\nLAB_00015ff0:\n    iVar3 = 1;\n    if (connection->suspended != false) goto LAB_00015f88;\n  }" { (labeled_statement "LAB_00015eec:\n    puVar12 = PTR_DAT_0003f05c + -0x4610;" statement_identifier : (expression_statement "puVar12 = PTR_DAT_0003f05c + -0x4610;" (assignment_expression "puVar12 = PTR_DAT_0003f05c + -0x4610" identifier = (binary_expression "PTR_DAT_0003f05c + -0x4610" identifier + number_literal)) ;)) (if_statement "if (connection->state < MHD_CONNECTION_UPGRADE) {\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n      return iVar2;\n    }" if (parenthesized_expression "(connection->state < MHD_CONNECTION_UPGRADE)" ( (binary_expression "connection->state < MHD_CONNECTION_UPGRADE" (field_expression "connection->state" identifier -> field_identifier) < identifier) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00015f18 */\n                    /* WARNING: Treating indirect jump as call */\n      iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();\n      return iVar2;\n    }" { comment comment (expression_statement "iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))();" (assignment_expression "iVar2 = (*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar12 + connection->state * 4))" * (cast_expression "(code *)(&_gp + *(int *)(puVar12 + connection->state * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar12 + connection->state * 4))" ( (binary_expression "&_gp + *(int *)(puVar12 + connection->state * 4)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar12 + connection->state * 4)" * (cast_expression "(int *)(puVar12 + connection->state * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + connection->state * 4)" ( (binary_expression "puVar12 + connection->state * 4" identifier + (binary_expression "connection->state * 4" (field_expression "connection->state" identifier -> field_identifier) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) })) (labeled_statement "LAB_00015ff0:\n    iVar3 = 1;" statement_identifier : (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;)) (if_statement "if (connection->suspended != false) goto LAB_00015f88;" if (parenthesized_expression "(connection->suspended != false)" ( (binary_expression "connection->suspended != false" (field_expression "connection->suspended" identifier -> field_identifier) != false) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) }) (else_clause "else {\n    if (MVar9 != MHD_TLS_CONN_INIT) {\n      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;\n      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);\n      if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }\n      goto LAB_00015ff0;\n    }\n    connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n  }" else (compound_statement "{\n    if (MVar9 != MHD_TLS_CONN_INIT) {\n      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;\n      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);\n      if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }\n      goto LAB_00015ff0;\n    }\n    connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n  }" { (if_statement "if (MVar9 != MHD_TLS_CONN_INIT) {\n      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;\n      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);\n      if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }\n      goto LAB_00015ff0;\n    }" if (parenthesized_expression "(MVar9 != MHD_TLS_CONN_INIT)" ( (binary_expression "MVar9 != MHD_TLS_CONN_INIT" identifier != identifier) )) (compound_statement "{\n      if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;\n      iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);\n      if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }\n      goto LAB_00015ff0;\n    }" { (if_statement "if (MVar9 != MHD_TLS_CONN_HANDSHAKING) goto LAB_00015eec;" if (parenthesized_expression "(MVar9 != MHD_TLS_CONN_HANDSHAKING)" ( (binary_expression "MVar9 != MHD_TLS_CONN_HANDSHAKING" identifier != identifier) )) (goto_statement "goto LAB_00015eec;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);" (assignment_expression "iVar3 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session)" identifier = (call_expression "(*(code *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session)" (parenthesized_expression "(*(code *)PTR_gnutls_record_get_direction_0003f27c)" ( (pointer_expression "*(code *)PTR_gnutls_record_get_direction_0003f27c" * (cast_expression "(code *)PTR_gnutls_record_get_direction_0003f27c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(connection->tls_session)" ( (field_expression "connection->tls_session" identifier -> field_identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }\n      else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;\n      }" { (expression_statement "connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;" (assignment_expression "connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ" (field_expression "connection->event_loop_info" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }" else (compound_statement "{\n        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;\n      }" { (expression_statement "connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;" (assignment_expression "connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE" (field_expression "connection->event_loop_info" identifier -> field_identifier) = identifier) ;) }))) (goto_statement "goto LAB_00015ff0;" goto statement_identifier ;) })) (expression_statement "connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;" (assignment_expression "connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ" (field_expression "connection->event_loop_info" identifier -> field_identifier) = identifier) ;) }))) (if_statement "if ((pMVar13->options & MHD_USE_EPOLL) == MHD_NO_FLAG) {\n    iVar3 = 1;\n  }\n  else {\n    iVar3 = MHD_connection_epoll_update_(connection);\n  }" if (parenthesized_expression "((pMVar13->options & MHD_USE_EPOLL) == MHD_NO_FLAG)" ( (binary_expression "(pMVar13->options & MHD_USE_EPOLL) == MHD_NO_FLAG" (parenthesized_expression "(pMVar13->options & MHD_USE_EPOLL)" ( (binary_expression "pMVar13->options & MHD_USE_EPOLL" (field_expression "pMVar13->options" identifier -> field_identifier) & identifier) )) == identifier) )) (compound_statement "{\n    iVar3 = 1;\n  }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    iVar3 = MHD_connection_epoll_update_(connection);\n  }" else (compound_statement "{\n    iVar3 = MHD_connection_epoll_update_(connection);\n  }" { (expression_statement "iVar3 = MHD_connection_epoll_update_(connection);" (assignment_expression "iVar3 = MHD_connection_epoll_update_(connection)" identifier = (call_expression "MHD_connection_epoll_update_(connection)" identifier (argument_list "(connection)" ( identifier )))) ;) }))) (labeled_statement "LAB_00015f88:\n  do {\n    connection->in_idle = false;\n    sVar11 = in_t1;\n    str = in_t2;\nLAB_00015f8c:\n    if (iVar2 == *(int *)puVar1) {\n      return iVar3;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    if (sVar11 < 2) {\n      in_t1 = 1;\nLAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);\nLAB_00016c54:\n      connection->read_buffer_offset = in_t1;\n      in_t2 = str;\n    }\n    else {\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }\n    cVar10 = connection->suspended;\n    if (connection->state == MHD_CONNECTION_CLOSED) goto LAB_00015eac;\n    iVar3 = (int)connection->remaining_upload_size;\n    if (*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0) {\n      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;\n      iVar3 = 1;\n      if ((_Bool)cVar10 != false) goto LAB_00015f88;\n      iVar3 = connection->connection_timeout;\n      if (iVar3 == 0) goto LAB_00015edc;\nLAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();\n      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);\n      if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      goto LAB_00015f8c;\n    }\n    if (connection->have_chunked_upload == false) {\nLAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n    }\n    else {\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }\n    connection->state = MVar7;\n    if ((_Bool)cVar10 == false) {\n      MVar9 = connection->tls_state;\n      goto LAB_00015ec0;\n    }\n    iVar3 = 1;\n  } while( true );" statement_identifier : (do_statement "do {\n    connection->in_idle = false;\n    sVar11 = in_t1;\n    str = in_t2;\nLAB_00015f8c:\n    if (iVar2 == *(int *)puVar1) {\n      return iVar3;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    if (sVar11 < 2) {\n      in_t1 = 1;\nLAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);\nLAB_00016c54:\n      connection->read_buffer_offset = in_t1;\n      in_t2 = str;\n    }\n    else {\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }\n    cVar10 = connection->suspended;\n    if (connection->state == MHD_CONNECTION_CLOSED) goto LAB_00015eac;\n    iVar3 = (int)connection->remaining_upload_size;\n    if (*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0) {\n      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;\n      iVar3 = 1;\n      if ((_Bool)cVar10 != false) goto LAB_00015f88;\n      iVar3 = connection->connection_timeout;\n      if (iVar3 == 0) goto LAB_00015edc;\nLAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();\n      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);\n      if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      goto LAB_00015f8c;\n    }\n    if (connection->have_chunked_upload == false) {\nLAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n    }\n    else {\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }\n    connection->state = MVar7;\n    if ((_Bool)cVar10 == false) {\n      MVar9 = connection->tls_state;\n      goto LAB_00015ec0;\n    }\n    iVar3 = 1;\n  } while( true );" do (compound_statement "{\n    connection->in_idle = false;\n    sVar11 = in_t1;\n    str = in_t2;\nLAB_00015f8c:\n    if (iVar2 == *(int *)puVar1) {\n      return iVar3;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\n    if (sVar11 < 2) {\n      in_t1 = 1;\nLAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);\nLAB_00016c54:\n      connection->read_buffer_offset = in_t1;\n      in_t2 = str;\n    }\n    else {\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }\n    cVar10 = connection->suspended;\n    if (connection->state == MHD_CONNECTION_CLOSED) goto LAB_00015eac;\n    iVar3 = (int)connection->remaining_upload_size;\n    if (*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0) {\n      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;\n      iVar3 = 1;\n      if ((_Bool)cVar10 != false) goto LAB_00015f88;\n      iVar3 = connection->connection_timeout;\n      if (iVar3 == 0) goto LAB_00015edc;\nLAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();\n      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);\n      if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      goto LAB_00015f8c;\n    }\n    if (connection->have_chunked_upload == false) {\nLAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n    }\n    else {\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }\n    connection->state = MVar7;\n    if ((_Bool)cVar10 == false) {\n      MVar9 = connection->tls_state;\n      goto LAB_00015ec0;\n    }\n    iVar3 = 1;\n  }" { (expression_statement "connection->in_idle = false;" (assignment_expression "connection->in_idle = false" (field_expression "connection->in_idle" identifier -> field_identifier) = false) ;) (expression_statement "sVar11 = in_t1;" (assignment_expression "sVar11 = in_t1" identifier = identifier) ;) (expression_statement "str = in_t2;" (assignment_expression "str = in_t2" identifier = identifier) ;) (labeled_statement "LAB_00015f8c:\n    if (iVar2 == *(int *)puVar1) {\n      return iVar3;\n    }" statement_identifier : (if_statement "if (iVar2 == *(int *)puVar1) {\n      return iVar3;\n    }" if (parenthesized_expression "(iVar2 == *(int *)puVar1)" ( (binary_expression "iVar2 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return iVar3;\n    }" { (return_statement "return iVar3;" 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 "()" ( ))) ;) (if_statement "if (sVar11 < 2) {\n      in_t1 = 1;\nLAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);\nLAB_00016c54:\n      connection->read_buffer_offset = in_t1;\n      in_t2 = str;\n    }\n    else {\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }" if (parenthesized_expression "(sVar11 < 2)" ( (binary_expression "sVar11 < 2" identifier < number_literal) )) (compound_statement "{\n      in_t1 = 1;\nLAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);\nLAB_00016c54:\n      connection->read_buffer_offset = in_t1;\n      in_t2 = str;\n    }" { (expression_statement "in_t1 = 1;" (assignment_expression "in_t1 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00016c34:\n      (*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);" statement_identifier : (expression_statement "(*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1);" (call_expression "(*(code *)PTR_memmove_0003f2fc)(connection->read_buffer,str,in_t1)" (parenthesized_expression "(*(code *)PTR_memmove_0003f2fc)" ( (pointer_expression "*(code *)PTR_memmove_0003f2fc" * (cast_expression "(code *)PTR_memmove_0003f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(connection->read_buffer,str,in_t1)" ( (field_expression "connection->read_buffer" identifier -> field_identifier) , identifier , identifier ))) ;)) (labeled_statement "LAB_00016c54:\n      connection->read_buffer_offset = in_t1;" statement_identifier : (expression_statement "connection->read_buffer_offset = in_t1;" (assignment_expression "connection->read_buffer_offset = in_t1" (field_expression "connection->read_buffer_offset" identifier -> field_identifier) = identifier) ;)) (expression_statement "in_t2 = str;" (assignment_expression "in_t2 = str" identifier = identifier) ;) }) (else_clause "else {\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }" else (compound_statement "{\n      in_t1 = sVar11;\n      in_t2 = str;\n      sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);\n      if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }\n      MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);\n      MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);\n    }" { (expression_statement "in_t1 = sVar11;" (assignment_expression "in_t1 = sVar11" identifier = identifier) ;) (expression_statement "in_t2 = str;" (assignment_expression "in_t2 = str" identifier = identifier) ;) (expression_statement "sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size);" (assignment_expression "sVar5 = MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size)" identifier = (call_expression "MHD_strx_to_uint64_n_(str,0,&connection->current_chunk_size)" identifier (argument_list "(str,0,&connection->current_chunk_size)" ( identifier , number_literal , (pointer_expression "&connection->current_chunk_size" & (field_expression "connection->current_chunk_size" identifier -> field_identifier)) )))) ;) (if_statement "if (sVar5 == 0) {\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }" if (parenthesized_expression "(sVar5 == 0)" ( (binary_expression "sVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = 1;\n        pcVar8 = str + 1;\n        if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }\n        iVar6 = *(int *)&connection->current_chunk_size;\n        in_t1 = sVar11 - iVar3;\n        iVar3 = (int)connection->current_chunk_size;\n        *(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;\n        *(undefined4 *)&connection->current_chunk_offset = 0;\n        if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }\n        goto LAB_00016c54;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar8 = str + 1;" (assignment_expression "pcVar8 = str + 1" identifier = (binary_expression "str + 1" identifier + number_literal)) ;) (if_statement "if ((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }" if (parenthesized_expression "((1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n'))))" ( (binary_expression "(1 < sVar11) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))" (parenthesized_expression "(1 < sVar11)" ( (binary_expression "1 < sVar11" number_literal < identifier) )) && (parenthesized_expression "((*pcVar8 == '\r' || (*pcVar8 == '\n')))" ( (parenthesized_expression "(*pcVar8 == '\r' || (*pcVar8 == '\n'))" ( (binary_expression "*pcVar8 == '\r' || (*pcVar8 == '\n')" (binary_expression "*pcVar8 == '\r'" (pointer_expression "*pcVar8" * identifier) == (char_literal "'\r'" ' escape_sequence ')) || (parenthesized_expression "(*pcVar8 == '\n')" ( (binary_expression "*pcVar8 == '\n'" (pointer_expression "*pcVar8" * identifier) == (char_literal "'\n'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          iVar3 = 2;\n          pcVar8 = str + 2;\n        }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) (expression_statement "pcVar8 = str + 2;" (assignment_expression "pcVar8 = str + 2" identifier = (binary_expression "str + 2" identifier + number_literal)) ;) })) (expression_statement "iVar6 = *(int *)&connection->current_chunk_size;" (assignment_expression "iVar6 = *(int *)&connection->current_chunk_size" identifier = (pointer_expression "*(int *)&connection->current_chunk_size" * (cast_expression "(int *)&connection->current_chunk_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection->current_chunk_size" & (field_expression "connection->current_chunk_size" identifier -> field_identifier))))) ;) (expression_statement "in_t1 = sVar11 - iVar3;" (assignment_expression "in_t1 = sVar11 - iVar3" identifier = (binary_expression "sVar11 - iVar3" identifier - identifier)) ;) (expression_statement "iVar3 = (int)connection->current_chunk_size;" (assignment_expression "iVar3 = (int)connection->current_chunk_size" identifier = (cast_expression "(int)connection->current_chunk_size" ( (type_descriptor "int" primitive_type) ) (field_expression "connection->current_chunk_size" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&connection->current_chunk_offset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&connection->current_chunk_offset + 4)" * (cast_expression "(undefined4 *)((int)&connection->current_chunk_offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&connection->current_chunk_offset + 4)" ( (binary_expression "(int)&connection->current_chunk_offset + 4" (cast_expression "(int)&connection->current_chunk_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&connection->current_chunk_offset" & (field_expression "connection->current_chunk_offset" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&connection->current_chunk_offset = 0;" (assignment_expression "*(undefined4 *)&connection->current_chunk_offset = 0" (pointer_expression "*(undefined4 *)&connection->current_chunk_offset" * (cast_expression "(undefined4 *)&connection->current_chunk_offset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection->current_chunk_offset" & (field_expression "connection->current_chunk_offset" identifier -> field_identifier)))) = number_literal) ;) (if_statement "if (in_t1 == 0) {\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }\n        else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }" if (parenthesized_expression "(in_t1 == 0)" ( (binary_expression "in_t1 == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }\n        }" { (if_statement "if (iVar6 == 0 && iVar3 == 0) {\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }" if (parenthesized_expression "(iVar6 == 0 && iVar3 == 0)" ( (binary_expression "iVar6 == 0 && iVar3 == 0" (binary_expression "iVar6 == 0" identifier == number_literal) && (binary_expression "iVar3 == 0" identifier == number_literal)) )) (compound_statement "{\n            *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n            *(undefined4 *)&connection->remaining_upload_size = 0;\n          }" { (expression_statement "*(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0" (pointer_expression "*(undefined4 *)((int)&connection->remaining_upload_size + 4)" * (cast_expression "(undefined4 *)((int)&connection->remaining_upload_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&connection->remaining_upload_size + 4)" ( (binary_expression "(int)&connection->remaining_upload_size + 4" (cast_expression "(int)&connection->remaining_upload_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&connection->remaining_upload_size" & (field_expression "connection->remaining_upload_size" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&connection->remaining_upload_size = 0;" (assignment_expression "*(undefined4 *)&connection->remaining_upload_size = 0" (pointer_expression "*(undefined4 *)&connection->remaining_upload_size" * (cast_expression "(undefined4 *)&connection->remaining_upload_size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection->remaining_upload_size" & (field_expression "connection->remaining_upload_size" identifier -> field_identifier)))) = number_literal) ;) })) }) (else_clause "else {\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }" else (compound_statement "{\n          if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }\n          *(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;\n          *(undefined4 *)&connection->remaining_upload_size = 0;\n          str = pcVar8;\n          if (in_t1 != 0) goto LAB_00016c34;\n        }" { (if_statement "if (iVar6 != 0 || iVar3 != 0) {\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }" if (parenthesized_expression "(iVar6 != 0 || iVar3 != 0)" ( (binary_expression "iVar6 != 0 || iVar3 != 0" (binary_expression "iVar6 != 0" identifier != number_literal) || (binary_expression "iVar3 != 0" identifier != number_literal)) )) (compound_statement "{\n            iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);\n            return iVar2;\n          }" { (expression_statement "iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload);" (assignment_expression "iVar2 = FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload)" identifier = (call_expression "FUN_00016aa4(pcVar8,iVar3,connection->have_chunked_upload)" identifier (argument_list "(pcVar8,iVar3,connection->have_chunked_upload)" ( identifier , identifier , (field_expression "connection->have_chunked_upload" identifier -> field_identifier) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "*(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&connection->remaining_upload_size + 4) = 0" (pointer_expression "*(undefined4 *)((int)&connection->remaining_upload_size + 4)" * (cast_expression "(undefined4 *)((int)&connection->remaining_upload_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&connection->remaining_upload_size + 4)" ( (binary_expression "(int)&connection->remaining_upload_size + 4" (cast_expression "(int)&connection->remaining_upload_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&connection->remaining_upload_size" & (field_expression "connection->remaining_upload_size" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&connection->remaining_upload_size = 0;" (assignment_expression "*(undefined4 *)&connection->remaining_upload_size = 0" (pointer_expression "*(undefined4 *)&connection->remaining_upload_size" * (cast_expression "(undefined4 *)&connection->remaining_upload_size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection->remaining_upload_size" & (field_expression "connection->remaining_upload_size" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "str = pcVar8;" (assignment_expression "str = pcVar8" identifier = identifier) ;) (if_statement "if (in_t1 != 0) goto LAB_00016c34;" if (parenthesized_expression "(in_t1 != 0)" ( (binary_expression "in_t1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016c34;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00016c54;" goto statement_identifier ;) })) (expression_statement "MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0);" (call_expression "MHD_DLOG(connection->daemon,PTR_DAT_0003f05c + -0x48f0)" identifier (argument_list "(connection->daemon,PTR_DAT_0003f05c + -0x48f0)" ( (field_expression "connection->daemon" identifier -> field_identifier) , (binary_expression "PTR_DAT_0003f05c + -0x48f0" identifier + number_literal) ))) ;) (expression_statement "MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);" (call_expression "MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_WITH_ERROR)" identifier (argument_list "(connection,MHD_REQUEST_TERMINATED_WITH_ERROR)" ( identifier , identifier ))) ;) }))) (expression_statement "cVar10 = connection->suspended;" (assignment_expression "cVar10 = connection->suspended" identifier = (field_expression "connection->suspended" identifier -> field_identifier)) ;) (if_statement "if (connection->state == MHD_CONNECTION_CLOSED) goto LAB_00015eac;" if (parenthesized_expression "(connection->state == MHD_CONNECTION_CLOSED)" ( (binary_expression "connection->state == MHD_CONNECTION_CLOSED" (field_expression "connection->state" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_00015eac;" goto statement_identifier ;)) (expression_statement "iVar3 = (int)connection->remaining_upload_size;" (assignment_expression "iVar3 = (int)connection->remaining_upload_size" identifier = (cast_expression "(int)connection->remaining_upload_size" ( (type_descriptor "int" primitive_type) ) (field_expression "connection->remaining_upload_size" identifier -> field_identifier))) ;) (if_statement "if (*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0) {\n      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;\n      iVar3 = 1;\n      if ((_Bool)cVar10 != false) goto LAB_00015f88;\n      iVar3 = connection->connection_timeout;\n      if (iVar3 == 0) goto LAB_00015edc;\nLAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();\n      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);\n      if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      goto LAB_00015f8c;\n    }" if (parenthesized_expression "(*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0)" ( (binary_expression "*(int *)&connection->remaining_upload_size != 0 || iVar3 != 0" (binary_expression "*(int *)&connection->remaining_upload_size != 0" (pointer_expression "*(int *)&connection->remaining_upload_size" * (cast_expression "(int *)&connection->remaining_upload_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection->remaining_upload_size" & (field_expression "connection->remaining_upload_size" identifier -> field_identifier)))) != number_literal) || (binary_expression "iVar3 != 0" identifier != number_literal)) )) (compound_statement "{\n      if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;\n      iVar3 = 1;\n      if ((_Bool)cVar10 != false) goto LAB_00015f88;\n      iVar3 = connection->connection_timeout;\n      if (iVar3 == 0) goto LAB_00015edc;\nLAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();\n      puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);\n      if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      goto LAB_00015f8c;\n    }" { (if_statement "if ((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))\n      goto LAB_00016658;" if (parenthesized_expression "((((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))" ( (binary_expression "(((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)) && (connection->read_closed != false)" (parenthesized_expression "(((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0))" ( (binary_expression "((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)) &&\n          (connection->read_buffer_offset == 0)" (parenthesized_expression "((*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1))" ( (binary_expression "(*(int *)&connection->remaining_upload_size == -1) && (iVar3 == -1)" (parenthesized_expression "(*(int *)&connection->remaining_upload_size == -1)" ( (binary_expression "*(int *)&connection->remaining_upload_size == -1" (pointer_expression "*(int *)&connection->remaining_upload_size" * (cast_expression "(int *)&connection->remaining_upload_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&connection->remaining_upload_size" & (field_expression "connection->remaining_upload_size" identifier -> field_identifier)))) == number_literal) )) && (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) ))) )) && (parenthesized_expression "(connection->read_buffer_offset == 0)" ( (binary_expression "connection->read_buffer_offset == 0" (field_expression "connection->read_buffer_offset" identifier -> field_identifier) == number_literal) ))) )) && (parenthesized_expression "(connection->read_closed != false)" ( (binary_expression "connection->read_closed != false" (field_expression "connection->read_closed" identifier -> field_identifier) != false) ))) )) (goto_statement "goto LAB_00016658;" goto statement_identifier ;)) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (if_statement "if ((_Bool)cVar10 != false) goto LAB_00015f88;" if (parenthesized_expression "((_Bool)cVar10 != false)" ( (binary_expression "(_Bool)cVar10 != false" (cast_expression "(_Bool)cVar10" ( (type_descriptor "_Bool" type_identifier) ) identifier) != false) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) (expression_statement "iVar3 = connection->connection_timeout;" (assignment_expression "iVar3 = connection->connection_timeout" identifier = (field_expression "connection->connection_timeout" identifier -> field_identifier)) ;) (if_statement "if (iVar3 == 0) goto LAB_00015edc;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;)) (labeled_statement "LAB_00016168:\n      tVar4 = MHD_monotonic_sec_counter();" statement_identifier : (expression_statement "tVar4 = MHD_monotonic_sec_counter();" (assignment_expression "tVar4 = MHD_monotonic_sec_counter()" identifier = (call_expression "MHD_monotonic_sec_counter()" identifier (argument_list "()" ( )))) ;)) (expression_statement "puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity);" (assignment_expression "puVar12 = (undefined *)(uint)(iVar3 < tVar4 - connection->last_activity)" identifier = (cast_expression "(undefined *)(uint)(iVar3 < tVar4 - connection->last_activity)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar3 < tVar4 - connection->last_activity)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 < tVar4 - connection->last_activity)" ( (binary_expression "iVar3 < tVar4 - connection->last_activity" identifier < (binary_expression "tVar4 - connection->last_activity" identifier - (field_expression "connection->last_activity" identifier -> field_identifier))) ))))) ;) (if_statement "if (puVar12 == (undefined *)0x0) {\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }\n      else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }" if (parenthesized_expression "(puVar12 == (undefined *)0x0)" ( (binary_expression "puVar12 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar3 = 1;\n        if (connection->suspended == false) goto LAB_00015edc;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (if_statement "if (connection->suspended == false) goto LAB_00015edc;" if (parenthesized_expression "(connection->suspended == false)" ( (binary_expression "connection->suspended == false" (field_expression "connection->suspended" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;)) (expression_statement "connection->in_idle = false;" (assignment_expression "connection->in_idle = false" (field_expression "connection->in_idle" identifier -> field_identifier) = false) ;) (expression_statement "sVar11 = in_t1;" (assignment_expression "sVar11 = in_t1" identifier = identifier) ;) (expression_statement "str = in_t2;" (assignment_expression "str = in_t2" identifier = identifier) ;) }) (else_clause "else {\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }" else (compound_statement "{\n        MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);\n        iVar3 = 1;\n        connection->in_idle = false;\n        sVar11 = in_t1;\n        str = in_t2;\n      }" { (expression_statement "MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);" (call_expression "MHD_connection_close_(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED)" identifier (argument_list "(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED)" ( identifier , identifier ))) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "connection->in_idle = false;" (assignment_expression "connection->in_idle = false" (field_expression "connection->in_idle" identifier -> field_identifier) = false) ;) (expression_statement "sVar11 = in_t1;" (assignment_expression "sVar11 = in_t1" identifier = identifier) ;) (expression_statement "str = in_t2;" (assignment_expression "str = in_t2" identifier = identifier) ;) }))) (goto_statement "goto LAB_00015f8c;" goto statement_identifier ;) })) (if_statement "if (connection->have_chunked_upload == false) {\nLAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n    }\n    else {\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }" if (parenthesized_expression "(connection->have_chunked_upload == false)" ( (binary_expression "connection->have_chunked_upload == false" (field_expression "connection->have_chunked_upload" identifier -> field_identifier) == false) )) (compound_statement "{\nLAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n    }" { (labeled_statement "LAB_00016658:\n      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;" statement_identifier : (expression_statement "MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;" (assignment_expression "MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED" identifier = identifier) ;)) }) (else_clause "else {\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }" else (compound_statement "{\n      MVar7 = MHD_CONNECTION_BODY_RECEIVED;\n      if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }\n    }" { (expression_statement "MVar7 = MHD_CONNECTION_BODY_RECEIVED;" (assignment_expression "MVar7 = MHD_CONNECTION_BODY_RECEIVED" identifier = identifier) ;) (if_statement "if (connection->read_closed != false) {\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }" if (parenthesized_expression "(connection->read_closed != false)" ( (binary_expression "connection->read_closed != false" (field_expression "connection->read_closed" identifier -> field_identifier) != false) )) (compound_statement "{\n        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;\n      }" { (expression_statement "MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;" (assignment_expression "MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED" identifier = identifier) ;) })) }))) (expression_statement "connection->state = MVar7;" (assignment_expression "connection->state = MVar7" (field_expression "connection->state" identifier -> field_identifier) = identifier) ;) (if_statement "if ((_Bool)cVar10 == false) {\n      MVar9 = connection->tls_state;\n      goto LAB_00015ec0;\n    }" if (parenthesized_expression "((_Bool)cVar10 == false)" ( (binary_expression "(_Bool)cVar10 == false" (cast_expression "(_Bool)cVar10" ( (type_descriptor "_Bool" type_identifier) ) identifier) == false) )) (compound_statement "{\n      MVar9 = connection->tls_state;\n      goto LAB_00015ec0;\n    }" { (expression_statement "MVar9 = connection->tls_state;" (assignment_expression "MVar9 = connection->tls_state" identifier = (field_expression "connection->tls_state" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00015ec0;" goto statement_identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "undefined4 FUN_00015e38(int param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  undefined *puVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint in_t1;\n  uint uVar13;\n  char *in_t2;\n  char *pcVar14;\n  undefined4 *in_t3;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  int iVar18;\n  uint uVar19;\n  undefined4 local_4c;\n  int local_48;\n  uint local_3c [4];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar16 = PTR_DAT_0003f05c + -0x45c0;\n  iVar18 = *(int *)(param_1 + 0x18);\n  cVar10 = *(char *)(param_1 + 0xf5);\n  puVar17 = PTR_DAT_0003f05c + -0x4884;\n  *(undefined1 *)(param_1 + 0xab) = 1;\nLAB_00015eac:\n  uVar4 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  iVar8 = *(int *)(param_1 + 0xf0);\nLAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }\n  iVar8 = *(int *)(param_1 + 0x98);\n  if (iVar8 != 0) goto LAB_00016168;\nLAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);\n  puVar16 = (undefined *)0x1;\n  if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }\n  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }\nLAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );\n}\n\n" (function_definition "undefined4 FUN_00015e38(int param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  undefined *puVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint in_t1;\n  uint uVar13;\n  char *in_t2;\n  char *pcVar14;\n  undefined4 *in_t3;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  int iVar18;\n  uint uVar19;\n  undefined4 local_4c;\n  int local_48;\n  uint local_3c [4];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar16 = PTR_DAT_0003f05c + -0x45c0;\n  iVar18 = *(int *)(param_1 + 0x18);\n  cVar10 = *(char *)(param_1 + 0xf5);\n  puVar17 = PTR_DAT_0003f05c + -0x4884;\n  *(undefined1 *)(param_1 + 0xab) = 1;\nLAB_00015eac:\n  uVar4 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  iVar8 = *(int *)(param_1 + 0xf0);\nLAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }\n  iVar8 = *(int *)(param_1 + 0x98);\n  if (iVar8 != 0) goto LAB_00016168;\nLAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);\n  puVar16 = (undefined *)0x1;\n  if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }\n  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }\nLAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );\n}" type_identifier (function_declarator "FUN_00015e38(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  undefined *puVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint in_t1;\n  uint uVar13;\n  char *in_t2;\n  char *pcVar14;\n  undefined4 *in_t3;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  int iVar18;\n  uint uVar19;\n  undefined4 local_4c;\n  int local_48;\n  uint local_3c [4];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar16 = PTR_DAT_0003f05c + -0x45c0;\n  iVar18 = *(int *)(param_1 + 0x18);\n  cVar10 = *(char *)(param_1 + 0xf5);\n  puVar17 = PTR_DAT_0003f05c + -0x4884;\n  *(undefined1 *)(param_1 + 0xab) = 1;\nLAB_00015eac:\n  uVar4 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  iVar8 = *(int *)(param_1 + 0xf0);\nLAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }\n  iVar8 = *(int *)(param_1 + 0x98);\n  if (iVar8 != 0) goto LAB_00016168;\nLAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);\n  puVar16 = (undefined *)0x1;\n  if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }\n  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }\nLAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint in_t1;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char *in_t2;" primitive_type (pointer_declarator "*in_t2" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "undefined4 *in_t3;" type_identifier (pointer_declarator "*in_t3" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_3c [4];" type_identifier (array_declarator "local_3c [4]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar3 = 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 "puVar16 = PTR_DAT_0003f05c + -0x45c0;" (assignment_expression "puVar16 = PTR_DAT_0003f05c + -0x45c0" identifier = (binary_expression "PTR_DAT_0003f05c + -0x45c0" identifier + number_literal)) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "cVar10 = *(char *)(param_1 + 0xf5);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xf5)" identifier = (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = PTR_DAT_0003f05c + -0x4884;" (assignment_expression "puVar17 = PTR_DAT_0003f05c + -0x4884" identifier = (binary_expression "PTR_DAT_0003f05c + -0x4884" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" * (cast_expression "(undefined1 *)(param_1 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xab)" ( (binary_expression "param_1 + 0xab" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00015eac:\n  uVar4 = 1;" statement_identifier : (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;)) (if_statement "if (cVar10 != '\0') goto LAB_00015f88;" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" identifier = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" statement_identifier : (if_statement "if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" if (parenthesized_expression "((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15))" ( (binary_expression "(1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)" (parenthesized_expression "(1 < iVar8 - 1U)" ( (binary_expression "1 < iVar8 - 1U" number_literal < (binary_expression "iVar8 - 1U" identifier - number_literal)) )) && (parenthesized_expression "(*(uint *)(param_1 + 0xb4) < 0x15)" ( (binary_expression "*(uint *)(param_1 + 0xb4) < 0x15" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" { (expression_statement "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();" (assignment_expression "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" ( (binary_expression "&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" * (cast_expression "(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" ( (binary_expression "puVar16 + *(uint *)(param_1 + 0xb4) * 4" identifier + (binary_expression "*(uint *)(param_1 + 0xb4) * 4" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "iVar8 = *(int *)(param_1 + 0x98);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x98)" identifier = (pointer_expression "*(int *)(param_1 + 0x98)" * (cast_expression "(int *)(param_1 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) goto LAB_00016168;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (labeled_statement "LAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);" statement_identifier : (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" identifier = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;)) (expression_statement "puVar16 = (undefined *)0x1;" (assignment_expression "puVar16 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }" { (labeled_statement "LAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;" statement_identifier : (expression_statement "puVar17 = PTR_0003f058 + 0x27f0;" (assignment_expression "puVar17 = PTR_0003f058 + 0x27f0" identifier = (binary_expression "PTR_0003f058 + 0x27f0" identifier + number_literal)) ;)) (expression_statement "puVar16 = PTR_DAT_0003f05c + -0x4610;" (assignment_expression "puVar16 = PTR_DAT_0003f05c + -0x4610" identifier = (binary_expression "PTR_DAT_0003f05c + -0x4610" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }" if (parenthesized_expression "(*(uint *)(param_1 + 0xb4) < 0x14)" ( (binary_expression "*(uint *)(param_1 + 0xb4) < 0x14" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }" { (expression_statement "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();" (assignment_expression "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" ( (binary_expression "&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" * (cast_expression "(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" ( (binary_expression "puVar16 + *(uint *)(param_1 + 0xb4) * 4" identifier + (binary_expression "*(uint *)(param_1 + 0xb4) * 4" (pointer_expression "*(uint *)(param_1 + 0xb4)" * (cast_expression "(uint *)(param_1 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar4;" return identifier ;) })) (labeled_statement "switchD_00015f24_caseD_3:\n    uVar4 = 1;" statement_identifier : (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;)) (if_statement "if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;" if (parenthesized_expression "(*(char *)(param_1 + 0xf5) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xf5) != '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" else (compound_statement "{\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" { (if_statement "if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }" { (if_statement "if (iVar8 != 2) goto LAB_00015eec;" if (parenthesized_expression "(iVar8 != 2)" ( (binary_expression "iVar8 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00015eec;" goto statement_identifier ;)) (expression_statement "iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));" (assignment_expression "iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4))" identifier = (call_expression "(*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4))" (parenthesized_expression "(*(code *)PTR_gnutls_record_get_direction_0003f27c)" ( (pointer_expression "*(code *)PTR_gnutls_record_get_direction_0003f27c" * (cast_expression "(code *)PTR_gnutls_record_get_direction_0003f27c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0xe4))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" * (cast_expression "(undefined4 *)(param_1 + 0xb8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" else (compound_statement "{\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" * (cast_expression "(undefined4 *)(param_1 + 0xb8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto switchD_00015f24_caseD_3;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" * (cast_expression "(undefined4 *)(param_1 + 0xb8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb8)" ( (binary_expression "param_1 + 0xb8" identifier + number_literal) )))) = number_literal) ;) }))) (if_statement "if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }" if (parenthesized_expression "((*(uint *)(iVar18 + 0xf8) & 0x200) == 0)" ( (binary_expression "(*(uint *)(iVar18 + 0xf8) & 0x200) == 0" (parenthesized_expression "(*(uint *)(iVar18 + 0xf8) & 0x200)" ( (binary_expression "*(uint *)(iVar18 + 0xf8) & 0x200" (pointer_expression "*(uint *)(iVar18 + 0xf8)" * (cast_expression "(uint *)(iVar18 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xf8)" ( (binary_expression "iVar18 + 0xf8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar4 = 1;\n  }" { (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    uVar4 = FUN_000150d8(param_1);\n  }" else (compound_statement "{\n    uVar4 = FUN_000150d8(param_1);\n  }" { (expression_statement "uVar4 = FUN_000150d8(param_1);" (assignment_expression "uVar4 = FUN_000150d8(param_1)" identifier = (call_expression "FUN_000150d8(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }))) (labeled_statement "LAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );" statement_identifier : (do_statement "do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );" do (compound_statement "{\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  }" { (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" * (cast_expression "(undefined1 *)(param_1 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xab)" ( (binary_expression "param_1 + 0xab" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" identifier = identifier) ;) (labeled_statement "LAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return uVar4;\n    }" { (return_statement "return uVar4;" 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 "()" ( ))) ;) (labeled_statement "LAB_000179e4:\n    uVar12 = 0;" statement_identifier : (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;)) (if_statement "if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) )) (compound_statement "{\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }" { (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" identifier = identifier) ;) (do_statement "do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );" do (compound_statement "{\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      }" { (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" identifier = identifier) ;) (expression_statement "in_t2 = pcVar14;" (assignment_expression "in_t2 = pcVar14" identifier = identifier) ;) (expression_statement "puVar15 = in_t3;" (assignment_expression "puVar15 = in_t3" identifier = identifier) ;) (expression_statement "uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);" (assignment_expression "uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200)" identifier = (call_expression "FUN_00022050(pcVar14,uVar12,param_1 + 200)" identifier (argument_list "(pcVar14,uVar12,param_1 + 200)" ( identifier , identifier , (binary_expression "param_1 + 200" identifier + number_literal) )))) ;) (if_statement "if (uVar6 != uVar12) goto LAB_00017458;" if (parenthesized_expression "(uVar6 != uVar12)" ( (binary_expression "uVar6 != uVar12" identifier != identifier) )) (goto_statement "goto LAB_00017458;" goto statement_identifier ;)) (expression_statement "in_t2 = pcVar14 + uVar11;" (assignment_expression "in_t2 = pcVar14 + uVar11" identifier = (binary_expression "pcVar14 + uVar11" identifier + identifier)) ;) (if_statement "if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }" if (parenthesized_expression "((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n'))))" ( (binary_expression "(uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))" (parenthesized_expression "(uVar11 < uVar13)" ( (binary_expression "uVar11 < uVar13" identifier < identifier) )) && (parenthesized_expression "((*in_t2 == '\r' || (*in_t2 == '\n')))" ( (parenthesized_expression "(*in_t2 == '\r' || (*in_t2 == '\n'))" ( (binary_expression "*in_t2 == '\r' || (*in_t2 == '\n')" (binary_expression "*in_t2 == '\r'" (pointer_expression "*in_t2" * identifier) == (char_literal "'\r'" ' escape_sequence ')) || (parenthesized_expression "(*in_t2 == '\n')" ( (binary_expression "*in_t2 == '\n'" (pointer_expression "*in_t2" * identifier) == (char_literal "'\n'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }" { (expression_statement "uVar11 = uVar19 + 2;" (assignment_expression "uVar11 = uVar19 + 2" identifier = (binary_expression "uVar19 + 2" identifier + number_literal)) ;) (expression_statement "in_t2 = pcVar14 + uVar11;" (assignment_expression "in_t2 = pcVar14 + uVar11" identifier = (binary_expression "pcVar14 + uVar11" identifier + identifier)) ;) })) (expression_statement "uVar13 = uVar13 - uVar11;" (assignment_expression "uVar13 = uVar13 - uVar11" identifier = (binary_expression "uVar13 - uVar11" identifier - identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd4)" * (cast_expression "(undefined4 *)(param_1 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd0)" * (cast_expression "(undefined4 *)(param_1 + 0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }" { (if_statement "if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }" if (parenthesized_expression "(*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0)" ( (binary_expression "*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0" (binary_expression "*(int *)(param_1 + 200) == 0" (pointer_expression "*(int *)(param_1 + 200)" * (cast_expression "(int *)(param_1 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(param_1 + 0xcc) == 0" (pointer_expression "*(int *)(param_1 + 0xcc)" * (cast_expression "(int *)(param_1 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_00016c54;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0)" ( (binary_expression "*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0" (binary_expression "*(int *)(param_1 + 200) == 0" (pointer_expression "*(int *)(param_1 + 200)" * (cast_expression "(int *)(param_1 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) == number_literal) && (binary_expression "*(int *)(param_1 + 0xcc) == 0" (pointer_expression "*(int *)(param_1 + 0xcc)" * (cast_expression "(int *)(param_1 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) )))) == number_literal)) )) (compound_statement "{\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }" { (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00016c2c;" goto statement_identifier ;) })) (expression_statement "cVar10 = *(char *)(param_1 + 0xc0);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xc0)" identifier = (pointer_expression "*(char *)(param_1 + 0xc0)" * (cast_expression "(char *)(param_1 + 0xc0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc0)" ( (binary_expression "param_1 + 0xc0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);" statement_identifier : (expression_statement "iVar8 = *(int *)(param_1 + 0x78);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x78)" identifier = (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;)) (expression_statement "uVar12 = *(uint *)(param_1 + 0x7c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x7c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x7c)" * (cast_expression "(uint *)(param_1 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" identifier = identifier) ;) (if_statement "if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }" if (parenthesized_expression "(((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff))" ( (binary_expression "((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)" (parenthesized_expression "((cVar10 == '\0') || (iVar8 != -1))" ( (binary_expression "(cVar10 == '\0') || (iVar8 != -1)" (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) ))) )) || (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }" { (if_statement "if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;" if (parenthesized_expression "((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))" ( (binary_expression "(-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1)" (parenthesized_expression "(-iVar8 == (uint)(uVar12 - 1 < uVar12))" ( (binary_expression "-iVar8 == (uint)(uVar12 - 1 < uVar12)" (unary_expression "-iVar8" - identifier) == (call_expression "(uint)(uVar12 - 1 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 - 1 < uVar12)" ( (binary_expression "uVar12 - 1 < uVar12" (binary_expression "uVar12 - 1" identifier - number_literal) < identifier) )))) )) && (parenthesized_expression "(0xfffffffd < uVar12 - 1)" ( (binary_expression "0xfffffffd < uVar12 - 1" number_literal < (binary_expression "uVar12 - 1" identifier - number_literal)) ))) )) (goto_statement "goto LAB_00016f9c;" goto statement_identifier ;)) (if_statement "if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" if (parenthesized_expression "((iVar8 == 0) && (uVar12 < uVar13))" ( (binary_expression "(iVar8 == 0) && (uVar12 < uVar13)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar12 < uVar13)" ( (binary_expression "uVar12 < uVar13" identifier < identifier) ))) )) (compound_statement "{\n            bVar2 = false;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" else (compound_statement "{\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) }))) (labeled_statement "LAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;" statement_identifier : (expression_statement "*(undefined1 *)(param_1 + 0xa0) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xa0) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xa0)" * (cast_expression "(undefined1 *)(param_1 + 0xa0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "local_3c[0] = uVar12;" (assignment_expression "local_3c[0] = uVar12" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);" (assignment_expression "iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" identifier = (call_expression "(*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" (parenthesized_expression "(*(code *)*in_t3)" ( (pointer_expression "*(code *)*in_t3" * (cast_expression "(code *)*in_t3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_t3" * identifier))) )) (argument_list "(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" ( (subscript_expression "in_t3[1]" identifier [ number_literal ]) , identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) , identifier , identifier , (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) ;) (if_statement "if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }" { (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = PTR_DAT_0003f05c + -0x4fc0;" (assignment_expression "puVar9 = PTR_DAT_0003f05c + -0x4fc0" identifier = (binary_expression "PTR_DAT_0003f05c + -0x4fc0" identifier + number_literal)) ;) (goto_statement "goto LAB_00017464;" goto statement_identifier ;) })) (if_statement "if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }" if (parenthesized_expression "(uVar12 < local_3c[0])" ( (binary_expression "uVar12 < local_3c[0]" identifier < (subscript_expression "local_3c[0]" identifier [ number_literal ])) )) (compound_statement "{\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }" { (expression_statement "(**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c)" (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,local_48 + -0x51c8,0x9f3,local_4c)" ( (pointer_expression "*(undefined4 *)PTR_DAT_0003f068" * (cast_expression "(undefined4 *)PTR_DAT_0003f068" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "local_48 + -0x51c8" identifier + number_literal) , number_literal , identifier ))) ;) })) (if_statement "if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }" if (parenthesized_expression "(local_3c[0] != 0)" ( (binary_expression "local_3c[0] != 0" (subscript_expression "local_3c[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }" { (if_statement "if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" if (parenthesized_expression "(((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0'))" ( (binary_expression "((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')" (parenthesized_expression "((in_t3[0x3e] & 8) == 0)" ( (binary_expression "(in_t3[0x3e] & 8) == 0" (parenthesized_expression "(in_t3[0x3e] & 8)" ( (binary_expression "in_t3[0x3e] & 8" (subscript_expression "in_t3[0x3e]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(param_1 + 0xf5) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xf5) != '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n              bVar2 = false;\n            }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }) (else_clause "else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" else (compound_statement "{\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" { (expression_statement "FUN_00020df0(in_t3,puVar17);" (call_expression "FUN_00020df0(in_t3,puVar17)" identifier (argument_list "(in_t3,puVar17)" ( identifier , identifier ))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) }))) })) (expression_statement "cVar10 = *(char *)(param_1 + 0xc0);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xc0)" identifier = (pointer_expression "*(char *)(param_1 + 0xc0)" * (cast_expression "(char *)(param_1 + 0xc0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc0)" ( (binary_expression "param_1 + 0xc0" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = uVar12 - local_3c[0];" (assignment_expression "iVar8 = uVar12 - local_3c[0]" identifier = (binary_expression "uVar12 - local_3c[0]" identifier - (subscript_expression "local_3c[0]" identifier [ number_literal ]))) ;) (if_statement "if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }" { (expression_statement "uVar19 = *(uint *)(param_1 + 0xd4);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0xd4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar19 + iVar8;" (assignment_expression "uVar11 = uVar19 + iVar8" identifier = (binary_expression "uVar19 + iVar8" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0xd4) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0xd4) = uVar11" (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);" (assignment_expression "*(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0)" (pointer_expression "*(uint *)(param_1 + 0xd0)" * (cast_expression "(uint *)(param_1 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) = (binary_expression "(uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0)" (call_expression "(uint)(uVar11 < uVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar19)" ( (binary_expression "uVar11 < uVar19" identifier < identifier) ))) + (pointer_expression "*(int *)(param_1 + 0xd0)" * (cast_expression "(int *)(param_1 + 0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))))) ;) })) (expression_statement "uVar19 = *(uint *)(param_1 + 0x7c);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0x7c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x7c)" * (cast_expression "(uint *)(param_1 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "in_t2 = in_t2 + iVar8;" (assignment_expression "in_t2 = in_t2 + iVar8" identifier = (binary_expression "in_t2 + iVar8" identifier + identifier)) ;) (expression_statement "uVar13 = local_3c[0] + (uVar13 - uVar12);" (assignment_expression "uVar13 = local_3c[0] + (uVar13 - uVar12)" identifier = (binary_expression "local_3c[0] + (uVar13 - uVar12)" (subscript_expression "local_3c[0]" identifier [ number_literal ]) + (parenthesized_expression "(uVar13 - uVar12)" ( (binary_expression "uVar13 - uVar12" identifier - identifier) )))) ;) (if_statement "if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }" if (parenthesized_expression "((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff))" ( (binary_expression "(*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)" (parenthesized_expression "(*(int *)(param_1 + 0x78) != -1)" ( (binary_expression "*(int *)(param_1 + 0x78) != -1" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(uVar19 != 0xffffffff)" ( (binary_expression "uVar19 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }" { (expression_statement "*(uint *)(param_1 + 0x7c) = uVar19 - iVar8;" (assignment_expression "*(uint *)(param_1 + 0x7c) = uVar19 - iVar8" (pointer_expression "*(uint *)(param_1 + 0x7c)" * (cast_expression "(uint *)(param_1 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) = (binary_expression "uVar19 - iVar8" identifier - identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);" (assignment_expression "*(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8)" (pointer_expression "*(uint *)(param_1 + 0x78)" * (cast_expression "(uint *)(param_1 + 0x78)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8)" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) - (call_expression "(uint)(uVar19 < uVar19 - iVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar19 - iVar8)" ( (binary_expression "uVar19 < uVar19 - iVar8" identifier < (binary_expression "uVar19 - iVar8" identifier - identifier)) ))))) ;) })) (if_statement "if (!bVar2) goto LAB_00016c2c;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (goto_statement "goto LAB_00016c2c;" goto statement_identifier ;)) (goto_statement "goto LAB_00016aa4;" goto statement_identifier ;) })) (expression_statement "uVar11 = *(uint *)(param_1 + 0xd0);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xd0)" identifier = (pointer_expression "*(uint *)(param_1 + 0xd0)" * (cast_expression "(uint *)(param_1 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(param_1 + 200);" (assignment_expression "uVar19 = *(uint *)(param_1 + 200)" identifier = (pointer_expression "*(uint *)(param_1 + 200)" * (cast_expression "(uint *)(param_1 + 200)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(uint *)(param_1 + 0xd4);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0xd4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xd4)" * (cast_expression "(uint *)(param_1 + 0xd4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 0xcc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xcc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xcc)" * (cast_expression "(uint *)(param_1 + 0xcc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) ))))) ;) (if_statement "if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }" if (parenthesized_expression "((uVar11 != uVar19) || (uVar12 != uVar6))" ( (binary_expression "(uVar11 != uVar19) || (uVar12 != uVar6)" (parenthesized_expression "(uVar11 != uVar19)" ( (binary_expression "uVar11 != uVar19" identifier != identifier) )) || (parenthesized_expression "(uVar12 != uVar6)" ( (binary_expression "uVar12 != uVar6" identifier != identifier) ))) )) (compound_statement "{\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }" { (if_statement "if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;" if (parenthesized_expression "((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12))))" ( (binary_expression "(uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))" (parenthesized_expression "(uVar19 <= uVar11)" ( (binary_expression "uVar19 <= uVar11" identifier <= identifier) )) && (parenthesized_expression "((uVar19 != uVar11 || (uVar6 <= uVar12)))" ( (parenthesized_expression "(uVar19 != uVar11 || (uVar6 <= uVar12))" ( (binary_expression "uVar19 != uVar11 || (uVar6 <= uVar12)" (binary_expression "uVar19 != uVar11" identifier != identifier) || (parenthesized_expression "(uVar6 <= uVar12)" ( (binary_expression "uVar6 <= uVar12" identifier <= identifier) ))) )) ))) )) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;)) (expression_statement "uVar12 = uVar6 - uVar12;" (assignment_expression "uVar12 = uVar6 - uVar12" identifier = (binary_expression "uVar6 - uVar12" identifier - identifier)) ;) (if_statement "if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" if (parenthesized_expression "((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12))" ( (binary_expression "(uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)" (parenthesized_expression "(uVar19 - uVar11 != (uint)(uVar6 < uVar12))" ( (binary_expression "uVar19 - uVar11 != (uint)(uVar6 < uVar12)" (binary_expression "uVar19 - uVar11" identifier - identifier) != (call_expression "(uint)(uVar6 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar6 < uVar12)" ( (binary_expression "uVar6 < uVar12" identifier < identifier) )))) )) || (parenthesized_expression "(bVar2 = uVar12 < uVar13, uVar13 < uVar12)" ( (comma_expression "bVar2 = uVar12 < uVar13, uVar13 < uVar12" (assignment_expression "bVar2 = uVar12 < uVar13" identifier = (binary_expression "uVar12 < uVar13" identifier < identifier)) , (binary_expression "uVar13 < uVar12" identifier < identifier)) ))) )) (compound_statement "{\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" { (labeled_statement "LAB_00016f9c:\n            bVar2 = false;" statement_identifier : (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;)) (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) })) (goto_statement "goto LAB_00016af0;" goto statement_identifier ;) })) (if_statement "if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }" if (parenthesized_expression "((uVar11 != 0 || uVar12 != 0) && (1 < uVar13))" ( (binary_expression "(uVar11 != 0 || uVar12 != 0) && (1 < uVar13)" (parenthesized_expression "(uVar11 != 0 || uVar12 != 0)" ( (binary_expression "uVar11 != 0 || uVar12 != 0" (binary_expression "uVar11 != 0" identifier != number_literal) || (binary_expression "uVar12 != 0" identifier != number_literal)) )) && (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) ))) )) (compound_statement "{\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }" { (if_statement "if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;" if (parenthesized_expression "((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n'))" ( (binary_expression "(*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')" (parenthesized_expression "(*in_t2 != '\r')" ( (binary_expression "*in_t2 != '\r'" (pointer_expression "*in_t2" * identifier) != (char_literal "'\r'" ' escape_sequence ')) )) && (parenthesized_expression "(puVar15 = in_t3, *in_t2 != '\n')" ( (comma_expression "puVar15 = in_t3, *in_t2 != '\n'" (assignment_expression "puVar15 = in_t3" identifier = identifier) , (binary_expression "*in_t2 != '\n'" (pointer_expression "*in_t2" * identifier) != (char_literal "'\n'" ' escape_sequence '))) ))) )) (goto_statement "goto LAB_00017458;" goto statement_identifier ;)) (if_statement "if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" if (parenthesized_expression "(in_t2[1] == '\r')" ( (binary_expression "in_t2[1] == '\r'" (subscript_expression "in_t2[1]" identifier [ number_literal ]) == (char_literal "'\r'" ' escape_sequence ')) )) (compound_statement "{\n            iVar8 = 2;\n          }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) }) (else_clause "else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" else (compound_statement "{\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" { (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (if_statement "if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }" if (parenthesized_expression "(in_t2[1] != '\n')" ( (binary_expression "in_t2[1] != '\n'" (subscript_expression "in_t2[1]" identifier [ number_literal ]) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n              iVar8 = 1;\n            }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) })) }))) (expression_statement "uVar13 = uVar13 - iVar8;" (assignment_expression "uVar13 = uVar13 - iVar8" identifier = (binary_expression "uVar13 - iVar8" identifier - identifier)) ;) (expression_statement "in_t2 = in_t2 + iVar8;" (assignment_expression "in_t2 = in_t2 + iVar8" identifier = (binary_expression "in_t2 + iVar8" identifier + identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd4)" * (cast_expression "(undefined4 *)(param_1 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0xcc) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xcc) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xcc)" * (cast_expression "(undefined4 *)(param_1 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xcc)" ( (binary_expression "param_1 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd0)" * (cast_expression "(undefined4 *)(param_1 + 0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 200) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 200) = 0" (pointer_expression "*(undefined4 *)(param_1 + 200)" * (cast_expression "(undefined4 *)(param_1 + 200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 200)" ( (binary_expression "param_1 + 200" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_000175d8:\n        pcVar14 = in_t2;" statement_identifier : (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" identifier = identifier) ;)) (if_statement "if (uVar13 == 0) goto LAB_00016c54;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c54;" goto statement_identifier ;)) (expression_statement "cVar10 = *in_t2;" (assignment_expression "cVar10 = *in_t2" identifier = (pointer_expression "*in_t2" * identifier)) ;) (if_statement "if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;" if (parenthesized_expression "((cVar10 == '\r') || (cVar10 == '\n'))" ( (binary_expression "(cVar10 == '\r') || (cVar10 == '\n')" (parenthesized_expression "(cVar10 == '\r')" ( (binary_expression "cVar10 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar10 == '\n')" ( (binary_expression "cVar10 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000179e4;" goto statement_identifier ;)) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" identifier = identifier) ;) (if_statement "if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }" if (parenthesized_expression "(cVar10 != ';')" ( (binary_expression "cVar10 != ';'" identifier != (char_literal "';'" ' character ')) )) (compound_statement "{\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }" { (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);" do (compound_statement "{\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          }" { (expression_statement "uVar11 = uVar6 + 1;" (assignment_expression "uVar11 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar6;" (assignment_expression "uVar19 = uVar6" identifier = identifier) ;) (if_statement "if (uVar6 == uVar13) goto LAB_000178e4;" if (parenthesized_expression "(uVar6 == uVar13)" ( (binary_expression "uVar6 == uVar13" identifier == identifier) )) (goto_statement "goto LAB_000178e4;" goto statement_identifier ;)) (expression_statement "cVar1 = in_t2[uVar6];" (assignment_expression "cVar1 = in_t2[uVar6]" identifier = (subscript_expression "in_t2[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) (if_statement "if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;" if (parenthesized_expression "((cVar1 == '\r') || (cVar1 == '\n'))" ( (binary_expression "(cVar1 == '\r') || (cVar1 == '\n')" (parenthesized_expression "(cVar1 == '\r')" ( (binary_expression "cVar1 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar1 == '\n')" ( (binary_expression "cVar1 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00017804;" goto statement_identifier ;)) (if_statement "if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }" if (parenthesized_expression "(cVar1 == ';')" ( (binary_expression "cVar1 == ';'" identifier == (char_literal "';'" ' character ')) )) (compound_statement "{\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }" { (if_statement "if (uVar6 < uVar13) goto LAB_00017988;" if (parenthesized_expression "(uVar6 < uVar13)" ( (binary_expression "uVar6 < uVar13" identifier < identifier) )) (goto_statement "goto LAB_00017988;" goto statement_identifier ;)) (goto_statement "goto LAB_00017804;" goto statement_identifier ;) })) (expression_statement "uVar6 = uVar11;" (assignment_expression "uVar6 = uVar11" identifier = identifier) ;) }) while (parenthesized_expression "(uVar11 != 0x10)" ( (binary_expression "uVar11 != 0x10" identifier != number_literal) )) ;) (if_statement "if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }" if (parenthesized_expression "(in_t2[0x10] != ';')" ( (binary_expression "in_t2[0x10] != ';'" (subscript_expression "in_t2[0x10]" identifier [ number_literal ]) != (char_literal "';'" ' character ')) )) (compound_statement "{\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }" { (if_statement "if (uVar13 < 0x12) goto LAB_00016c2c;" if (parenthesized_expression "(uVar13 < 0x12)" ( (binary_expression "uVar13 < 0x12" identifier < number_literal) )) (goto_statement "goto LAB_00016c2c;" goto statement_identifier ;)) (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001745c;" goto statement_identifier ;) })) (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" identifier = identifier) ;) (if_statement "if (0x10 < uVar13) goto LAB_00017988;" if (parenthesized_expression "(0x10 < uVar13)" ( (binary_expression "0x10 < uVar13" number_literal < identifier) )) (goto_statement "goto LAB_00017988;" goto statement_identifier ;)) (labeled_statement "LAB_00016c2c:\n          pcVar14 = in_t2;" statement_identifier : (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" identifier = identifier) ;)) (if_statement "if (uVar13 == 0) goto LAB_00016c54;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00016c54;" goto statement_identifier ;)) (goto_statement "goto LAB_00016c34;" goto statement_identifier ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) (labeled_statement "LAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');" statement_identifier : (do_statement "do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');" do (compound_statement "{\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        }" { (expression_statement "uVar7 = uVar6 + 1;" (assignment_expression "uVar7 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar6 + 2;" (assignment_expression "uVar11 = uVar6 + 2" identifier = (binary_expression "uVar6 + 2" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar13;" (assignment_expression "uVar19 = uVar13" identifier = identifier) ;) (if_statement "if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;" if (parenthesized_expression "((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r'))" ( (binary_expression "(uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')" (parenthesized_expression "(uVar7 == uVar13)" ( (binary_expression "uVar7 == uVar13" identifier == identifier) )) || (parenthesized_expression "(uVar19 = uVar7, in_t2[uVar7] == '\r')" ( (comma_expression "uVar19 = uVar7, in_t2[uVar7] == '\r'" (assignment_expression "uVar19 = uVar7" identifier = identifier) , (binary_expression "in_t2[uVar7] == '\r'" (subscript_expression "in_t2[uVar7]" identifier [ identifier ]) == (char_literal "'\r'" ' escape_sequence '))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar7;" (assignment_expression "uVar6 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "(in_t2[uVar7] != '\n')" ( (binary_expression "in_t2[uVar7] != '\n'" (subscript_expression "in_t2[uVar7]" identifier [ identifier ]) != (char_literal "'\n'" ' escape_sequence ')) )) ;)) (labeled_statement "LAB_00017804:\n        uVar6 = uVar12;" statement_identifier : (expression_statement "uVar6 = uVar12;" (assignment_expression "uVar6 = uVar12" identifier = identifier) ;)) (if_statement "if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }" if (parenthesized_expression "(uVar13 <= uVar11)" ( (binary_expression "uVar13 <= uVar11" identifier <= identifier) )) (compound_statement "{\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }" { (labeled_statement "LAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;" statement_identifier : (if_statement "if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;" if (parenthesized_expression "(((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0'))" ( (binary_expression "((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')" (parenthesized_expression "((uVar19 != 1) || (uVar13 != 2))" ( (binary_expression "(uVar19 != 1) || (uVar13 != 2)" (parenthesized_expression "(uVar19 != 1)" ( (binary_expression "uVar19 != 1" identifier != number_literal) )) || (parenthesized_expression "(uVar13 != 2)" ( (binary_expression "uVar13 != 2" identifier != number_literal) ))) )) || (parenthesized_expression "(uVar11 = 2, cVar10 != '0')" ( (comma_expression "uVar11 = 2, cVar10 != '0'" (assignment_expression "uVar11 = 2" identifier = number_literal) , (binary_expression "cVar10 != '0'" identifier != (char_literal "'0'" ' character '))) ))) )) (goto_statement "goto LAB_00016c2c;" goto statement_identifier ;))) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" identifier = identifier) ;) })) (expression_statement "puVar15 = in_t3;" (assignment_expression "puVar15 = in_t3" identifier = identifier) ;) (if_statement "if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }" if (parenthesized_expression "(uVar12 == 0x10)" ( (binary_expression "uVar12 == 0x10" identifier == number_literal) )) (compound_statement "{\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }" { (labeled_statement "LAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);" statement_identifier : (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "in_t3 = puVar15;" (assignment_expression "in_t3 = puVar15" identifier = identifier) ;) (labeled_statement "LAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;" statement_identifier : (expression_statement "puVar9 = PTR_DAT_0003f05c + -0x48f0;" (assignment_expression "puVar9 = PTR_DAT_0003f05c + -0x48f0" identifier = (binary_expression "PTR_DAT_0003f05c + -0x48f0" identifier + number_literal)) ;)) (labeled_statement "LAB_00017464:\n          FUN_00020df0(uVar4,puVar9);" statement_identifier : (expression_statement "FUN_00020df0(uVar4,puVar9);" (call_expression "FUN_00020df0(uVar4,puVar9)" identifier (argument_list "(uVar4,puVar9)" ( identifier , identifier ))) ;)) (expression_statement "FUN_00014148(param_1,1);" (call_expression "FUN_00014148(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_00016c58;" goto statement_identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);" statement_identifier : (expression_statement "(*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);" (call_expression "(*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13)" (parenthesized_expression "(*(code *)PTR_memmove_0003f2fc)" ( (pointer_expression "*(code *)PTR_memmove_0003f2fc" * (cast_expression "(code *)PTR_memmove_0003f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) )))) , identifier , identifier ))) ;)) (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" identifier = identifier) ;) (labeled_statement "LAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;" statement_identifier : (expression_statement "*(uint *)(param_1 + 100) = uVar13;" (assignment_expression "*(uint *)(param_1 + 100) = uVar13" (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) = identifier) ;)) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" identifier = identifier) ;) (expression_statement "in_t2 = pcVar14;" (assignment_expression "in_t2 = pcVar14" identifier = identifier) ;) (labeled_statement "LAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);" statement_identifier : (expression_statement "cVar10 = *(char *)(param_1 + 0xf5);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xf5)" identifier = (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;" if (parenthesized_expression "(*(int *)(param_1 + 0xb4) == 0x13)" ( (binary_expression "*(int *)(param_1 + 0xb4) == 0x13" (pointer_expression "*(int *)(param_1 + 0xb4)" * (cast_expression "(int *)(param_1 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00015eac;" goto statement_identifier ;)) (if_statement "if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0" (binary_expression "*(int *)(param_1 + 0x78) != 0" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(param_1 + 0x7c) != 0" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) != number_literal)) )) (compound_statement "{\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }" { (if_statement "if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;" if (parenthesized_expression "((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0'))" ( (binary_expression "(((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')" (parenthesized_expression "(((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0))" ( (binary_expression "((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)" (parenthesized_expression "((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1))" ( (binary_expression "(*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x78) == -1)" ( (binary_expression "*(int *)(param_1 + 0x78) == -1" (pointer_expression "*(int *)(param_1 + 0x78)" * (cast_expression "(int *)(param_1 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0x7c) == -1)" ( (binary_expression "*(int *)(param_1 + 0x7c) == -1" (pointer_expression "*(int *)(param_1 + 0x7c)" * (cast_expression "(int *)(param_1 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(char *)(param_1 + 0xa9) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xa9) != '\0'" (pointer_expression "*(char *)(param_1 + 0xa9)" * (cast_expression "(char *)(param_1 + 0xa9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa9)" ( (binary_expression "param_1 + 0xa9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00016658;" goto statement_identifier ;)) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (if_statement "if (cVar10 != '\0') goto LAB_00015f88;" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015f88;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(param_1 + 0x98);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x98)" identifier = (pointer_expression "*(int *)(param_1 + 0x98)" * (cast_expression "(int *)(param_1 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_00015edc;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;)) (labeled_statement "LAB_00016168:\n      iVar5 = FUN_0002186c();" statement_identifier : (expression_statement "iVar5 = FUN_0002186c();" (assignment_expression "iVar5 = FUN_0002186c()" identifier = (call_expression "FUN_0002186c()" identifier (argument_list "()" ( )))) ;)) (expression_statement "puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));" (assignment_expression "puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" identifier = (cast_expression "(undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" ( (binary_expression "iVar8 < iVar5 - *(int *)(param_1 + 0x94)" identifier < (binary_expression "iVar5 - *(int *)(param_1 + 0x94)" identifier - (pointer_expression "*(int *)(param_1 + 0x94)" * (cast_expression "(int *)(param_1 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x94)" ( (binary_expression "param_1 + 0x94" identifier + number_literal) )))))) ))))) ;) (if_statement "if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" if (parenthesized_expression "(puVar16 == (undefined *)0x0)" ( (binary_expression "puVar16 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" { (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (if_statement "if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;" if (parenthesized_expression "(*(char *)(param_1 + 0xf5) == '\0')" ( (binary_expression "*(char *)(param_1 + 0xf5) == '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" * (cast_expression "(char *)(param_1 + 0xf5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf5)" ( (binary_expression "param_1 + 0xf5" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" * (cast_expression "(undefined1 *)(param_1 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xab)" ( (binary_expression "param_1 + 0xab" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" identifier = identifier) ;) }) (else_clause "else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" else (compound_statement "{\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" { (expression_statement "FUN_00014148(param_1,2);" (call_expression "FUN_00014148(param_1,2)" identifier (argument_list "(param_1,2)" ( identifier , number_literal ))) ;) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" * (cast_expression "(undefined1 *)(param_1 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xab)" ( (binary_expression "param_1 + 0xab" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" identifier = identifier) ;) }))) (goto_statement "goto LAB_00015f8c;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0xc0) == '\0')" ( (binary_expression "*(char *)(param_1 + 0xc0) == '\0'" (pointer_expression "*(char *)(param_1 + 0xc0)" * (cast_expression "(char *)(param_1 + 0xc0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc0)" ( (binary_expression "param_1 + 0xc0" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00016658:\n      uVar4 = 9;\n    }" { (labeled_statement "LAB_00016658:\n      uVar4 = 9;" statement_identifier : (expression_statement "uVar4 = 9;" (assignment_expression "uVar4 = 9" identifier = number_literal) ;)) }) (else_clause "else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" else (compound_statement "{\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" { (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;) (if_statement "if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0xa9) != '\0')" ( (binary_expression "*(char *)(param_1 + 0xa9) != '\0'" (pointer_expression "*(char *)(param_1 + 0xa9)" * (cast_expression "(char *)(param_1 + 0xa9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa9)" ( (binary_expression "param_1 + 0xa9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar4 = 9;\n      }" { (expression_statement "uVar4 = 9;" (assignment_expression "uVar4 = 9" identifier = number_literal) ;) })) }))) (expression_statement "*(undefined4 *)(param_1 + 0xb4) = uVar4;" (assignment_expression "*(undefined4 *)(param_1 + 0xb4) = uVar4" (pointer_expression "*(undefined4 *)(param_1 + 0xb4)" * (cast_expression "(undefined4 *)(param_1 + 0xb4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }" { (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" identifier = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00015ec0;" goto statement_identifier ;) })) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_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 ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }))) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - IDENT) == (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) )))) )) && (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (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 , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT - IDENT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) != (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT < IDENT)) , (binary_expression IDENT < IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ IDENT ]) == (char_literal ' escape_sequence '))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (char_literal ' escape_sequence ')) )) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT != (char_literal ' character '))) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_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 ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "undefined4 FUN_00015e38(int param_1)\n\n{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  undefined *puVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint in_t1;\n  uint uVar13;\n  char *in_t2;\n  char *pcVar14;\n  undefined4 *in_t3;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  int iVar18;\n  uint uVar19;\n  undefined4 local_4c;\n  int local_48;\n  uint local_3c [4];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar16 = PTR_DAT_0003f05c + -0x45c0;\n  iVar18 = *(int *)(param_1 + 0x18);\n  cVar10 = *(char *)(param_1 + 0xf5);\n  puVar17 = PTR_DAT_0003f05c + -0x4884;\n  *(undefined1 *)(param_1 + 0xab) = 1;\nLAB_00015eac:\n  uVar4 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  iVar8 = *(int *)(param_1 + 0xf0);\nLAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }\n  iVar8 = *(int *)(param_1 + 0x98);\n  if (iVar8 != 0) goto LAB_00016168;\nLAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);\n  puVar16 = (undefined *)0x1;\n  if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }\n  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }\nLAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );\n}" (type_identifier "undefined4") (function_declarator "FUN_00015e38(int param_1)" (identifier "FUN_00015e38") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  undefined *puVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint in_t1;\n  uint uVar13;\n  char *in_t2;\n  char *pcVar14;\n  undefined4 *in_t3;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  int iVar18;\n  uint uVar19;\n  undefined4 local_4c;\n  int local_48;\n  uint local_3c [4];\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0003f2ec;\n  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;\n  puVar16 = PTR_DAT_0003f05c + -0x45c0;\n  iVar18 = *(int *)(param_1 + 0x18);\n  cVar10 = *(char *)(param_1 + 0xf5);\n  puVar17 = PTR_DAT_0003f05c + -0x4884;\n  *(undefined1 *)(param_1 + 0xab) = 1;\nLAB_00015eac:\n  uVar4 = 1;\n  if (cVar10 != '\0') goto LAB_00015f88;\n  iVar8 = *(int *)(param_1 + 0xf0);\nLAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }\n  iVar8 = *(int *)(param_1 + 0x98);\n  if (iVar8 != 0) goto LAB_00016168;\nLAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);\n  puVar16 = (undefined *)0x1;\n  if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }\n  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }\nLAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint in_t1;" (type_identifier "uint") (identifier "in_t1") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "char *in_t2;" (primitive_type "char") (pointer_declarator "*in_t2" (* "*") (identifier "in_t2")) (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "undefined4 *in_t3;" (type_identifier "undefined4") (pointer_declarator "*in_t3" (* "*") (identifier "in_t3")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "uint local_3c [4];" (type_identifier "uint") (array_declarator "local_3c [4]" (identifier "local_3c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_0003f2ec;" (assignment_expression "puVar3 = PTR___stack_chk_guard_0003f2ec" (identifier "puVar3") (= "=") (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 "puVar16 = PTR_DAT_0003f05c + -0x45c0;" (assignment_expression "puVar16 = PTR_DAT_0003f05c + -0x45c0" (identifier "puVar16") (= "=") (binary_expression "PTR_DAT_0003f05c + -0x45c0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x45c0"))) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x18)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "cVar10 = *(char *)(param_1 + 0xf5);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xf5)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(param_1 + 0xf5)" (* "*") (cast_expression "(char *)(param_1 + 0xf5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf5)" (( "(") (binary_expression "param_1 + 0xf5" (identifier "param_1") (+ "+") (number_literal "0xf5")) () ")"))))) (; ";")) (expression_statement "puVar17 = PTR_DAT_0003f05c + -0x4884;" (assignment_expression "puVar17 = PTR_DAT_0003f05c + -0x4884" (identifier "puVar17") (= "=") (binary_expression "PTR_DAT_0003f05c + -0x4884" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x4884"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xab)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xab)" (( "(") (binary_expression "param_1 + 0xab" (identifier "param_1") (+ "+") (number_literal "0xab")) () ")")))) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00015eac:\n  uVar4 = 1;" (statement_identifier "LAB_00015eac") (: ":") (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";"))) (if_statement "if (cVar10 != '\0') goto LAB_00015f88;" (if "if") (parenthesized_expression "(cVar10 != '\0')" (( "(") (binary_expression "cVar10 != '\0'" (identifier "cVar10") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00015f88;" (goto "goto") (statement_identifier "LAB_00015f88") (; ";"))) (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0xf0)" (* "*") (cast_expression "(int *)(param_1 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf0)" (( "(") (binary_expression "param_1 + 0xf0" (identifier "param_1") (+ "+") (number_literal "0xf0")) () ")"))))) (; ";")) (labeled_statement "LAB_00015ec0:\n  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" (statement_identifier "LAB_00015ec0") (: ":") (if_statement "if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" (if "if") (parenthesized_expression "((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15))" (( "(") (binary_expression "(1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)" (parenthesized_expression "(1 < iVar8 - 1U)" (( "(") (binary_expression "1 < iVar8 - 1U" (number_literal "1") (< "<") (binary_expression "iVar8 - 1U" (identifier "iVar8") (- "-") (number_literal "1U"))) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(param_1 + 0xb4) < 0x15)" (( "(") (binary_expression "*(uint *)(param_1 + 0xb4) < 0x15" (pointer_expression "*(uint *)(param_1 + 0xb4)" (* "*") (cast_expression "(uint *)(param_1 + 0xb4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")")))) (< "<") (number_literal "0x15")) () ")"))) () ")")) (compound_statement "{\n                    \n                    \n    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n    return uVar4;\n  }" ({ "{") (expression_statement "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();" (assignment_expression "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" (identifier "uVar4") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (* "*") (cast_expression "(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (( "(") (binary_expression "puVar16 + *(uint *)(param_1 + 0xb4) * 4" (identifier "puVar16") (+ "+") (binary_expression "*(uint *)(param_1 + 0xb4) * 4" (pointer_expression "*(uint *)(param_1 + 0xb4)" (* "*") (cast_expression "(uint *)(param_1 + 0xb4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (expression_statement "iVar8 = *(int *)(param_1 + 0x98);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x98)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0x98)" (* "*") (cast_expression "(int *)(param_1 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x98)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_00016168;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016168;" (goto "goto") (statement_identifier "LAB_00016168") (; ";"))) (labeled_statement "LAB_00015edc:\n  iVar8 = *(int *)(param_1 + 0xf0);" (statement_identifier "LAB_00015edc") (: ":") (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0xf0)" (* "*") (cast_expression "(int *)(param_1 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf0)" (( "(") (binary_expression "param_1 + 0xf0" (identifier "param_1") (+ "+") (number_literal "0xf0")) () ")"))))) (; ";"))) (expression_statement "puVar16 = (undefined *)0x1;" (assignment_expression "puVar16 = (undefined *)0x1" (identifier "puVar16") (= "=") (cast_expression "(undefined *)0x1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (iVar8 == 0) {\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }\n  else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;\n    puVar16 = PTR_DAT_0003f05c + -0x4610;\n    if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }\nswitchD_00015f24_caseD_3:\n    uVar4 = 1;\n    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;\n  }" ({ "{") (labeled_statement "LAB_00015eec:\n    puVar17 = PTR_0003f058 + 0x27f0;" (statement_identifier "LAB_00015eec") (: ":") (expression_statement "puVar17 = PTR_0003f058 + 0x27f0;" (assignment_expression "puVar17 = PTR_0003f058 + 0x27f0" (identifier "puVar17") (= "=") (binary_expression "PTR_0003f058 + 0x27f0" (identifier "PTR_0003f058") (+ "+") (number_literal "0x27f0"))) (; ";"))) (expression_statement "puVar16 = PTR_DAT_0003f05c + -0x4610;" (assignment_expression "puVar16 = PTR_DAT_0003f05c + -0x4610" (identifier "puVar16") (= "=") (binary_expression "PTR_DAT_0003f05c + -0x4610" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x4610"))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0xb4) < 0x14) {\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0xb4) < 0x14)" (( "(") (binary_expression "*(uint *)(param_1 + 0xb4) < 0x14" (pointer_expression "*(uint *)(param_1 + 0xb4)" (* "*") (cast_expression "(uint *)(param_1 + 0xb4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")")))) (< "<") (number_literal "0x14")) () ")")) (compound_statement "{\n                    \n                    \n      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();\n      return uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();" (assignment_expression "uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" (identifier "uVar4") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (* "*") (cast_expression "(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + *(uint *)(param_1 + 0xb4) * 4)" (( "(") (binary_expression "puVar16 + *(uint *)(param_1 + 0xb4) * 4" (identifier "puVar16") (+ "+") (binary_expression "*(uint *)(param_1 + 0xb4) * 4" (pointer_expression "*(uint *)(param_1 + 0xb4)" (* "*") (cast_expression "(uint *)(param_1 + 0xb4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (labeled_statement "switchD_00015f24_caseD_3:\n    uVar4 = 1;" (statement_identifier "switchD_00015f24_caseD_3") (: ":") (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";"))) (if_statement "if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xf5) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xf5) != '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" (* "*") (cast_expression "(char *)(param_1 + 0xf5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf5)" (( "(") (binary_expression "param_1 + 0xf5" (identifier "param_1") (+ "+") (number_literal "0xf5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00015f88;" (goto "goto") (statement_identifier "LAB_00015f88") (; ";"))) (} "}")) (else_clause "else {\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" (else "else") (compound_statement "{\n    if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }\n    *(undefined4 *)(param_1 + 0xb8) = 0;\n  }" ({ "{") (if_statement "if (iVar8 != 1) {\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }" (if "if") (parenthesized_expression "(iVar8 != 1)" (( "(") (binary_expression "iVar8 != 1" (identifier "iVar8") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      if (iVar8 != 2) goto LAB_00015eec;\n      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));\n      if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }\n      goto switchD_00015f24_caseD_3;\n    }" ({ "{") (if_statement "if (iVar8 != 2) goto LAB_00015eec;" (if "if") (parenthesized_expression "(iVar8 != 2)" (( "(") (binary_expression "iVar8 != 2" (identifier "iVar8") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_00015eec;" (goto "goto") (statement_identifier "LAB_00015eec") (; ";"))) (expression_statement "iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));" (assignment_expression "iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4))" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4))" (parenthesized_expression "(*(code *)PTR_gnutls_record_get_direction_0003f27c)" (( "(") (pointer_expression "*(code *)PTR_gnutls_record_get_direction_0003f27c" (* "*") (cast_expression "(code *)PTR_gnutls_record_get_direction_0003f27c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gnutls_record_get_direction_0003f27c"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0xe4))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }\n      else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(param_1 + 0xb8) = 0;\n      }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xb8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb8)" (( "(") (binary_expression "param_1 + 0xb8" (identifier "param_1") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(param_1 + 0xb8) = 1;\n      }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xb8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb8)" (( "(") (binary_expression "param_1 + 0xb8" (identifier "param_1") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto switchD_00015f24_caseD_3;" (goto "goto") (statement_identifier "switchD_00015f24_caseD_3") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xb8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xb8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb8)" (( "(") (binary_expression "param_1 + 0xb8" (identifier "param_1") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {\n    uVar4 = 1;\n  }\n  else {\n    uVar4 = FUN_000150d8(param_1);\n  }" (if "if") (parenthesized_expression "((*(uint *)(iVar18 + 0xf8) & 0x200) == 0)" (( "(") (binary_expression "(*(uint *)(iVar18 + 0xf8) & 0x200) == 0" (parenthesized_expression "(*(uint *)(iVar18 + 0xf8) & 0x200)" (( "(") (binary_expression "*(uint *)(iVar18 + 0xf8) & 0x200" (pointer_expression "*(uint *)(iVar18 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar18 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xf8)" (( "(") (binary_expression "iVar18 + 0xf8" (identifier "iVar18") (+ "+") (number_literal "0xf8")) () ")")))) (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = 1;\n  }" ({ "{") (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = FUN_000150d8(param_1);\n  }" (else "else") (compound_statement "{\n    uVar4 = FUN_000150d8(param_1);\n  }" ({ "{") (expression_statement "uVar4 = FUN_000150d8(param_1);" (assignment_expression "uVar4 = FUN_000150d8(param_1)" (identifier "uVar4") (= "=") (call_expression "FUN_000150d8(param_1)" (identifier "FUN_000150d8") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_00015f88:\n  do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );" (statement_identifier "LAB_00015f88") (: ":") (do_statement "do {\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  } while( true );" (do "do") (compound_statement "{\n    *(undefined1 *)(param_1 + 0xab) = 0;\n    uVar13 = in_t1;\nLAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }\n    (*(code *)PTR___stack_chk_fail_0003f2b8)();\nLAB_000179e4:\n    uVar12 = 0;\n    if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }\n    uVar13 = 1;\nLAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);\n    pcVar14 = in_t2;\nLAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;\n    in_t1 = uVar13;\n    in_t2 = pcVar14;\nLAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);\n    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;\n    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }\n    if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }\n    *(undefined4 *)(param_1 + 0xb4) = uVar4;\n    if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }\n    uVar4 = 1;\n  }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xab)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xab)" (( "(") (binary_expression "param_1 + 0xab" (identifier "param_1") (+ "+") (number_literal "0xab")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" (identifier "uVar13") (= "=") (identifier "in_t1")) (; ";")) (labeled_statement "LAB_00015f8c:\n    if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }" (statement_identifier "LAB_00015f8c") (: ":") (if_statement "if (local_2c == *(int *)puVar3) {\n      return uVar4;\n    }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar3)" (( "(") (binary_expression "local_2c == *(int *)puVar3" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) () ")")) (compound_statement "{\n      return uVar4;\n    }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (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 "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_000179e4:\n    uVar12 = 0;" (statement_identifier "LAB_000179e4") (: ":") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (1 < uVar13) {\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }" (if "if") (parenthesized_expression "(1 < uVar13)" (( "(") (binary_expression "1 < uVar13" (number_literal "1") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n      uVar11 = 1;\n      uVar19 = 0;\n      pcVar14 = in_t2;\n      do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );\n    }" ({ "{") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" (identifier "pcVar14") (= "=") (identifier "in_t2")) (; ";")) (do_statement "do {\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      } while( true );" (do "do") (compound_statement "{\n        in_t1 = uVar13;\n        in_t2 = pcVar14;\n        puVar15 = in_t3;\n        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);\n        if (uVar6 != uVar12) goto LAB_00017458;\n        in_t2 = pcVar14 + uVar11;\n        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }\n        uVar13 = uVar13 - uVar11;\n        *(undefined4 *)(param_1 + 0xd4) = 0;\n        *(undefined4 *)(param_1 + 0xd0) = 0;\n        if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }\n        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }\n        cVar10 = *(char *)(param_1 + 0xc0);\nLAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);\n        uVar12 = *(uint *)(param_1 + 0x7c);\n        in_t1 = uVar13;\n        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }\n        uVar11 = *(uint *)(param_1 + 0xd0);\n        uVar19 = *(uint *)(param_1 + 200);\n        uVar12 = *(uint *)(param_1 + 0xd4);\n        uVar6 = *(uint *)(param_1 + 0xcc);\n        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }\n        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }\nLAB_000175d8:\n        pcVar14 = in_t2;\n        if (uVar13 == 0) goto LAB_00016c54;\n        cVar10 = *in_t2;\n        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;\n        in_t1 = uVar13;\n        if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }\n        uVar6 = 0;\n        uVar12 = uVar6;\nLAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');\nLAB_00017804:\n        uVar6 = uVar12;\n        if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }\n        puVar15 = in_t3;\n        if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }\n      }" ({ "{") (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" (identifier "in_t1") (= "=") (identifier "uVar13")) (; ";")) (expression_statement "in_t2 = pcVar14;" (assignment_expression "in_t2 = pcVar14" (identifier "in_t2") (= "=") (identifier "pcVar14")) (; ";")) (expression_statement "puVar15 = in_t3;" (assignment_expression "puVar15 = in_t3" (identifier "puVar15") (= "=") (identifier "in_t3")) (; ";")) (expression_statement "uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);" (assignment_expression "uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200)" (identifier "uVar6") (= "=") (call_expression "FUN_00022050(pcVar14,uVar12,param_1 + 200)" (identifier "FUN_00022050") (argument_list "(pcVar14,uVar12,param_1 + 200)" (( "(") (identifier "pcVar14") (, ",") (identifier "uVar12") (, ",") (binary_expression "param_1 + 200" (identifier "param_1") (+ "+") (number_literal "200")) () ")")))) (; ";")) (if_statement "if (uVar6 != uVar12) goto LAB_00017458;" (if "if") (parenthesized_expression "(uVar6 != uVar12)" (( "(") (binary_expression "uVar6 != uVar12" (identifier "uVar6") (!= "!=") (identifier "uVar12")) () ")")) (goto_statement "goto LAB_00017458;" (goto "goto") (statement_identifier "LAB_00017458") (; ";"))) (expression_statement "in_t2 = pcVar14 + uVar11;" (assignment_expression "in_t2 = pcVar14 + uVar11" (identifier "in_t2") (= "=") (binary_expression "pcVar14 + uVar11" (identifier "pcVar14") (+ "+") (identifier "uVar11"))) (; ";")) (if_statement "if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }" (if "if") (parenthesized_expression "((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n'))))" (( "(") (binary_expression "(uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))" (parenthesized_expression "(uVar11 < uVar13)" (( "(") (binary_expression "uVar11 < uVar13" (identifier "uVar11") (< "<") (identifier "uVar13")) () ")")) (&& "&&") (parenthesized_expression "((*in_t2 == '\r' || (*in_t2 == '\n')))" (( "(") (parenthesized_expression "(*in_t2 == '\r' || (*in_t2 == '\n'))" (( "(") (binary_expression "*in_t2 == '\r' || (*in_t2 == '\n')" (binary_expression "*in_t2 == '\r'" (pointer_expression "*in_t2" (* "*") (identifier "in_t2")) (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) (|| "||") (parenthesized_expression "(*in_t2 == '\n')" (( "(") (binary_expression "*in_t2 == '\n'" (pointer_expression "*in_t2" (* "*") (identifier "in_t2")) (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          uVar11 = uVar19 + 2;\n          in_t2 = pcVar14 + uVar11;\n        }" ({ "{") (expression_statement "uVar11 = uVar19 + 2;" (assignment_expression "uVar11 = uVar19 + 2" (identifier "uVar11") (= "=") (binary_expression "uVar19 + 2" (identifier "uVar19") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "in_t2 = pcVar14 + uVar11;" (assignment_expression "in_t2 = pcVar14 + uVar11" (identifier "in_t2") (= "=") (binary_expression "pcVar14 + uVar11" (identifier "pcVar14") (+ "+") (identifier "uVar11"))) (; ";")) (} "}"))) (expression_statement "uVar13 = uVar13 - uVar11;" (assignment_expression "uVar13 = uVar13 - uVar11" (identifier "uVar13") (= "=") (binary_expression "uVar13 - uVar11" (identifier "uVar13") (- "-") (identifier "uVar11"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd0)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar13 == 0) {\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }\n          goto LAB_00016c54;\n        }" ({ "{") (if_statement "if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0" (binary_expression "*(int *)(param_1 + 200) == 0" (pointer_expression "*(int *)(param_1 + 200)" (* "*") (cast_expression "(int *)(param_1 + 200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 200)" (( "(") (binary_expression "param_1 + 200" (identifier "param_1") (+ "+") (number_literal "200")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(param_1 + 0xcc) == 0" (pointer_expression "*(int *)(param_1 + 0xcc)" (* "*") (cast_expression "(int *)(param_1 + 0xcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xcc)" (( "(") (binary_expression "param_1 + 0xcc" (identifier "param_1") (+ "+") (number_literal "0xcc")) () ")")))) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x7c) = 0;\n            *(undefined4 *)(param_1 + 0x78) = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_00016c54;" (goto "goto") (statement_identifier "LAB_00016c54") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0" (binary_expression "*(int *)(param_1 + 200) == 0" (pointer_expression "*(int *)(param_1 + 200)" (* "*") (cast_expression "(int *)(param_1 + 200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 200)" (( "(") (binary_expression "param_1 + 200" (identifier "param_1") (+ "+") (number_literal "200")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "*(int *)(param_1 + 0xcc) == 0" (pointer_expression "*(int *)(param_1 + 0xcc)" (* "*") (cast_expression "(int *)(param_1 + 0xcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xcc)" (( "(") (binary_expression "param_1 + 0xcc" (identifier "param_1") (+ "+") (number_literal "0xcc")) () ")")))) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          *(undefined4 *)(param_1 + 0x7c) = 0;\n          *(undefined4 *)(param_1 + 0x78) = 0;\n          goto LAB_00016c2c;\n        }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x78) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00016c2c;" (goto "goto") (statement_identifier "LAB_00016c2c") (; ";")) (} "}"))) (expression_statement "cVar10 = *(char *)(param_1 + 0xc0);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xc0)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(param_1 + 0xc0)" (* "*") (cast_expression "(char *)(param_1 + 0xc0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc0)" (( "(") (binary_expression "param_1 + 0xc0" (identifier "param_1") (+ "+") (number_literal "0xc0")) () ")"))))) (; ";")) (labeled_statement "LAB_00016aa4:\n        iVar8 = *(int *)(param_1 + 0x78);" (statement_identifier "LAB_00016aa4") (: ":") (expression_statement "iVar8 = *(int *)(param_1 + 0x78);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x78)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0x78)" (* "*") (cast_expression "(int *)(param_1 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";"))) (expression_statement "uVar12 = *(uint *)(param_1 + 0x7c);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0x7c)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(param_1 + 0x7c)" (* "*") (cast_expression "(uint *)(param_1 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" (identifier "in_t1") (= "=") (identifier "uVar13")) (; ";")) (if_statement "if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }" (if "if") (parenthesized_expression "(((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff))" (( "(") (binary_expression "((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)" (parenthesized_expression "((cVar10 == '\0') || (iVar8 != -1))" (( "(") (binary_expression "(cVar10 == '\0') || (iVar8 != -1)" (parenthesized_expression "(cVar10 == '\0')" (( "(") (binary_expression "cVar10 == '\0'" (identifier "cVar10") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar8 != -1)" (( "(") (binary_expression "iVar8 != -1" (identifier "iVar8") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar12 != 0xffffffff)" (( "(") (binary_expression "uVar12 != 0xffffffff" (identifier "uVar12") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;\n          if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\nLAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;\n          local_3c[0] = uVar12;\n          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);\n          if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }\n          if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }\n          if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }\n          cVar10 = *(char *)(param_1 + 0xc0);\n          iVar8 = uVar12 - local_3c[0];\n          if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }\n          uVar19 = *(uint *)(param_1 + 0x7c);\n          in_t2 = in_t2 + iVar8;\n          uVar13 = local_3c[0] + (uVar13 - uVar12);\n          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }\n          if (!bVar2) goto LAB_00016c2c;\n          goto LAB_00016aa4;\n        }" ({ "{") (if_statement "if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))\n          goto LAB_00016f9c;" (if "if") (parenthesized_expression "((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))" (( "(") (binary_expression "(-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1)" (parenthesized_expression "(-iVar8 == (uint)(uVar12 - 1 < uVar12))" (( "(") (binary_expression "-iVar8 == (uint)(uVar12 - 1 < uVar12)" (unary_expression "-iVar8" (- "-") (identifier "iVar8")) (== "==") (call_expression "(uint)(uVar12 - 1 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 - 1 < uVar12)" (( "(") (binary_expression "uVar12 - 1 < uVar12" (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1")) (< "<") (identifier "uVar12")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(0xfffffffd < uVar12 - 1)" (( "(") (binary_expression "0xfffffffd < uVar12 - 1" (number_literal "0xfffffffd") (< "<") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) () ")"))) () ")")) (goto_statement "goto LAB_00016f9c;" (goto "goto") (statement_identifier "LAB_00016f9c") (; ";"))) (if_statement "if ((iVar8 == 0) && (uVar12 < uVar13)) {\n            bVar2 = false;\n          }\n          else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" (if "if") (parenthesized_expression "((iVar8 == 0) && (uVar12 < uVar13))" (( "(") (binary_expression "(iVar8 == 0) && (uVar12 < uVar13)" (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar12 < uVar13)" (( "(") (binary_expression "uVar12 < uVar13" (identifier "uVar12") (< "<") (identifier "uVar13")) () ")"))) () ")")) (compound_statement "{\n            bVar2 = false;\n          }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" (else "else") (compound_statement "{\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" (identifier "uVar12") (= "=") (identifier "uVar13")) (; ";")) (} "}")))) (labeled_statement "LAB_00016af0:\n          *(undefined1 *)(param_1 + 0xa0) = 1;" (statement_identifier "LAB_00016af0") (: ":") (expression_statement "*(undefined1 *)(param_1 + 0xa0) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xa0) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xa0)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xa0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (number_literal "1")) (; ";"))) (expression_statement "local_3c[0] = uVar12;" (assignment_expression "local_3c[0] = uVar12" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c);" (assignment_expression "iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" (identifier "iVar8") (= "=") (call_expression "(*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" (parenthesized_expression "(*(code *)*in_t3)" (( "(") (pointer_expression "*(code *)*in_t3" (* "*") (cast_expression "(code *)*in_t3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*in_t3" (* "*") (identifier "in_t3")))) () ")")) (argument_list "(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),\n                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),\n                                    in_t2,local_3c,param_1 + 0x2c)" (( "(") (subscript_expression "in_t3[1]" (identifier "in_t3") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (, ",") (identifier "in_t2") (, ",") (identifier "local_3c") (, ",") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            puVar9 = PTR_DAT_0003f05c + -0x4fc0;\n            goto LAB_00017464;\n          }" ({ "{") (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "puVar9 = PTR_DAT_0003f05c + -0x4fc0;" (assignment_expression "puVar9 = PTR_DAT_0003f05c + -0x4fc0" (identifier "puVar9") (= "=") (binary_expression "PTR_DAT_0003f05c + -0x4fc0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x4fc0"))) (; ";")) (goto_statement "goto LAB_00017464;" (goto "goto") (statement_identifier "LAB_00017464") (; ";")) (} "}"))) (if_statement "if (uVar12 < local_3c[0]) {\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }" (if "if") (parenthesized_expression "(uVar12 < local_3c[0])" (( "(") (binary_expression "uVar12 < local_3c[0]" (identifier "uVar12") (< "<") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n            (**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);\n          }" ({ "{") (expression_statement "(**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);" (call_expression "(**(code **)PTR_DAT_0003f070)\n                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c)" (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,local_48 + -0x51c8,0x9f3,local_4c)" (( "(") (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 "local_48 + -0x51c8" (identifier "local_48") (+ "+") (number_literal "-0x51c8")) (, ",") (number_literal "0x9f3") (, ",") (identifier "local_4c") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_3c[0] != 0) {\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }" (if "if") (parenthesized_expression "(local_3c[0] != 0)" (( "(") (binary_expression "local_3c[0] != 0" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }\n          }" ({ "{") (if_statement "if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {\n              bVar2 = false;\n            }\n            else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" (if "if") (parenthesized_expression "(((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0'))" (( "(") (binary_expression "((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')" (parenthesized_expression "((in_t3[0x3e] & 8) == 0)" (( "(") (binary_expression "(in_t3[0x3e] & 8) == 0" (parenthesized_expression "(in_t3[0x3e] & 8)" (( "(") (binary_expression "in_t3[0x3e] & 8" (subscript_expression "in_t3[0x3e]" (identifier "in_t3") ([ "[") (number_literal "0x3e") (] "]")) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_1 + 0xf5) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xf5) != '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" (* "*") (cast_expression "(char *)(param_1 + 0xf5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf5)" (( "(") (binary_expression "param_1 + 0xf5" (identifier "param_1") (+ "+") (number_literal "0xf5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              bVar2 = false;\n            }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" (else "else") (compound_statement "{\n              FUN_00020df0(in_t3,puVar17);\n              bVar2 = false;\n            }" ({ "{") (expression_statement "FUN_00020df0(in_t3,puVar17);" (call_expression "FUN_00020df0(in_t3,puVar17)" (identifier "FUN_00020df0") (argument_list "(in_t3,puVar17)" (( "(") (identifier "in_t3") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (} "}")))) (} "}"))) (expression_statement "cVar10 = *(char *)(param_1 + 0xc0);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xc0)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(param_1 + 0xc0)" (* "*") (cast_expression "(char *)(param_1 + 0xc0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc0)" (( "(") (binary_expression "param_1 + 0xc0" (identifier "param_1") (+ "+") (number_literal "0xc0")) () ")"))))) (; ";")) (expression_statement "iVar8 = uVar12 - local_3c[0];" (assignment_expression "iVar8 = uVar12 - local_3c[0]" (identifier "iVar8") (= "=") (binary_expression "uVar12 - local_3c[0]" (identifier "uVar12") (- "-") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (cVar10 != '\0') {\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }" (if "if") (parenthesized_expression "(cVar10 != '\0')" (( "(") (binary_expression "cVar10 != '\0'" (identifier "cVar10") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar19 = *(uint *)(param_1 + 0xd4);\n            uVar11 = uVar19 + iVar8;\n            *(uint *)(param_1 + 0xd4) = uVar11;\n            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);\n          }" ({ "{") (expression_statement "uVar19 = *(uint *)(param_1 + 0xd4);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0xd4)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(param_1 + 0xd4)" (* "*") (cast_expression "(uint *)(param_1 + 0xd4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")"))))) (; ";")) (expression_statement "uVar11 = uVar19 + iVar8;" (assignment_expression "uVar11 = uVar19 + iVar8" (identifier "uVar11") (= "=") (binary_expression "uVar19 + iVar8" (identifier "uVar19") (+ "+") (identifier "iVar8"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0xd4) = uVar11;" (assignment_expression "*(uint *)(param_1 + 0xd4) = uVar11" (pointer_expression "*(uint *)(param_1 + 0xd4)" (* "*") (cast_expression "(uint *)(param_1 + 0xd4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);" (assignment_expression "*(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0)" (pointer_expression "*(uint *)(param_1 + 0xd0)" (* "*") (cast_expression "(uint *)(param_1 + 0xd0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (binary_expression "(uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0)" (call_expression "(uint)(uVar11 < uVar19)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < uVar19)" (( "(") (binary_expression "uVar11 < uVar19" (identifier "uVar11") (< "<") (identifier "uVar19")) () ")"))) (+ "+") (pointer_expression "*(int *)(param_1 + 0xd0)" (* "*") (cast_expression "(int *)(param_1 + 0xd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar19 = *(uint *)(param_1 + 0x7c);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0x7c)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(param_1 + 0x7c)" (* "*") (cast_expression "(uint *)(param_1 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (expression_statement "in_t2 = in_t2 + iVar8;" (assignment_expression "in_t2 = in_t2 + iVar8" (identifier "in_t2") (= "=") (binary_expression "in_t2 + iVar8" (identifier "in_t2") (+ "+") (identifier "iVar8"))) (; ";")) (expression_statement "uVar13 = local_3c[0] + (uVar13 - uVar12);" (assignment_expression "uVar13 = local_3c[0] + (uVar13 - uVar12)" (identifier "uVar13") (= "=") (binary_expression "local_3c[0] + (uVar13 - uVar12)" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (+ "+") (parenthesized_expression "(uVar13 - uVar12)" (( "(") (binary_expression "uVar13 - uVar12" (identifier "uVar13") (- "-") (identifier "uVar12")) () ")")))) (; ";")) (if_statement "if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff))" (( "(") (binary_expression "(*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)" (parenthesized_expression "(*(int *)(param_1 + 0x78) != -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x78) != -1" (pointer_expression "*(int *)(param_1 + 0x78)" (* "*") (cast_expression "(int *)(param_1 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(uVar19 != 0xffffffff)" (( "(") (binary_expression "uVar19 != 0xffffffff" (identifier "uVar19") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;\n            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);\n          }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x7c) = uVar19 - iVar8;" (assignment_expression "*(uint *)(param_1 + 0x7c) = uVar19 - iVar8" (pointer_expression "*(uint *)(param_1 + 0x7c)" (* "*") (cast_expression "(uint *)(param_1 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (binary_expression "uVar19 - iVar8" (identifier "uVar19") (- "-") (identifier "iVar8"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);" (assignment_expression "*(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8)" (pointer_expression "*(uint *)(param_1 + 0x78)" (* "*") (cast_expression "(uint *)(param_1 + 0x78)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8)" (pointer_expression "*(int *)(param_1 + 0x78)" (* "*") (cast_expression "(int *)(param_1 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (- "-") (call_expression "(uint)(uVar19 < uVar19 - iVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar19 < uVar19 - iVar8)" (( "(") (binary_expression "uVar19 < uVar19 - iVar8" (identifier "uVar19") (< "<") (binary_expression "uVar19 - iVar8" (identifier "uVar19") (- "-") (identifier "iVar8"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (!bVar2) goto LAB_00016c2c;" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (goto_statement "goto LAB_00016c2c;" (goto "goto") (statement_identifier "LAB_00016c2c") (; ";"))) (goto_statement "goto LAB_00016aa4;" (goto "goto") (statement_identifier "LAB_00016aa4") (; ";")) (} "}"))) (expression_statement "uVar11 = *(uint *)(param_1 + 0xd0);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xd0)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(param_1 + 0xd0)" (* "*") (cast_expression "(uint *)(param_1 + 0xd0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")"))))) (; ";")) (expression_statement "uVar19 = *(uint *)(param_1 + 200);" (assignment_expression "uVar19 = *(uint *)(param_1 + 200)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(param_1 + 200)" (* "*") (cast_expression "(uint *)(param_1 + 200)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 200)" (( "(") (binary_expression "param_1 + 200" (identifier "param_1") (+ "+") (number_literal "200")) () ")"))))) (; ";")) (expression_statement "uVar12 = *(uint *)(param_1 + 0xd4);" (assignment_expression "uVar12 = *(uint *)(param_1 + 0xd4)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(param_1 + 0xd4)" (* "*") (cast_expression "(uint *)(param_1 + 0xd4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(uint *)(param_1 + 0xcc);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0xcc)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 0xcc)" (* "*") (cast_expression "(uint *)(param_1 + 0xcc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xcc)" (( "(") (binary_expression "param_1 + 0xcc" (identifier "param_1") (+ "+") (number_literal "0xcc")) () ")"))))) (; ";")) (if_statement "if ((uVar11 != uVar19) || (uVar12 != uVar6)) {\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }" (if "if") (parenthesized_expression "((uVar11 != uVar19) || (uVar12 != uVar6))" (( "(") (binary_expression "(uVar11 != uVar19) || (uVar12 != uVar6)" (parenthesized_expression "(uVar11 != uVar19)" (( "(") (binary_expression "uVar11 != uVar19" (identifier "uVar11") (!= "!=") (identifier "uVar19")) () ")")) (|| "||") (parenthesized_expression "(uVar12 != uVar6)" (( "(") (binary_expression "uVar12 != uVar6" (identifier "uVar12") (!= "!=") (identifier "uVar6")) () ")"))) () ")")) (compound_statement "{\n          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;\n          uVar12 = uVar6 - uVar12;\n          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }\n          goto LAB_00016af0;\n        }" ({ "{") (if_statement "if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;" (if "if") (parenthesized_expression "((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12))))" (( "(") (binary_expression "(uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))" (parenthesized_expression "(uVar19 <= uVar11)" (( "(") (binary_expression "uVar19 <= uVar11" (identifier "uVar19") (<= "<=") (identifier "uVar11")) () ")")) (&& "&&") (parenthesized_expression "((uVar19 != uVar11 || (uVar6 <= uVar12)))" (( "(") (parenthesized_expression "(uVar19 != uVar11 || (uVar6 <= uVar12))" (( "(") (binary_expression "uVar19 != uVar11 || (uVar6 <= uVar12)" (binary_expression "uVar19 != uVar11" (identifier "uVar19") (!= "!=") (identifier "uVar11")) (|| "||") (parenthesized_expression "(uVar6 <= uVar12)" (( "(") (binary_expression "uVar6 <= uVar12" (identifier "uVar6") (<= "<=") (identifier "uVar12")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";"))) (expression_statement "uVar12 = uVar6 - uVar12;" (assignment_expression "uVar12 = uVar6 - uVar12" (identifier "uVar12") (= "=") (binary_expression "uVar6 - uVar12" (identifier "uVar6") (- "-") (identifier "uVar12"))) (; ";")) (if_statement "if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" (if "if") (parenthesized_expression "((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12))" (( "(") (binary_expression "(uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||\n             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)" (parenthesized_expression "(uVar19 - uVar11 != (uint)(uVar6 < uVar12))" (( "(") (binary_expression "uVar19 - uVar11 != (uint)(uVar6 < uVar12)" (binary_expression "uVar19 - uVar11" (identifier "uVar19") (- "-") (identifier "uVar11")) (!= "!=") (call_expression "(uint)(uVar6 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar6 < uVar12)" (( "(") (binary_expression "uVar6 < uVar12" (identifier "uVar6") (< "<") (identifier "uVar12")) () ")")))) () ")")) (|| "||") (parenthesized_expression "(bVar2 = uVar12 < uVar13, uVar13 < uVar12)" (( "(") (comma_expression "bVar2 = uVar12 < uVar13, uVar13 < uVar12" (assignment_expression "bVar2 = uVar12 < uVar13" (identifier "bVar2") (= "=") (binary_expression "uVar12 < uVar13" (identifier "uVar12") (< "<") (identifier "uVar13"))) (, ",") (binary_expression "uVar13 < uVar12" (identifier "uVar13") (< "<") (identifier "uVar12"))) () ")"))) () ")")) (compound_statement "{\nLAB_00016f9c:\n            bVar2 = false;\n            uVar12 = uVar13;\n          }" ({ "{") (labeled_statement "LAB_00016f9c:\n            bVar2 = false;" (statement_identifier "LAB_00016f9c") (: ":") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";"))) (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" (identifier "uVar12") (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (goto_statement "goto LAB_00016af0;" (goto "goto") (statement_identifier "LAB_00016af0") (; ";")) (} "}"))) (if_statement "if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }" (if "if") (parenthesized_expression "((uVar11 != 0 || uVar12 != 0) && (1 < uVar13))" (( "(") (binary_expression "(uVar11 != 0 || uVar12 != 0) && (1 < uVar13)" (parenthesized_expression "(uVar11 != 0 || uVar12 != 0)" (( "(") (binary_expression "uVar11 != 0 || uVar12 != 0" (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(1 < uVar13)" (( "(") (binary_expression "1 < uVar13" (number_literal "1") (< "<") (identifier "uVar13")) () ")"))) () ")")) (compound_statement "{\n          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;\n          if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }\n          uVar13 = uVar13 - iVar8;\n          in_t2 = in_t2 + iVar8;\n          *(undefined4 *)(param_1 + 0xd4) = 0;\n          *(undefined4 *)(param_1 + 0xcc) = 0;\n          *(undefined4 *)(param_1 + 0xd0) = 0;\n          *(undefined4 *)(param_1 + 200) = 0;\n        }" ({ "{") (if_statement "if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;" (if "if") (parenthesized_expression "((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n'))" (( "(") (binary_expression "(*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')" (parenthesized_expression "(*in_t2 != '\r')" (( "(") (binary_expression "*in_t2 != '\r'" (pointer_expression "*in_t2" (* "*") (identifier "in_t2")) (!= "!=") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(puVar15 = in_t3, *in_t2 != '\n')" (( "(") (comma_expression "puVar15 = in_t3, *in_t2 != '\n'" (assignment_expression "puVar15 = in_t3" (identifier "puVar15") (= "=") (identifier "in_t3")) (, ",") (binary_expression "*in_t2 != '\n'" (pointer_expression "*in_t2" (* "*") (identifier "in_t2")) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00017458;" (goto "goto") (statement_identifier "LAB_00017458") (; ";"))) (if_statement "if (in_t2[1] == '\r') {\n            iVar8 = 2;\n          }\n          else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" (if "if") (parenthesized_expression "(in_t2[1] == '\r')" (( "(") (binary_expression "in_t2[1] == '\r'" (subscript_expression "in_t2[1]" (identifier "in_t2") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")")) (compound_statement "{\n            iVar8 = 2;\n          }" ({ "{") (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" (identifier "iVar8") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" (else "else") (compound_statement "{\n            iVar8 = 2;\n            if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }\n          }" ({ "{") (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" (identifier "iVar8") (= "=") (number_literal "2")) (; ";")) (if_statement "if (in_t2[1] != '\n') {\n              iVar8 = 1;\n            }" (if "if") (parenthesized_expression "(in_t2[1] != '\n')" (( "(") (binary_expression "in_t2[1] != '\n'" (subscript_expression "in_t2[1]" (identifier "in_t2") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n              iVar8 = 1;\n            }" ({ "{") (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" (identifier "iVar8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar13 = uVar13 - iVar8;" (assignment_expression "uVar13 = uVar13 - iVar8" (identifier "uVar13") (= "=") (binary_expression "uVar13 - iVar8" (identifier "uVar13") (- "-") (identifier "iVar8"))) (; ";")) (expression_statement "in_t2 = in_t2 + iVar8;" (assignment_expression "in_t2 = in_t2 + iVar8" (identifier "in_t2") (= "=") (binary_expression "in_t2 + iVar8" (identifier "in_t2") (+ "+") (identifier "iVar8"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0xcc) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xcc) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xcc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xcc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xcc)" (( "(") (binary_expression "param_1 + 0xcc" (identifier "param_1") (+ "+") (number_literal "0xcc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xd0)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 200) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 200) = 0" (pointer_expression "*(undefined4 *)(param_1 + 200)" (* "*") (cast_expression "(undefined4 *)(param_1 + 200)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 200)" (( "(") (binary_expression "param_1 + 200" (identifier "param_1") (+ "+") (number_literal "200")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_000175d8:\n        pcVar14 = in_t2;" (statement_identifier "LAB_000175d8") (: ":") (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" (identifier "pcVar14") (= "=") (identifier "in_t2")) (; ";"))) (if_statement "if (uVar13 == 0) goto LAB_00016c54;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016c54;" (goto "goto") (statement_identifier "LAB_00016c54") (; ";"))) (expression_statement "cVar10 = *in_t2;" (assignment_expression "cVar10 = *in_t2" (identifier "cVar10") (= "=") (pointer_expression "*in_t2" (* "*") (identifier "in_t2"))) (; ";")) (if_statement "if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;" (if "if") (parenthesized_expression "((cVar10 == '\r') || (cVar10 == '\n'))" (( "(") (binary_expression "(cVar10 == '\r') || (cVar10 == '\n')" (parenthesized_expression "(cVar10 == '\r')" (( "(") (binary_expression "cVar10 == '\r'" (identifier "cVar10") (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar10 == '\n')" (( "(") (binary_expression "cVar10 == '\n'" (identifier "cVar10") (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_000179e4;" (goto "goto") (statement_identifier "LAB_000179e4") (; ";"))) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" (identifier "in_t1") (= "=") (identifier "uVar13")) (; ";")) (if_statement "if (cVar10 != ';') {\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }" (if "if") (parenthesized_expression "(cVar10 != ';')" (( "(") (binary_expression "cVar10 != ';'" (identifier "cVar10") (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n          uVar6 = 1;\n          do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);\n          if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }\n          uVar12 = uVar11;\n          if (0x10 < uVar13) goto LAB_00017988;\nLAB_00016c2c:\n          pcVar14 = in_t2;\n          if (uVar13 == 0) goto LAB_00016c54;\n          goto LAB_00016c34;\n        }" ({ "{") (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          } while (uVar11 != 0x10);" (do "do") (compound_statement "{\n            uVar11 = uVar6 + 1;\n            uVar19 = uVar6;\n            if (uVar6 == uVar13) goto LAB_000178e4;\n            cVar1 = in_t2[uVar6];\n            uVar12 = uVar6;\n            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;\n            if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }\n            uVar6 = uVar11;\n          }" ({ "{") (expression_statement "uVar11 = uVar6 + 1;" (assignment_expression "uVar11 = uVar6 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar19 = uVar6;" (assignment_expression "uVar19 = uVar6" (identifier "uVar19") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar6 == uVar13) goto LAB_000178e4;" (if "if") (parenthesized_expression "(uVar6 == uVar13)" (( "(") (binary_expression "uVar6 == uVar13" (identifier "uVar6") (== "==") (identifier "uVar13")) () ")")) (goto_statement "goto LAB_000178e4;" (goto "goto") (statement_identifier "LAB_000178e4") (; ";"))) (expression_statement "cVar1 = in_t2[uVar6];" (assignment_expression "cVar1 = in_t2[uVar6]" (identifier "cVar1") (= "=") (subscript_expression "in_t2[uVar6]" (identifier "in_t2") ([ "[") (identifier "uVar6") (] "]"))) (; ";")) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" (identifier "uVar12") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;" (if "if") (parenthesized_expression "((cVar1 == '\r') || (cVar1 == '\n'))" (( "(") (binary_expression "(cVar1 == '\r') || (cVar1 == '\n')" (parenthesized_expression "(cVar1 == '\r')" (( "(") (binary_expression "cVar1 == '\r'" (identifier "cVar1") (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar1 == '\n')" (( "(") (binary_expression "cVar1 == '\n'" (identifier "cVar1") (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00017804;" (goto "goto") (statement_identifier "LAB_00017804") (; ";"))) (if_statement "if (cVar1 == ';') {\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }" (if "if") (parenthesized_expression "(cVar1 == ';')" (( "(") (binary_expression "cVar1 == ';'" (identifier "cVar1") (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n              if (uVar6 < uVar13) goto LAB_00017988;\n              goto LAB_00017804;\n            }" ({ "{") (if_statement "if (uVar6 < uVar13) goto LAB_00017988;" (if "if") (parenthesized_expression "(uVar6 < uVar13)" (( "(") (binary_expression "uVar6 < uVar13" (identifier "uVar6") (< "<") (identifier "uVar13")) () ")")) (goto_statement "goto LAB_00017988;" (goto "goto") (statement_identifier "LAB_00017988") (; ";"))) (goto_statement "goto LAB_00017804;" (goto "goto") (statement_identifier "LAB_00017804") (; ";")) (} "}"))) (expression_statement "uVar6 = uVar11;" (assignment_expression "uVar6 = uVar11" (identifier "uVar6") (= "=") (identifier "uVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar11 != 0x10)" (( "(") (binary_expression "uVar11 != 0x10" (identifier "uVar11") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (if_statement "if (in_t2[0x10] != ';') {\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }" (if "if") (parenthesized_expression "(in_t2[0x10] != ';')" (( "(") (binary_expression "in_t2[0x10] != ';'" (subscript_expression "in_t2[0x10]" (identifier "in_t2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n            if (uVar13 < 0x12) goto LAB_00016c2c;\n            uVar4 = *(undefined4 *)(param_1 + 0x18);\n            goto LAB_0001745c;\n          }" ({ "{") (if_statement "if (uVar13 < 0x12) goto LAB_00016c2c;" (if "if") (parenthesized_expression "(uVar13 < 0x12)" (( "(") (binary_expression "uVar13 < 0x12" (identifier "uVar13") (< "<") (number_literal "0x12")) () ")")) (goto_statement "goto LAB_00016c2c;" (goto "goto") (statement_identifier "LAB_00016c2c") (; ";"))) (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001745c;" (goto "goto") (statement_identifier "LAB_0001745c") (; ";")) (} "}"))) (expression_statement "uVar12 = uVar11;" (assignment_expression "uVar12 = uVar11" (identifier "uVar12") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (0x10 < uVar13) goto LAB_00017988;" (if "if") (parenthesized_expression "(0x10 < uVar13)" (( "(") (binary_expression "0x10 < uVar13" (number_literal "0x10") (< "<") (identifier "uVar13")) () ")")) (goto_statement "goto LAB_00017988;" (goto "goto") (statement_identifier "LAB_00017988") (; ";"))) (labeled_statement "LAB_00016c2c:\n          pcVar14 = in_t2;" (statement_identifier "LAB_00016c2c") (: ":") (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" (identifier "pcVar14") (= "=") (identifier "in_t2")) (; ";"))) (if_statement "if (uVar13 == 0) goto LAB_00016c54;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016c54;" (goto "goto") (statement_identifier "LAB_00016c54") (; ";"))) (goto_statement "goto LAB_00016c34;" (goto "goto") (statement_identifier "LAB_00016c34") (; ";")) (} "}"))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" (identifier "uVar12") (= "=") (identifier "uVar6")) (; ";")) (labeled_statement "LAB_00017988:\n        do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');" (statement_identifier "LAB_00017988") (: ":") (do_statement "do {\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        } while (in_t2[uVar7] != '\n');" (do "do") (compound_statement "{\n          uVar7 = uVar6 + 1;\n          uVar11 = uVar6 + 2;\n          uVar19 = uVar13;\n          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;\n          uVar6 = uVar7;\n        }" ({ "{") (expression_statement "uVar7 = uVar6 + 1;" (assignment_expression "uVar7 = uVar6 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = uVar6 + 2;" (assignment_expression "uVar11 = uVar6 + 2" (identifier "uVar11") (= "=") (binary_expression "uVar6 + 2" (identifier "uVar6") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar19 = uVar13;" (assignment_expression "uVar19 = uVar13" (identifier "uVar19") (= "=") (identifier "uVar13")) (; ";")) (if_statement "if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;" (if "if") (parenthesized_expression "((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r'))" (( "(") (binary_expression "(uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')" (parenthesized_expression "(uVar7 == uVar13)" (( "(") (binary_expression "uVar7 == uVar13" (identifier "uVar7") (== "==") (identifier "uVar13")) () ")")) (|| "||") (parenthesized_expression "(uVar19 = uVar7, in_t2[uVar7] == '\r')" (( "(") (comma_expression "uVar19 = uVar7, in_t2[uVar7] == '\r'" (assignment_expression "uVar19 = uVar7" (identifier "uVar19") (= "=") (identifier "uVar7")) (, ",") (binary_expression "in_t2[uVar7] == '\r'" (subscript_expression "in_t2[uVar7]" (identifier "in_t2") ([ "[") (identifier "uVar7") (] "]")) (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = uVar7;" (assignment_expression "uVar6 = uVar7" (identifier "uVar6") (= "=") (identifier "uVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(in_t2[uVar7] != '\n')" (( "(") (binary_expression "in_t2[uVar7] != '\n'" (subscript_expression "in_t2[uVar7]" (identifier "in_t2") ([ "[") (identifier "uVar7") (] "]")) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (; ";"))) (labeled_statement "LAB_00017804:\n        uVar6 = uVar12;" (statement_identifier "LAB_00017804") (: ":") (expression_statement "uVar6 = uVar12;" (assignment_expression "uVar6 = uVar12" (identifier "uVar6") (= "=") (identifier "uVar12")) (; ";"))) (if_statement "if (uVar13 <= uVar11) {\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }" (if "if") (parenthesized_expression "(uVar13 <= uVar11)" (( "(") (binary_expression "uVar13 <= uVar11" (identifier "uVar13") (<= "<=") (identifier "uVar11")) () ")")) (compound_statement "{\nLAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;\n          uVar19 = 1;\n          uVar12 = uVar6;\n        }" ({ "{") (labeled_statement "LAB_000178e4:\n          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;" (statement_identifier "LAB_000178e4") (: ":") (if_statement "if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;" (if "if") (parenthesized_expression "(((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0'))" (( "(") (binary_expression "((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')" (parenthesized_expression "((uVar19 != 1) || (uVar13 != 2))" (( "(") (binary_expression "(uVar19 != 1) || (uVar13 != 2)" (parenthesized_expression "(uVar19 != 1)" (( "(") (binary_expression "uVar19 != 1" (identifier "uVar19") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar13 != 2)" (( "(") (binary_expression "uVar13 != 2" (identifier "uVar13") (!= "!=") (number_literal "2")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar11 = 2, cVar10 != '0')" (( "(") (comma_expression "uVar11 = 2, cVar10 != '0'" (assignment_expression "uVar11 = 2" (identifier "uVar11") (= "=") (number_literal "2")) (, ",") (binary_expression "cVar10 != '0'" (identifier "cVar10") (!= "!=") (char_literal "'0'" (' "'") (character "0") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00016c2c;" (goto "goto") (statement_identifier "LAB_00016c2c") (; ";")))) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" (identifier "uVar19") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar12 = uVar6;" (assignment_expression "uVar12 = uVar6" (identifier "uVar12") (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "puVar15 = in_t3;" (assignment_expression "puVar15 = in_t3" (identifier "puVar15") (= "=") (identifier "in_t3")) (; ";")) (if_statement "if (uVar12 == 0x10) {\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }" (if "if") (parenthesized_expression "(uVar12 == 0x10)" (( "(") (binary_expression "uVar12 == 0x10" (identifier "uVar12") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\nLAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);\n          in_t3 = puVar15;\nLAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;\nLAB_00017464:\n          FUN_00020df0(uVar4,puVar9);\n          FUN_00014148(param_1,1);\n          goto LAB_00016c58;\n        }" ({ "{") (labeled_statement "LAB_00017458:\n          uVar4 = *(undefined4 *)(param_1 + 0x18);" (statement_identifier "LAB_00017458") (: ":") (expression_statement "uVar4 = *(undefined4 *)(param_1 + 0x18);" (assignment_expression "uVar4 = *(undefined4 *)(param_1 + 0x18)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (expression_statement "in_t3 = puVar15;" (assignment_expression "in_t3 = puVar15" (identifier "in_t3") (= "=") (identifier "puVar15")) (; ";")) (labeled_statement "LAB_0001745c:\n          puVar9 = PTR_DAT_0003f05c + -0x48f0;" (statement_identifier "LAB_0001745c") (: ":") (expression_statement "puVar9 = PTR_DAT_0003f05c + -0x48f0;" (assignment_expression "puVar9 = PTR_DAT_0003f05c + -0x48f0" (identifier "puVar9") (= "=") (binary_expression "PTR_DAT_0003f05c + -0x48f0" (identifier "PTR_DAT_0003f05c") (+ "+") (number_literal "-0x48f0"))) (; ";"))) (labeled_statement "LAB_00017464:\n          FUN_00020df0(uVar4,puVar9);" (statement_identifier "LAB_00017464") (: ":") (expression_statement "FUN_00020df0(uVar4,puVar9);" (call_expression "FUN_00020df0(uVar4,puVar9)" (identifier "FUN_00020df0") (argument_list "(uVar4,puVar9)" (( "(") (identifier "uVar4") (, ",") (identifier "puVar9") () ")"))) (; ";"))) (expression_statement "FUN_00014148(param_1,1);" (call_expression "FUN_00014148(param_1,1)" (identifier "FUN_00014148") (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")"))) (; ";")) (goto_statement "goto LAB_00016c58;" (goto "goto") (statement_identifier "LAB_00016c58") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" (identifier "uVar13") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00016c34:\n    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);" (statement_identifier "LAB_00016c34") (: ":") (expression_statement "(*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);" (call_expression "(*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13)" (parenthesized_expression "(*(code *)PTR_memmove_0003f2fc)" (( "(") (pointer_expression "*(code *)PTR_memmove_0003f2fc" (* "*") (cast_expression "(code *)PTR_memmove_0003f2fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_0003f2fc"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")")))) (, ",") (identifier "in_t2") (, ",") (identifier "uVar13") () ")"))) (; ";"))) (expression_statement "pcVar14 = in_t2;" (assignment_expression "pcVar14 = in_t2" (identifier "pcVar14") (= "=") (identifier "in_t2")) (; ";")) (labeled_statement "LAB_00016c54:\n    *(uint *)(param_1 + 100) = uVar13;" (statement_identifier "LAB_00016c54") (: ":") (expression_statement "*(uint *)(param_1 + 100) = uVar13;" (assignment_expression "*(uint *)(param_1 + 100) = uVar13" (pointer_expression "*(uint *)(param_1 + 100)" (* "*") (cast_expression "(uint *)(param_1 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar13")) (; ";"))) (expression_statement "in_t1 = uVar13;" (assignment_expression "in_t1 = uVar13" (identifier "in_t1") (= "=") (identifier "uVar13")) (; ";")) (expression_statement "in_t2 = pcVar14;" (assignment_expression "in_t2 = pcVar14" (identifier "in_t2") (= "=") (identifier "pcVar14")) (; ";")) (labeled_statement "LAB_00016c58:\n    cVar10 = *(char *)(param_1 + 0xf5);" (statement_identifier "LAB_00016c58") (: ":") (expression_statement "cVar10 = *(char *)(param_1 + 0xf5);" (assignment_expression "cVar10 = *(char *)(param_1 + 0xf5)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(param_1 + 0xf5)" (* "*") (cast_expression "(char *)(param_1 + 0xf5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf5)" (( "(") (binary_expression "param_1 + 0xf5" (identifier "param_1") (+ "+") (number_literal "0xf5")) () ")"))))) (; ";"))) (if_statement "if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xb4) == 0x13)" (( "(") (binary_expression "*(int *)(param_1 + 0xb4) == 0x13" (pointer_expression "*(int *)(param_1 + 0xb4)" (* "*") (cast_expression "(int *)(param_1 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")")))) (== "==") (number_literal "0x13")) () ")")) (goto_statement "goto LAB_00015eac;" (goto "goto") (statement_identifier "LAB_00015eac") (; ";"))) (if_statement "if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0" (binary_expression "*(int *)(param_1 + 0x78) != 0" (pointer_expression "*(int *)(param_1 + 0x78)" (* "*") (cast_expression "(int *)(param_1 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)(param_1 + 0x7c) != 0" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;\n      uVar4 = 1;\n      if (cVar10 != '\0') goto LAB_00015f88;\n      iVar8 = *(int *)(param_1 + 0x98);\n      if (iVar8 == 0) goto LAB_00015edc;\nLAB_00016168:\n      iVar5 = FUN_0002186c();\n      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));\n      if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      goto LAB_00015f8c;\n    }" ({ "{") (if_statement "if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;" (if "if") (parenthesized_expression "((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0'))" (( "(") (binary_expression "(((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')" (parenthesized_expression "(((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0))" (( "(") (binary_expression "((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&\n          (*(int *)(param_1 + 100) == 0)" (parenthesized_expression "((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1))" (( "(") (binary_expression "(*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)" (parenthesized_expression "(*(int *)(param_1 + 0x78) == -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x78) == -1" (pointer_expression "*(int *)(param_1 + 0x78)" (* "*") (cast_expression "(int *)(param_1 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x7c) == -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x7c) == -1" (pointer_expression "*(int *)(param_1 + 0x7c)" (* "*") (cast_expression "(int *)(param_1 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_1 + 0xa9) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xa9) != '\0'" (pointer_expression "*(char *)(param_1 + 0xa9)" (* "*") (cast_expression "(char *)(param_1 + 0xa9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa9)" (( "(") (binary_expression "param_1 + 0xa9" (identifier "param_1") (+ "+") (number_literal "0xa9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00016658;" (goto "goto") (statement_identifier "LAB_00016658") (; ";"))) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (if_statement "if (cVar10 != '\0') goto LAB_00015f88;" (if "if") (parenthesized_expression "(cVar10 != '\0')" (( "(") (binary_expression "cVar10 != '\0'" (identifier "cVar10") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00015f88;" (goto "goto") (statement_identifier "LAB_00015f88") (; ";"))) (expression_statement "iVar8 = *(int *)(param_1 + 0x98);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x98)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0x98)" (* "*") (cast_expression "(int *)(param_1 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x98)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_00015edc;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015edc;" (goto "goto") (statement_identifier "LAB_00015edc") (; ";"))) (labeled_statement "LAB_00016168:\n      iVar5 = FUN_0002186c();" (statement_identifier "LAB_00016168") (: ":") (expression_statement "iVar5 = FUN_0002186c();" (assignment_expression "iVar5 = FUN_0002186c()" (identifier "iVar5") (= "=") (call_expression "FUN_0002186c()" (identifier "FUN_0002186c") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));" (assignment_expression "puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" (identifier "puVar16") (= "=") (cast_expression "(undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar8 < iVar5 - *(int *)(param_1 + 0x94))" (( "(") (binary_expression "iVar8 < iVar5 - *(int *)(param_1 + 0x94)" (identifier "iVar8") (< "<") (binary_expression "iVar5 - *(int *)(param_1 + 0x94)" (identifier "iVar5") (- "-") (pointer_expression "*(int *)(param_1 + 0x94)" (* "*") (cast_expression "(int *)(param_1 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x94)" (( "(") (binary_expression "param_1 + 0x94" (identifier "param_1") (+ "+") (number_literal "0x94")) () ")")))))) () ")"))))) (; ";")) (if_statement "if (puVar16 == (undefined *)0x0) {\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }\n      else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" (if "if") (parenthesized_expression "(puVar16 == (undefined *)0x0)" (( "(") (binary_expression "puVar16 == (undefined *)0x0" (identifier "puVar16") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar4 = 1;\n        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" ({ "{") (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xf5) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xf5) == '\0'" (pointer_expression "*(char *)(param_1 + 0xf5)" (* "*") (cast_expression "(char *)(param_1 + 0xf5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf5)" (( "(") (binary_expression "param_1 + 0xf5" (identifier "param_1") (+ "+") (number_literal "0xf5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00015edc;" (goto "goto") (statement_identifier "LAB_00015edc") (; ";"))) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xab)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xab)" (( "(") (binary_expression "param_1 + 0xab" (identifier "param_1") (+ "+") (number_literal "0xab")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" (identifier "uVar13") (= "=") (identifier "in_t1")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" (else "else") (compound_statement "{\n        FUN_00014148(param_1,2);\n        uVar4 = 1;\n        *(undefined1 *)(param_1 + 0xab) = 0;\n        uVar13 = in_t1;\n      }" ({ "{") (expression_statement "FUN_00014148(param_1,2);" (call_expression "FUN_00014148(param_1,2)" (identifier "FUN_00014148") (argument_list "(param_1,2)" (( "(") (identifier "param_1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0xab) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xab) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xab)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xab)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xab)" (( "(") (binary_expression "param_1 + 0xab" (identifier "param_1") (+ "+") (number_literal "0xab")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = in_t1;" (assignment_expression "uVar13 = in_t1" (identifier "uVar13") (= "=") (identifier "in_t1")) (; ";")) (} "}")))) (goto_statement "goto LAB_00015f8c;" (goto "goto") (statement_identifier "LAB_00015f8c") (; ";")) (} "}"))) (if_statement "if (*(char *)(param_1 + 0xc0) == '\0') {\nLAB_00016658:\n      uVar4 = 9;\n    }\n    else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xc0) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xc0) == '\0'" (pointer_expression "*(char *)(param_1 + 0xc0)" (* "*") (cast_expression "(char *)(param_1 + 0xc0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc0)" (( "(") (binary_expression "param_1 + 0xc0" (identifier "param_1") (+ "+") (number_literal "0xc0")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00016658:\n      uVar4 = 9;\n    }" ({ "{") (labeled_statement "LAB_00016658:\n      uVar4 = 9;" (statement_identifier "LAB_00016658") (: ":") (expression_statement "uVar4 = 9;" (assignment_expression "uVar4 = 9" (identifier "uVar4") (= "=") (number_literal "9")) (; ";"))) (} "}")) (else_clause "else {\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" (else "else") (compound_statement "{\n      uVar4 = 7;\n      if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }\n    }" ({ "{") (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" (identifier "uVar4") (= "=") (number_literal "7")) (; ";")) (if_statement "if (*(char *)(param_1 + 0xa9) != '\0') {\n        uVar4 = 9;\n      }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xa9) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0xa9) != '\0'" (pointer_expression "*(char *)(param_1 + 0xa9)" (* "*") (cast_expression "(char *)(param_1 + 0xa9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa9)" (( "(") (binary_expression "param_1 + 0xa9" (identifier "param_1") (+ "+") (number_literal "0xa9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar4 = 9;\n      }" ({ "{") (expression_statement "uVar4 = 9;" (assignment_expression "uVar4 = 9" (identifier "uVar4") (= "=") (number_literal "9")) (; ";")) (} "}"))) (} "}")))) (expression_statement "*(undefined4 *)(param_1 + 0xb4) = uVar4;" (assignment_expression "*(undefined4 *)(param_1 + 0xb4) = uVar4" (pointer_expression "*(undefined4 *)(param_1 + 0xb4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xb4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (cVar10 == '\0') {\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }" (if "if") (parenthesized_expression "(cVar10 == '\0')" (( "(") (binary_expression "cVar10 == '\0'" (identifier "cVar10") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar8 = *(int *)(param_1 + 0xf0);\n      goto LAB_00015ec0;\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar8 = *(int *)(param_1 + 0xf0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0xf0)" (* "*") (cast_expression "(int *)(param_1 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf0)" (( "(") (binary_expression "param_1 + 0xf0" (identifier "param_1") (+ "+") (number_literal "0xf0")) () ")"))))) (; ";")) (goto_statement "goto LAB_00015ec0;" (goto "goto") (statement_identifier "LAB_00015ec0") (; ";")) (} "}"))) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

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

int function_1(type_1 *connection)

{
  type_2 *puVar1;
  int var_14;
  int var_8;
  type_3 var_26;
  size_t var_17;
  int var_20;
  type_4 MVar7;
  char *pcVar8;
  type_5 var_3;
  char var_2;
  type_6 var_19;
  size_t var_15;
  char *in_t2;
  char *var_18;
  type_2 *var_7;
  type_7 *pMVar13;
  size_t line_len;
  size_t left_unprocessed;
  char cbuf [10];
  
  puVar1 = PTR___stack_chk_guard_0003f2ec;
  var_14 = *(int *)PTR___stack_chk_guard_0003f2ec;
  var_7 = var_1 + -0x45c0;
  pMVar13 = connection->daemon;
  var_2 = connection->suspended;
  connection->in_idle = true;
LAB_00015eac:
  var_8 = 1;
  if (var_2 != '\0') goto LAB_00015f88;
  var_3 = connection->tls_state;
LAB_00015ec0:
  if ((1 < var_3 - var_4) &&
     (connection->state < (var_5|var_6))) {
                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    var_14 = (*(type_8 *)(&_gp + *(int *)(var_7 + connection->state * 4)))();
    return var_14;
  }
  var_8 = connection->connection_timeout;
  if (var_8 != 0) goto LAB_00016168;
LAB_00015edc:
  var_3 = connection->tls_state;
  var_7 = (type_2 *)0x1;
  if (var_3 == var_9) {
LAB_00015eec:
    var_7 = var_1 + -0x4610;
    if (connection->state < var_5) {
                    /* WARNING: Could not emulate address calculation at 0x00015f18 */
                    /* WARNING: Treating indirect jump as call */
      var_14 = (*(type_8 *)(&_gp + *(int *)(var_7 + connection->state * 4)))();
      return var_14;
    }
LAB_00015ff0:
    var_8 = 1;
    if (connection->suspended != false) goto LAB_00015f88;
  }
  else {
    if (var_3 != var_4) {
      if (var_3 != var_10) goto LAB_00015eec;
      var_8 = (*(type_8 *)PTR_gnutls_record_get_direction_0003f27c)(connection->tls_session);
      if (var_8 == 0) {
        connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;
      }
      else {
        connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE;
      }
      goto LAB_00015ff0;
    }
    connection->event_loop_info = MHD_EVENT_LOOP_INFO_READ;
  }
  if ((pMVar13->options & var_11) == var_12) {
    var_8 = 1;
  }
  else {
    var_8 = var_13(connection);
  }
LAB_00015f88:
  do {
    connection->in_idle = false;
    var_15 = var_19;
    var_18 = in_t2;
LAB_00015f8c:
    if (var_14 == *(int *)puVar1) {
      return var_8;
    }
    (*(type_8 *)PTR___stack_chk_fail_0003f2b8)();
    if (var_15 < 2) {
      var_19 = 1;
LAB_00016c34:
      (*(type_8 *)PTR_memmove_0003f2fc)(connection->read_buffer,var_18,var_19);
LAB_00016c54:
      connection->read_buffer_offset = var_19;
      in_t2 = var_18;
    }
    else {
      var_19 = var_15;
      in_t2 = var_18;
      var_17 = var_16(var_18,0,&connection->current_chunk_size);
      if (var_17 == 0) {
        var_8 = 1;
        pcVar8 = var_18 + 1;
        if ((1 < var_15) && ((*pcVar8 == '\r' || (*pcVar8 == '\n')))) {
          var_8 = 2;
          pcVar8 = var_18 + 2;
        }
        var_20 = *(int *)&connection->current_chunk_size;
        var_19 = var_15 - var_8;
        var_8 = (int)connection->current_chunk_size;
        *(type_9 *)((int)&connection->current_chunk_offset + 4) = 0;
        *(type_9 *)&connection->current_chunk_offset = 0;
        if (var_19 == 0) {
          if (var_20 == 0 && var_8 == 0) {
            *(type_9 *)((int)&connection->remaining_upload_size + 4) = 0;
            *(type_9 *)&connection->remaining_upload_size = 0;
          }
        }
        else {
          if (var_20 != 0 || var_8 != 0) {
            var_14 = var_21(pcVar8,var_8,connection->have_chunked_upload);
            return var_14;
          }
          *(type_9 *)((int)&connection->remaining_upload_size + 4) = 0;
          *(type_9 *)&connection->remaining_upload_size = 0;
          var_18 = pcVar8;
          if (var_19 != 0) goto LAB_00016c34;
        }
        goto LAB_00016c54;
      }
      var_22(connection->daemon,var_1 + -0x48f0);
      var_23(connection,MHD_REQUEST_TERMINATED_WITH_ERROR);
    }
    var_2 = connection->suspended;
    if (connection->state == var_24) goto LAB_00015eac;
    var_8 = (int)connection->remaining_upload_size;
    if (*(int *)&connection->remaining_upload_size != 0 || var_8 != 0) {
      if ((((*(int *)&connection->remaining_upload_size == -1) && (var_8 == -1)) &&
          (connection->read_buffer_offset == 0)) && (connection->read_closed != false))
      goto LAB_00016658;
      var_8 = 1;
      if ((type_10)var_2 != false) goto LAB_00015f88;
      var_8 = connection->connection_timeout;
      if (var_8 == 0) goto LAB_00015edc;
LAB_00016168:
      var_26 = var_25();
      var_7 = (type_2 *)(type_6)(var_8 < var_26 - connection->last_activity);
      if (var_7 == (type_2 *)0x0) {
        var_8 = 1;
        if (connection->suspended == false) goto LAB_00015edc;
        connection->in_idle = false;
        var_15 = var_19;
        var_18 = in_t2;
      }
      else {
        var_23(connection,MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);
        var_8 = 1;
        connection->in_idle = false;
        var_15 = var_19;
        var_18 = in_t2;
      }
      goto LAB_00015f8c;
    }
    if (connection->have_chunked_upload == false) {
LAB_00016658:
      MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;
    }
    else {
      MVar7 = MHD_CONNECTION_BODY_RECEIVED;
      if (connection->read_closed != false) {
        MVar7 = MHD_CONNECTION_FOOTERS_RECEIVED;
      }
    }
    connection->state = MVar7;
    if ((type_10)var_2 == false) {
      var_3 = connection->tls_state;
      goto LAB_00015ec0;
    }
    var_8 = 1;
  } while( true );
}


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

undefined4 MASKED(int param_1)

{
  char cVar1;
  bool bVar2;
  undefined *puVar3;
  undefined4 uVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  undefined *puVar9;
  char cVar10;
  uint uVar11;
  uint uVar12;
  uint in_t1;
  uint uVar13;
  char *in_t2;
  char *pcVar14;
  undefined4 *in_t3;
  undefined4 *puVar15;
  undefined *puVar16;
  undefined *puVar17;
  int iVar18;
  uint uVar19;
  undefined4 local_4c;
  int local_48;
  uint local_3c [4];
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_0003f2ec;
  local_2c = *(int *)PTR___stack_chk_guard_0003f2ec;
  puVar16 = PTR_DAT_0003f05c + -0x45c0;
  iVar18 = *(int *)(param_1 + 0x18);
  cVar10 = *(char *)(param_1 + 0xf5);
  puVar17 = PTR_DAT_0003f05c + -0x4884;
  *(undefined1 *)(param_1 + 0xab) = 1;
LAB_00015eac:
  uVar4 = 1;
  if (cVar10 != '\0') goto LAB_00015f88;
  iVar8 = *(int *)(param_1 + 0xf0);
LAB_00015ec0:
  if ((1 < iVar8 - 1U) && (*(uint *)(param_1 + 0xb4) < 0x15)) {
                    /* WARNING: Could not recover jumptable at 0x00015f48. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();
    return uVar4;
  }
  iVar8 = *(int *)(param_1 + 0x98);
  if (iVar8 != 0) goto LAB_00016168;
LAB_00015edc:
  iVar8 = *(int *)(param_1 + 0xf0);
  puVar16 = (undefined *)0x1;
  if (iVar8 == 0) {
LAB_00015eec:
    puVar17 = PTR_0003f058 + 0x27f0;
    puVar16 = PTR_DAT_0003f05c + -0x4610;
    if (*(uint *)(param_1 + 0xb4) < 0x14) {
                    /* WARNING: Could not emulate address calculation at 0x00015f18 */
                    /* WARNING: Treating indirect jump as call */
      uVar4 = (*(code *)(&_gp_1 + *(int *)(puVar16 + *(uint *)(param_1 + 0xb4) * 4)))();
      return uVar4;
    }
switchD_00015f24_caseD_3:
    uVar4 = 1;
    if (*(char *)(param_1 + 0xf5) != '\0') goto LAB_00015f88;
  }
  else {
    if (iVar8 != 1) {
      if (iVar8 != 2) goto LAB_00015eec;
      iVar8 = (*(code *)PTR_gnutls_record_get_direction_0003f27c)(*(undefined4 *)(param_1 + 0xe4));
      if (iVar8 == 0) {
        *(undefined4 *)(param_1 + 0xb8) = 0;
      }
      else {
        *(undefined4 *)(param_1 + 0xb8) = 1;
      }
      goto switchD_00015f24_caseD_3;
    }
    *(undefined4 *)(param_1 + 0xb8) = 0;
  }
  if ((*(uint *)(iVar18 + 0xf8) & 0x200) == 0) {
    uVar4 = 1;
  }
  else {
    uVar4 = FUN_000150d8(param_1);
  }
LAB_00015f88:
  do {
    *(undefined1 *)(param_1 + 0xab) = 0;
    uVar13 = in_t1;
LAB_00015f8c:
    if (local_2c == *(int *)puVar3) {
      return uVar4;
    }
    (*(code *)PTR___stack_chk_fail_0003f2b8)();
LAB_000179e4:
    uVar12 = 0;
    if (1 < uVar13) {
      uVar11 = 1;
      uVar19 = 0;
      pcVar14 = in_t2;
      do {
        in_t1 = uVar13;
        in_t2 = pcVar14;
        puVar15 = in_t3;
        uVar6 = FUN_00022050(pcVar14,uVar12,param_1 + 200);
        if (uVar6 != uVar12) goto LAB_00017458;
        in_t2 = pcVar14 + uVar11;
        if ((uVar11 < uVar13) && ((*in_t2 == '\r' || (*in_t2 == '\n')))) {
          uVar11 = uVar19 + 2;
          in_t2 = pcVar14 + uVar11;
        }
        uVar13 = uVar13 - uVar11;
        *(undefined4 *)(param_1 + 0xd4) = 0;
        *(undefined4 *)(param_1 + 0xd0) = 0;
        if (uVar13 == 0) {
          if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {
            *(undefined4 *)(param_1 + 0x7c) = 0;
            *(undefined4 *)(param_1 + 0x78) = 0;
          }
          goto LAB_00016c54;
        }
        if (*(int *)(param_1 + 200) == 0 && *(int *)(param_1 + 0xcc) == 0) {
          *(undefined4 *)(param_1 + 0x7c) = 0;
          *(undefined4 *)(param_1 + 0x78) = 0;
          goto LAB_00016c2c;
        }
        cVar10 = *(char *)(param_1 + 0xc0);
LAB_00016aa4:
        iVar8 = *(int *)(param_1 + 0x78);
        uVar12 = *(uint *)(param_1 + 0x7c);
        in_t1 = uVar13;
        if (((cVar10 == '\0') || (iVar8 != -1)) || (uVar12 != 0xffffffff)) {
          if ((-iVar8 == (uint)(uVar12 - 1 < uVar12)) && (0xfffffffd < uVar12 - 1))
          goto LAB_00016f9c;
          if ((iVar8 == 0) && (uVar12 < uVar13)) {
            bVar2 = false;
          }
          else {
            bVar2 = false;
            uVar12 = uVar13;
          }
LAB_00016af0:
          *(undefined1 *)(param_1 + 0xa0) = 1;
          local_3c[0] = uVar12;
          iVar8 = (*(code *)*in_t3)(in_t3[1],param_1,*(undefined4 *)(param_1 + 0x38),
                                    *(undefined4 *)(param_1 + 0x34),*(undefined4 *)(param_1 + 0x3c),
                                    in_t2,local_3c,param_1 + 0x2c);
          if (iVar8 == 0) {
            uVar4 = *(undefined4 *)(param_1 + 0x18);
            puVar9 = PTR_DAT_0003f05c + -0x4fc0;
            goto LAB_00017464;
          }
          if (uVar12 < local_3c[0]) {
            (**(code **)PTR_DAT_0003f070)
                      (*(undefined4 *)PTR_DAT_0003f068,local_48 + -0x51c8,0x9f3,local_4c);
          }
          if (local_3c[0] != 0) {
            if (((in_t3[0x3e] & 8) == 0) || (*(char *)(param_1 + 0xf5) != '\0')) {
              bVar2 = false;
            }
            else {
              FUN_00020df0(in_t3,puVar17);
              bVar2 = false;
            }
          }
          cVar10 = *(char *)(param_1 + 0xc0);
          iVar8 = uVar12 - local_3c[0];
          if (cVar10 != '\0') {
            uVar19 = *(uint *)(param_1 + 0xd4);
            uVar11 = uVar19 + iVar8;
            *(uint *)(param_1 + 0xd4) = uVar11;
            *(uint *)(param_1 + 0xd0) = (uint)(uVar11 < uVar19) + *(int *)(param_1 + 0xd0);
          }
          uVar19 = *(uint *)(param_1 + 0x7c);
          in_t2 = in_t2 + iVar8;
          uVar13 = local_3c[0] + (uVar13 - uVar12);
          if ((*(int *)(param_1 + 0x78) != -1) || (uVar19 != 0xffffffff)) {
            *(uint *)(param_1 + 0x7c) = uVar19 - iVar8;
            *(uint *)(param_1 + 0x78) = *(int *)(param_1 + 0x78) - (uint)(uVar19 < uVar19 - iVar8);
          }
          if (!bVar2) goto LAB_00016c2c;
          goto LAB_00016aa4;
        }
        uVar11 = *(uint *)(param_1 + 0xd0);
        uVar19 = *(uint *)(param_1 + 200);
        uVar12 = *(uint *)(param_1 + 0xd4);
        uVar6 = *(uint *)(param_1 + 0xcc);
        if ((uVar11 != uVar19) || (uVar12 != uVar6)) {
          if ((uVar19 <= uVar11) && ((uVar19 != uVar11 || (uVar6 <= uVar12)))) goto LAB_000175d8;
          uVar12 = uVar6 - uVar12;
          if ((uVar19 - uVar11 != (uint)(uVar6 < uVar12)) ||
             (bVar2 = uVar12 < uVar13, uVar13 < uVar12)) {
LAB_00016f9c:
            bVar2 = false;
            uVar12 = uVar13;
          }
          goto LAB_00016af0;
        }
        if ((uVar11 != 0 || uVar12 != 0) && (1 < uVar13)) {
          if ((*in_t2 != '\r') && (puVar15 = in_t3, *in_t2 != '\n')) goto LAB_00017458;
          if (in_t2[1] == '\r') {
            iVar8 = 2;
          }
          else {
            iVar8 = 2;
            if (in_t2[1] != '\n') {
              iVar8 = 1;
            }
          }
          uVar13 = uVar13 - iVar8;
          in_t2 = in_t2 + iVar8;
          *(undefined4 *)(param_1 + 0xd4) = 0;
          *(undefined4 *)(param_1 + 0xcc) = 0;
          *(undefined4 *)(param_1 + 0xd0) = 0;
          *(undefined4 *)(param_1 + 200) = 0;
        }
LAB_000175d8:
        pcVar14 = in_t2;
        if (uVar13 == 0) goto LAB_00016c54;
        cVar10 = *in_t2;
        if ((cVar10 == '\r') || (cVar10 == '\n')) goto LAB_000179e4;
        in_t1 = uVar13;
        if (cVar10 != ';') {
          uVar6 = 1;
          do {
            uVar11 = uVar6 + 1;
            uVar19 = uVar6;
            if (uVar6 == uVar13) goto LAB_000178e4;
            cVar1 = in_t2[uVar6];
            uVar12 = uVar6;
            if ((cVar1 == '\r') || (cVar1 == '\n')) goto LAB_00017804;
            if (cVar1 == ';') {
              if (uVar6 < uVar13) goto LAB_00017988;
              goto LAB_00017804;
            }
            uVar6 = uVar11;
          } while (uVar11 != 0x10);
          if (in_t2[0x10] != ';') {
            if (uVar13 < 0x12) goto LAB_00016c2c;
            uVar4 = *(undefined4 *)(param_1 + 0x18);
            goto LAB_0001745c;
          }
          uVar12 = uVar11;
          if (0x10 < uVar13) goto LAB_00017988;
LAB_00016c2c:
          pcVar14 = in_t2;
          if (uVar13 == 0) goto LAB_00016c54;
          goto LAB_00016c34;
        }
        uVar6 = 0;
        uVar12 = uVar6;
LAB_00017988:
        do {
          uVar7 = uVar6 + 1;
          uVar11 = uVar6 + 2;
          uVar19 = uVar13;
          if ((uVar7 == uVar13) || (uVar19 = uVar7, in_t2[uVar7] == '\r')) break;
          uVar6 = uVar7;
        } while (in_t2[uVar7] != '\n');
LAB_00017804:
        uVar6 = uVar12;
        if (uVar13 <= uVar11) {
LAB_000178e4:
          if (((uVar19 != 1) || (uVar13 != 2)) || (uVar11 = 2, cVar10 != '0')) goto LAB_00016c2c;
          uVar19 = 1;
          uVar12 = uVar6;
        }
        puVar15 = in_t3;
        if (uVar12 == 0x10) {
LAB_00017458:
          uVar4 = *(undefined4 *)(param_1 + 0x18);
          in_t3 = puVar15;
LAB_0001745c:
          puVar9 = PTR_DAT_0003f05c + -0x48f0;
LAB_00017464:
          FUN_00020df0(uVar4,puVar9);
          FUN_00014148(param_1,1);
          goto LAB_00016c58;
        }
      } while( true );
    }
    uVar13 = 1;
LAB_00016c34:
    (*(code *)PTR_memmove_0003f2fc)(*(undefined4 *)(param_1 + 0x44),in_t2,uVar13);
    pcVar14 = in_t2;
LAB_00016c54:
    *(uint *)(param_1 + 100) = uVar13;
    in_t1 = uVar13;
    in_t2 = pcVar14;
LAB_00016c58:
    cVar10 = *(char *)(param_1 + 0xf5);
    if (*(int *)(param_1 + 0xb4) == 0x13) goto LAB_00015eac;
    if (*(int *)(param_1 + 0x78) != 0 || *(int *)(param_1 + 0x7c) != 0) {
      if ((((*(int *)(param_1 + 0x78) == -1) && (*(int *)(param_1 + 0x7c) == -1)) &&
          (*(int *)(param_1 + 100) == 0)) && (*(char *)(param_1 + 0xa9) != '\0')) goto LAB_00016658;
      uVar4 = 1;
      if (cVar10 != '\0') goto LAB_00015f88;
      iVar8 = *(int *)(param_1 + 0x98);
      if (iVar8 == 0) goto LAB_00015edc;
LAB_00016168:
      iVar5 = FUN_0002186c();
      puVar16 = (undefined *)(uint)(iVar8 < iVar5 - *(int *)(param_1 + 0x94));
      if (puVar16 == (undefined *)0x0) {
        uVar4 = 1;
        if (*(char *)(param_1 + 0xf5) == '\0') goto LAB_00015edc;
        *(undefined1 *)(param_1 + 0xab) = 0;
        uVar13 = in_t1;
      }
      else {
        FUN_00014148(param_1,2);
        uVar4 = 1;
        *(undefined1 *)(param_1 + 0xab) = 0;
        uVar13 = in_t1;
      }
      goto LAB_00015f8c;
    }
    if (*(char *)(param_1 + 0xc0) == '\0') {
LAB_00016658:
      uVar4 = 9;
    }
    else {
      uVar4 = 7;
      if (*(char *)(param_1 + 0xa9) != '\0') {
        uVar4 = 9;
      }
    }
    *(undefined4 *)(param_1 + 0xb4) = uVar4;
    if (cVar10 == '\0') {
      iVar8 = *(int *)(param_1 + 0xf0);
      goto LAB_00015ec0;
    }
    uVar4 = 1;
  } while( true );
}

