
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

char * trim2(char *s,int how)

{
  _Bool _Var1;
  byte *pbVar2;
  int iVar3;
  byte *pbVar4;
  uint uVar5;
  int iVar6;
  int *piVar7;
  undefined4 uVar8;
  char *pcVar9;
  byte *pbVar10;
  byte *pbVar11;
  char cVar12;
  mbstate_t *pmVar13;
  undefined *puVar14;
  uint uStack_74;
  char *local_6c;
  mbi_iterator_t i;
  
  iVar3 = *(int *)PTR___stack_chk_guard_000312c4;
  pbVar10 = (byte *)how;
  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();
  if (pbVar4 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();
  if (uVar5 < 2) {
    if (how != 0) {
      uVar5 = (uint)(char)*pbVar4;
      pbVar10 = pbVar4;
      if (uVar5 != 0) {
        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);
        do {
          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;
          pbVar10 = pbVar10 + 1;
          uVar5 = (uint)(char)*pbVar10;
        } while (uVar5 != 0);
      }
      (*(code *)PTR_strlen_0003125c)(pbVar10);
      (*(code *)PTR_memmove_000312d4)(pbVar4);
      if (how == 1) goto LAB_000160c8;
    }
    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);
    pbVar11 = pbVar4 + iVar6 + -1;
    if (pbVar4 <= pbVar11) {
      piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();
      iVar6 = *piVar7;
      do {
        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;
        *pbVar11 = 0;
        pbVar11 = pbVar11 + -1;
      } while (pbVar4 <= pbVar11);
    }
  }
  else {
    if (how != 0) {
      i.cur.ptr = (char *)pbVar4;
      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);
      puVar14 = PTR_is_basic_table_00031124;
      i.limit = (char *)(pbVar4 + iVar6);
      i.in_shift = false;
      i.state.__count = 0;
      i.state.__value.__wch = 0;
      i.next_done = false;
      if (pbVar4 < i.limit) {
        pmVar13 = &i.state;
        pbVar10 = pbVar4;
        do {
          pcVar9 = i.limit;
          i.next_done = false;
          if (i.in_shift == false) {
            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {
              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);
              if (iVar6 == 0) {
                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)
                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,
                                            0x8e,PTR_UINT_000310d8 + -0x990);
                return pcVar9;
              }
              i.in_shift = true;
              goto LAB_00015edc;
            }
            i.cur.bytes = 1;
            i.cur.wc = (wchar_t)(char)*pbVar10;
            i.cur.wc_valid = true;
          }
          else {
LAB_00015edc:
            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);
            if (i.cur.bytes == 0xffffffff) {
              i.cur.bytes = 1;
              i.cur.wc_valid = false;
            }
            else if (i.cur.bytes == 0xfffffffe) {
              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;
              i.cur.wc_valid = false;
            }
            else {
              if (i.cur.bytes == 0) {
                i.cur.bytes = 1;
                if (*i.cur.ptr != '\0') {
                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)
                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,
                                              0xa9,PTR_UINT_000310d8 + -0x990);
                  return pcVar9;
                }
                if (i.cur.wc != 0) {
                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)
                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,
                                              0xaa,PTR_UINT_000310d8 + -0x990);
                  return pcVar9;
                }
              }
              i.cur.wc_valid = true;
              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);
              if (iVar6 != 0) {
                i.in_shift = false;
              }
            }
          }
          i.next_done = true;
          if ((i.cur.wc_valid == false) ||
             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;
          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);
          i.next_done = false;
          i.cur.ptr = (char *)pbVar10;
        } while (pbVar10 < i.limit);
      }
      pbVar10 = (byte *)i.cur.ptr;
      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);
      (*(code *)PTR_memmove_000312d4)(pbVar4);
      if (how == 1) goto LAB_000160c8;
    }
    i.cur.ptr = (char *)pbVar4;
    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);
    puVar14 = PTR_is_basic_table_00031124;
    i.limit = (char *)(pbVar4 + iVar6);
    i.in_shift = false;
    i.state.__count = 0;
    i.state.__value.__wch = 0;
    i.next_done = false;
    if (pbVar4 < i.limit) {
      cVar12 = '\0';
      pmVar13 = &i.state;
      pbVar11 = pbVar10;
      pbVar2 = pbVar4;
      do {
        pbVar10 = pbVar2;
        pcVar9 = i.limit;
        i.next_done = false;
        if (i.in_shift == false) {
          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {
            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);
            if (iVar6 == 0) {
              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)
                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e
                                          ,PTR_UINT_000310d8 + -0x990);
              return pcVar9;
            }
            i.in_shift = true;
            goto LAB_0001623c;
          }
          i.cur.bytes = 1;
          i.cur.wc = (wchar_t)(char)*pbVar10;
          i.cur.wc_valid = true;
          pbVar10 = pbVar11;
        }
        else {
LAB_0001623c:
          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);
          if (i.cur.bytes == 0xffffffff) {
            i.cur.bytes = 1;
            i.cur.wc_valid = false;
          }
          else if (i.cur.bytes == 0xfffffffe) {
            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;
            i.cur.wc_valid = false;
          }
          else {
            if (i.cur.bytes == 0) {
              i.cur.bytes = 1;
              if (*i.cur.ptr != '\0') {
                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)
                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,
                                            0xa9,PTR_UINT_000310d8 + -0x990);
                return pcVar9;
              }
              if (i.cur.wc != 0) {
                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)
                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,
                                            0xaa);
                return pcVar9;
              }
            }
            i.cur.wc_valid = true;
            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);
            if (iVar6 != 0) {
              i.in_shift = false;
            }
          }
        }
        i.next_done = true;
        _Var1 = i.next_done;
        i.next_done = true;
        if (cVar12 == '\0') {
          cVar12 = '\x01';
          if (i.cur.wc_valid != false) {
            i.next_done = _Var1;
            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);
            cVar12 = iVar6 == 0;
          }
        }
        else if (cVar12 == '\x01') {
          if (i.cur.wc_valid != false) {
            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);
            if (iVar6 != 0) {
              cVar12 = '\x02';
              local_6c = i.cur.ptr;
            }
          }
        }
        else if (cVar12 == '\x02') {
          if (i.cur.wc_valid == false) {
            cVar12 = '\x01';
          }
          else {
            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);
            if (iVar6 == 0) {
              cVar12 = '\x01';
            }
          }
        }
        else {
          cVar12 = '\x01';
        }
        i.cur.ptr = i.cur.ptr + i.cur.bytes;
        i.next_done = false;
        pbVar11 = pbVar10;
        pbVar2 = (byte *)i.cur.ptr;
      } while (i.cur.ptr < i.limit);
      if (cVar12 == '\x02') {
        *local_6c = '\0';
      }
    }
  }
LAB_000160c8:
  if (iVar3 == *(int *)PTR___stack_chk_guard_000312c4) {
    return (char *)pbVar4;
  }
  puVar14 = PTR___stack_chk_fail_000312ac;
  (*(code *)PTR___stack_chk_fail_000312ac)();
  if (pbVar10 == (byte *)0x0) {
    (**(code **)(puVar14 + 0x1ad7c))();
  }
  else {
    (**(code **)(puVar14 + 0x1ad7c))();
  }
  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x95c,5);
  (**(code **)(puVar14 + 0x1ad7c))(iVar3,1,*(undefined4 *)(puVar14 + 0x1acc4),uVar8,0x7e2);
  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x958,5);
  (**(code **)(puVar14 + 0x1ae80))(uVar8,iVar3);
  if (uStack_74 < 10) {
                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pcVar9 = (char *)(*(code *)(puVar14 +
                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +
                               0x22c20))();
    return pcVar9;
  }
  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x74c,5);
  pcVar9 = (char *)(**(code **)(puVar14 + 0x1ad7c))
                             (iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,
                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)
  ;
  return pcVar9;
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

byte * trim2(undefined4 param_1,byte *param_2)

{
  bool bVar1;
  undefined1 uVar2;
  byte *pbVar3;
  byte *pbVar4;
  uint uVar5;
  int iVar6;
  int *piVar7;
  undefined4 uVar8;
  byte *pbVar9;
  byte *pbVar10;
  char cVar11;
  byte *pbVar12;
  undefined *puVar13;
  uint uStack_74;
  byte *local_6c;
  undefined4 local_60;
  undefined4 local_5c;
  undefined1 local_58;
  byte *local_54;
  int local_50;
  char local_4c;
  int local_48 [7];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_000312c4;
  pbVar9 = param_2;
  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();
  if (pbVar4 == (byte *)0x0) {
    xalloc_die();
LAB_00015e6c:
    local_54 = pbVar4;
    iVar6 = (*(code *)PTR_strlen_0003125c)();
    puVar13 = PTR_is_basic_table_00031124;
    pbVar9 = pbVar4 + iVar6;
    bVar1 = false;
    local_60 = 0;
    local_5c = 0;
    local_58 = 0;
    if (pbVar4 < pbVar9) {
      pbVar12 = pbVar4;
      do {
        local_58 = 0;
        if (bVar1) {
LAB_00015edc:
          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);
          if (local_50 == -1) {
            local_50 = 1;
            local_4c = '\0';
          }
          else if (local_50 == -2) {
            local_50 = (int)pbVar9 - (int)local_54;
            local_4c = '\0';
          }
          else {
            if (local_50 == 0) {
              local_50 = 1;
              if (*local_54 != 0) {
                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,
                                            0xa9,PTR_UINT_000310d8 + -0x990);
                return pbVar9;
              }
              if (local_48[0] != 0) {
                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,
                                            0xaa,PTR_UINT_000310d8 + -0x990);
                return pbVar9;
              }
            }
            local_4c = '\x01';
            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);
            if (iVar6 != 0) {
              bVar1 = false;
            }
          }
        }
        else {
          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {
            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);
            if (iVar6 == 0) {
              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e
                                          ,PTR_UINT_000310d8 + -0x990);
              return pbVar9;
            }
            bVar1 = true;
            goto LAB_00015edc;
          }
          local_50 = 1;
          local_48[0] = (int)(char)*pbVar12;
          local_4c = '\x01';
        }
        local_58 = 1;
        if ((local_4c == '\0') ||
           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;
        pbVar12 = local_54 + local_50;
        local_58 = 0;
        local_54 = pbVar12;
      } while (pbVar12 < pbVar9);
    }
    pbVar9 = local_54;
    (*(code *)PTR_strlen_0003125c)(local_54);
    (*(code *)PTR_memmove_000312d4)(pbVar4);
    if (param_2 == (byte *)0x1) goto LAB_000160c8;
  }
  else {
    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();
    if (uVar5 < 2) {
      if (param_2 != (byte *)0x0) {
        uVar5 = (uint)(char)*pbVar4;
        pbVar9 = pbVar4;
        if (uVar5 != 0) {
          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);
          do {
            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;
            pbVar9 = pbVar9 + 1;
            uVar5 = (uint)(char)*pbVar9;
          } while (uVar5 != 0);
        }
        (*(code *)PTR_strlen_0003125c)(pbVar9);
        (*(code *)PTR_memmove_000312d4)(pbVar4);
        if (param_2 == (byte *)0x1) goto LAB_000160c8;
      }
      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);
      pbVar12 = pbVar4 + iVar6 + -1;
      if (pbVar4 <= pbVar12) {
        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();
        iVar6 = *piVar7;
        do {
          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;
          *pbVar12 = 0;
          pbVar12 = pbVar12 + -1;
        } while (pbVar4 <= pbVar12);
      }
      goto LAB_000160c8;
    }
    if (param_2 != (byte *)0x0) goto LAB_00015e6c;
  }
  local_54 = pbVar4;
  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);
  puVar13 = PTR_is_basic_table_00031124;
  pbVar12 = pbVar4 + iVar6;
  bVar1 = false;
  local_60 = 0;
  local_5c = 0;
  local_58 = 0;
  if (pbVar4 < pbVar12) {
    cVar11 = '\0';
    pbVar10 = pbVar9;
    pbVar3 = pbVar4;
    do {
      pbVar9 = pbVar3;
      local_58 = 0;
      if (bVar1) {
LAB_0001623c:
        local_50 = rpl_mbrtowc(local_48);
        if (local_50 == -1) {
          local_50 = 1;
          local_4c = '\0';
        }
        else if (local_50 == -2) {
          local_50 = (int)pbVar12 - (int)local_54;
          local_4c = '\0';
        }
        else {
          if (local_50 == 0) {
            local_50 = 1;
            if (*local_54 != 0) {
              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9
                                          ,PTR_UINT_000310d8 + -0x990);
              return pbVar9;
            }
            if (local_48[0] != 0) {
              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa
                                         );
              return pbVar9;
            }
          }
          local_4c = '\x01';
          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);
          if (iVar6 != 0) {
            bVar1 = false;
          }
        }
      }
      else {
        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {
          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);
          if (iVar6 == 0) {
            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,
                                        PTR_UINT_000310d8 + -0x990);
            return pbVar9;
          }
          bVar1 = true;
          goto LAB_0001623c;
        }
        local_50 = 1;
        local_48[0] = (int)(char)*pbVar9;
        local_4c = '\x01';
        pbVar9 = pbVar10;
      }
      local_58 = 1;
      uVar2 = local_58;
      local_58 = 1;
      if (cVar11 == '\0') {
        cVar11 = '\x01';
        if (local_4c != '\0') {
          local_58 = uVar2;
          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);
          cVar11 = iVar6 == 0;
        }
      }
      else if (cVar11 == '\x01') {
        if (local_4c != '\0') {
          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);
          if (iVar6 != 0) {
            cVar11 = '\x02';
            local_6c = local_54;
          }
        }
      }
      else if (cVar11 == '\x02') {
        if (local_4c == '\0') {
          cVar11 = '\x01';
        }
        else {
          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);
          if (iVar6 == 0) {
            cVar11 = '\x01';
          }
        }
      }
      else {
        cVar11 = '\x01';
      }
      local_54 = local_54 + local_50;
      local_58 = 0;
      pbVar10 = pbVar9;
      pbVar3 = local_54;
    } while (local_54 < pbVar12);
    if (cVar11 == '\x02') {
      *local_6c = 0;
    }
  }
LAB_000160c8:
  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {
    return pbVar4;
  }
  iVar6 = local_2c;
  puVar13 = PTR___stack_chk_fail_000312ac;
  (*(code *)PTR___stack_chk_fail_000312ac)();
  if (pbVar9 == (byte *)0x0) {
    (**(code **)(puVar13 + 0x1ad7c))();
  }
  else {
    (**(code **)(puVar13 + 0x1ad7c))();
  }
  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);
  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);
  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);
  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);
  if (uStack_74 < 10) {
                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pbVar9 = (byte *)(*(code *)(puVar13 +
                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +
                               0x22c20))();
    return pbVar9;
  }
  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);
  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))
                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,
                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)
  ;
  return pbVar9;
}


lui gp,0x2
addiu gp,gp,0x3320
addu gp,gp,t9
addiu sp,sp,-0x88
sw ra,0x84(sp)
sw s8,0x80(sp)
sw s7,0x7c(sp)
sw s6,0x78(sp)
sw s5,0x74(sp)
sw s4,0x70(sp)
sw s3,0x6c(sp)
sw s2,0x68(sp)
sw s1,0x64(sp)
sw s0,0x60(sp)
sw gp,0x10(sp)
or s3,a1,zero
lw v0,-0x7ddc(gp)
lw v0,0x0(v0)
sw v0,0x5c(sp)
lw t9,-0x7dd4(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00015e60
_or s1,v0,zero
lw t9,-0x7e10(gp)
jalr t9
_nop
lw gp,0x10(sp)
sltiu v0,v0,0x2
bne v0,zero,0x00016364
_nop
bne s3,zero,0x00015e6c
_or a0,s1,zero
sw s1,0x34(sp)
or a0,s1,zero
lw t9,-0x7e44(gp)
jalr t9
_nop
lw gp,0x10(sp)
addu s3,s1,v0
sw s3,0x20(sp)
sb zero,0x24(sp)
sw zero,0x28(sp)
sw zero,0x2c(sp)
sltu v0,s1,s3
beq v0,zero,0x000160c4
_sb zero,0x30(sp)
or s0,s1,zero
or s2,zero,zero
li s4,0x1
addiu s5,sp,0x28
addiu s7,sp,0x40
li s6,-0x1
b 0x0001614c
_lw s8,-0x7f7c(gp)
lw t9,-0x7fb4(gp)
bal 0x000170f0
_nop
sw s1,0x34(sp)
lw t9,-0x7e44(gp)
jalr t9
_nop
lw gp,0x10(sp)
addu s2,s1,v0
sw s2,0x20(sp)
sb zero,0x24(sp)
sw zero,0x28(sp)
sw zero,0x2c(sp)
sb zero,0x30(sp)
sltu v0,s1,s2
beq v0,zero,0x00016084
_or s0,s1,zero
li s4,0x1
addiu s5,sp,0x28
addiu s7,sp,0x40
li s6,-0x1
b 0x00015fd0
_lw s8,-0x7f7c(gp)
lw t9,-0x7de0(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00015f58
_lw a3,-0x7fc8(gp)
sb s4,0x24(sp)
or a3,s5,zero
subu a2,s2,s0
or a1,s0,zero
or a0,s7,zero
lw t9,-0x7f74(gp)
bal 0x00018780
_nop
lw gp,0x10(sp)
beq v0,s6,0x00015f7c
_sw v0,0x38(sp)
li v1,-0x2
beq v0,v1,0x00016020
_nop
bne v0,zero,0x00015f30
_li v0,0x1
sw v0,0x38(sp)
lw v0,0x34(sp)
lb v0,0x0(v0)
bne v0,zero,0x00016038
_lw v0,0x40(sp)
bne v0,zero,0x00016060
_lw a3,-0x7fc8(gp)
sb s4,0x3c(sp)
or a0,s5,zero
lw t9,-0x7de0(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00015f88
_nop
b 0x00015f88
_sb zero,0x24(sp)
addiu a3,a3,-0x990
li a2,0x8e
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x9a0
lw a0,-0x7fc8(gp)
addiu a0,a0,-0xa28
lw t9,-0x7ec0(gp)
jalr t9
_nop
li v0,0x1
sw v0,0x38(sp)
sb zero,0x3c(sp)
sb s4,0x30(sp)
lbu v0,0x3c(sp)
beq v0,zero,0x00016084
_lw a0,0x40(sp)
lw t9,-0x7e30(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00016084
_lw s0,0x34(sp)
lw v0,0x38(sp)
addu s0,s0,v0
sw s0,0x34(sp)
sb zero,0x30(sp)
lw s2,0x20(sp)
sltu v0,s0,s2
beq v0,zero,0x00016084
_nop
lbu v0,0x30(sp)
bne v0,zero,0x00015f8c
_lbu v0,0x24(sp)
bne v0,zero,0x00015edc
_or a3,s5,zero
lbu a0,0x0(s0)
srl v1,a0,0x5
sll v1,v1,0x2
addu v1,s8,v1
lw v0,0x0(v1)
srlv v0,v0,a0
andi v0,v0,0x1
beq v0,zero,0x00015ebc
_or a0,s5,zero
li v0,0x1
sw v0,0x38(sp)
lb v1,0x0(s0)
sw v1,0x40(sp)
b 0x00015f88
_sb v0,0x3c(sp)
lw v0,0x20(sp)
lw v1,0x34(sp)
subu v0,v0,v1
sw v0,0x38(sp)
b 0x00015f88
_sb zero,0x3c(sp)
lw a3,-0x7fc8(gp)
addiu a3,a3,-0x990
li a2,0xa9
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x9a0
lw a0,-0x7fc8(gp)
addiu a0,a0,-0xa10
lw t9,-0x7ec0(gp)
jalr t9
_nop
addiu a3,a3,-0x990
li a2,0xaa
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x9a0
lw a0,-0x7fc8(gp)
addiu a0,a0,-0x9f8
lw t9,-0x7ec0(gp)
jalr t9
_nop
lw s0,0x34(sp)
or a0,s0,zero
lw t9,-0x7e44(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu a2,v0,0x1
or a1,s0,zero
or a0,s1,zero
lw t9,-0x7dcc(gp)
jalr t9
_nop
lw gp,0x10(sp)
li v0,0x1
bne s3,v0,0x00015e08
_nop
or v0,s1,zero
lw a0,0x5c(sp)
lw v1,-0x7ddc(gp)
lw v1,0x0(v1)
bne a0,v1,0x0001646c
_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,zero,0x00016128
_li s2,0x1
lw a0,0x40(sp)
lw t9,-0x7e30(gp)
jalr t9
_nop
lw gp,0x10(sp)
sltiu s2,v0,0x1
lw s0,0x34(sp)
lw v0,0x38(sp)
addu s0,s0,v0
sw s0,0x34(sp)
sb zero,0x30(sp)
lw s3,0x20(sp)
sltu v0,s0,s3
beq v0,zero,0x00016350
_li v0,0x2
lbu v0,0x30(sp)
bne v0,zero,0x0001619c
_lbu v0,0x24(sp)
bne v0,zero,0x0001623c
_or a3,s5,zero
lbu a0,0x0(s0)
srl v1,a0,0x5
sll v1,v1,0x2
addu v1,s8,v1
lw v0,0x0(v1)
srlv v0,v0,a0
andi v0,v0,0x1
beq v0,zero,0x00016220
_or a0,s5,zero
li v0,0x1
sw v0,0x38(sp)
lb v1,0x0(s0)
sw v1,0x40(sp)
sb v0,0x3c(sp)
sb s4,0x30(sp)
beq s2,zero,0x00016108
_lbu v0,0x3c(sp)
li v0,0x1
beq s2,v0,0x000161c0
_li v0,0x2
beq s2,v0,0x000161f0
_lbu v0,0x3c(sp)
b 0x00016128
_li s2,0x1
lbu v0,0x3c(sp)
beq v0,zero,0x00016128
_lw a0,0x40(sp)
lw t9,-0x7e30(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00016128
_lw v0,0x34(sp)
sw v0,0x1c(sp)
b 0x00016128
_li s2,0x2
beq v0,zero,0x00016218
_nop
lw a0,0x40(sp)
lw t9,-0x7e30(gp)
jalr t9
_nop
lw gp,0x10(sp)
li v1,0x1
b 0x00016128
_movz s2,v1,v0
b 0x00016128
_li s2,0x1
lw t9,-0x7de0(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x000162bc
_or a3,s5,zero
sb s4,0x24(sp)
subu a2,s3,s0
or a1,s0,zero
or a0,s7,zero
lw t9,-0x7f74(gp)
bal 0x00018780
_nop
lw gp,0x10(sp)
beq v0,s6,0x000162e4
_sw v0,0x38(sp)
li v1,-0x2
beq v0,v1,0x000162f4
_nop
bne v0,zero,0x00016294
_li v0,0x1
sw v0,0x38(sp)
lw v0,0x34(sp)
lb v0,0x0(v0)
bne v0,zero,0x0001630c
_lw a3,-0x7fc8(gp)
lw v0,0x40(sp)
bne v0,zero,0x00016330
_addiu a3,a3,-0x990
sb s4,0x3c(sp)
or a0,s5,zero
lw t9,-0x7de0(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00016198
_nop
b 0x00016198
_sb zero,0x24(sp)
lw a3,-0x7fc8(gp)
addiu a3,a3,-0x990
li a2,0x8e
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x9a0
lw a0,-0x7fc8(gp)
addiu a0,a0,-0xa28
lw t9,-0x7ec0(gp)
jalr t9
_nop
li v0,0x1
sw v0,0x38(sp)
b 0x00016198
_sb zero,0x3c(sp)
lw v0,0x20(sp)
lw v1,0x34(sp)
subu v0,v0,v1
sw v0,0x38(sp)
b 0x00016198
_sb zero,0x3c(sp)
addiu a3,a3,-0x990
li a2,0xa9
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x9a0
lw a0,-0x7fc8(gp)
addiu a0,a0,-0xa10
lw t9,-0x7ec0(gp)
jalr t9
_nop
li a2,0xaa
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x9a0
lw a0,-0x7fc8(gp)
addiu a0,a0,-0x9f8
lw t9,-0x7ec0(gp)
jalr t9
_nop
bne s2,v0,0x000160c8
_or v0,s1,zero
lw v0,0x1c(sp)
b 0x000160c4
_sb zero,0x0(v0)
beq s3,zero,0x000163f8
_or a0,s1,zero
lb s0,0x0(s1)
beq s0,zero,0x00016464
_lw t9,-0x7ec4(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v1,0x0(v0)
or s2,s1,zero
andi s0,s0,0xff
sll s0,s0,0x1
addu s0,v1,s0
lhu v0,0x0(s0)
andi v0,v0,0x20
beq v0,zero,0x000163bc
_or a0,s2,zero
addiu s2,s2,0x1
lb s0,0x0(s2)
bne s0,zero,0x0001638c
_nop
or a0,s2,zero
lw t9,-0x7e44(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu a2,v0,0x1
or a1,s2,zero
or a0,s1,zero
lw t9,-0x7dcc(gp)
jalr t9
_nop
lw gp,0x10(sp)
li v0,0x1
beq s3,v0,0x000160c8
_or v0,s1,zero
or a0,s1,zero
lw t9,-0x7e44(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x1
addu s0,s1,v0
sltu v0,s0,s1
bne v0,zero,0x000160c4
_lw t9,-0x7ec4(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v1,0x0(v0)
lbu v0,0x0(s0)
sll v0,v0,0x1
addu v0,v1,v0
lhu v0,0x0(v0)
andi v0,v0,0x20
beq v0,zero,0x000160c8
_or v0,s1,zero
sb zero,0x0(s0)
addiu s0,s0,-0x1
sltu v0,s0,s1
beq v0,zero,0x0001642c
_or v0,s1,zero
b 0x000160c8
_nop
b 0x000163b8
_or s2,s1,zero
lw t9,-0x7df4(gp)
jalr t9
_nop
nop
nop
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nbyte * trim2(undefined4 param_1,byte *param_2)\n\n{\n  bool bVar1;\n  undefined1 uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char cVar11;\n  byte *pbVar12;\n  undefined *puVar13;\n  uint uStack_74;\n  byte *local_6c;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined1 local_58;\n  byte *local_54;\n  int local_50;\n  char local_4c;\n  int local_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar9 = param_2;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }\n  local_54 = pbVar4;\n  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n  puVar13 = PTR_is_basic_table_00031124;\n  pbVar12 = pbVar4 + iVar6;\n  bVar1 = false;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }\nLAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }\n  iVar6 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);\n  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pbVar9;\n}\n\n" comment (function_definition "byte * trim2(undefined4 param_1,byte *param_2)\n\n{\n  bool bVar1;\n  undefined1 uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char cVar11;\n  byte *pbVar12;\n  undefined *puVar13;\n  uint uStack_74;\n  byte *local_6c;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined1 local_58;\n  byte *local_54;\n  int local_50;\n  char local_4c;\n  int local_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar9 = param_2;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }\n  local_54 = pbVar4;\n  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n  puVar13 = PTR_is_basic_table_00031124;\n  pbVar12 = pbVar4 + iVar6;\n  bVar1 = false;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }\nLAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }\n  iVar6 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);\n  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pbVar9;\n}" type_identifier (pointer_declarator "* trim2(undefined4 param_1,byte *param_2)" * (function_declarator "trim2(undefined4 param_1,byte *param_2)" identifier (parameter_list "(undefined4 param_1,byte *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined1 uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char cVar11;\n  byte *pbVar12;\n  undefined *puVar13;\n  uint uStack_74;\n  byte *local_6c;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined1 local_58;\n  byte *local_54;\n  int local_50;\n  char local_4c;\n  int local_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar9 = param_2;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }\n  local_54 = pbVar4;\n  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n  puVar13 = PTR_is_basic_table_00031124;\n  pbVar12 = pbVar4 + iVar6;\n  bVar1 = false;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }\nLAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }\n  iVar6 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);\n  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pbVar9;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined1 local_58;" type_identifier identifier ;) (declaration "byte *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "char local_4c;" primitive_type identifier ;) (declaration "int local_48 [7];" primitive_type (array_declarator "local_48 [7]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000312c4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000312c4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000312c4" * (cast_expression "(int *)PTR___stack_chk_guard_000312c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();" (assignment_expression "pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)()" identifier = (cast_expression "(byte *)(*(code *)PTR_strdup_000312cc)()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strdup_000312cc)()" (parenthesized_expression "(*(code *)PTR_strdup_000312cc)" ( (pointer_expression "*(code *)PTR_strdup_000312cc" * (cast_expression "(code *)PTR_strdup_000312cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }" { (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00015e6c:\n    local_54 = pbVar4;" statement_identifier : (expression_statement "local_54 = pbVar4;" (assignment_expression "local_54 = pbVar4" identifier = identifier) ;)) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)();" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)()" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)()" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar13 = PTR_is_basic_table_00031124;" (assignment_expression "puVar13 = PTR_is_basic_table_00031124" identifier = identifier) ;) (expression_statement "pbVar9 = pbVar4 + iVar6;" (assignment_expression "pbVar9 = pbVar4 + iVar6" identifier = (binary_expression "pbVar4 + iVar6" identifier + identifier)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }" if (parenthesized_expression "(pbVar4 < pbVar9)" ( (binary_expression "pbVar4 < pbVar9" identifier < identifier) )) (compound_statement "{\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }" { (expression_statement "pbVar12 = pbVar4;" (assignment_expression "pbVar12 = pbVar4" identifier = identifier) ;) (do_statement "do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);" do (compound_statement "{\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }" { (labeled_statement "LAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);" statement_identifier : (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" identifier = (call_expression "rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" identifier (argument_list "(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" ( identifier , identifier , (binary_expression "(int)pbVar9 - (int)pbVar12" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (if_statement "if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" if (parenthesized_expression "(local_50 == -1)" ( (binary_expression "local_50 == -1" identifier == number_literal) )) (compound_statement "{\n            local_50 = 1;\n            local_4c = '\0';\n          }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" else (if_statement "if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" if (parenthesized_expression "(local_50 == -2)" ( (binary_expression "local_50 == -2" identifier == number_literal) )) (compound_statement "{\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }" { (expression_statement "local_50 = (int)pbVar9 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar9 - (int)local_54" identifier = (binary_expression "(int)pbVar9 - (int)local_54" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" else (compound_statement "{\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" { (if_statement "if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (if_statement "if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" if (parenthesized_expression "(*local_54 != 0)" ( (binary_expression "*local_54 != 0" (pointer_expression "*local_54" * identifier) != number_literal) )) (compound_statement "{\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa10" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (if_statement "if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" if (parenthesized_expression "(local_48[0] != 0)" ( (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0x9f8" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) })) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar6 != 0) {\n              bVar1 = false;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar1 = false;\n            }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) }))))) }) (else_clause "else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" else (compound_statement "{\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" { (if_statement "if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }" if (parenthesized_expression "((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1" (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f)" (pointer_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4)" * (cast_expression "(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + (uint)(*pbVar12 >> 5) * 4)" ( (binary_expression "puVar13 + (uint)(*pbVar12 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar12 >> 5) * 4" (call_expression "(uint)(*pbVar12 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar12 >> 5)" ( (binary_expression "*pbVar12 >> 5" (pointer_expression "*pbVar12" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar12 & 0x1f)" ( (binary_expression "*pbVar12 & 0x1f" (pointer_expression "*pbVar12" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }" { (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa28" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;) })) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_48[0] = (int)(char)*pbVar12;" (assignment_expression "local_48[0] = (int)(char)*pbVar12" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (cast_expression "(int)(char)*pbVar12" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar12" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar12" * identifier)))) ;) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (if_statement "if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;" if (parenthesized_expression "((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0))" ( (binary_expression "(local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)" (parenthesized_expression "(local_4c == '\0')" ( (binary_expression "local_4c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)" ( (comma_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = local_54 + local_50;" (assignment_expression "pbVar12 = local_54 + local_50" identifier = (binary_expression "local_54 + local_50" identifier + identifier)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = pbVar12;" (assignment_expression "local_54 = pbVar12" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar12 < pbVar9)" ( (binary_expression "pbVar12 < pbVar9" identifier < identifier) )) ;) })) (expression_statement "pbVar9 = local_54;" (assignment_expression "pbVar9 = local_54" identifier = identifier) ;) (expression_statement "(*(code *)PTR_strlen_0003125c)(local_54);" (call_expression "(*(code *)PTR_strlen_0003125c)(local_54)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_54)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_memmove_000312d4)(pbVar4);" (call_expression "(*(code *)PTR_memmove_000312d4)(pbVar4)" (parenthesized_expression "(*(code *)PTR_memmove_000312d4)" ( (pointer_expression "*(code *)PTR_memmove_000312d4" * (cast_expression "(code *)PTR_memmove_000312d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))) ;) (if_statement "if (param_2 == (byte *)0x1) goto LAB_000160c8;" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000160c8;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" else (compound_statement "{\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" { (expression_statement "uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();" (assignment_expression "uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_00031290)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_00031290)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_00031290" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_00031290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }" if (parenthesized_expression "(uVar5 < 2)" ( (binary_expression "uVar5 < 2" identifier < number_literal) )) (compound_statement "{\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }" { (if_statement "if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }" { (expression_statement "uVar5 = (uint)(char)*pbVar4;" (assignment_expression "uVar5 = (uint)(char)*pbVar4" identifier = (binary_expression "(uint)(char)*pbVar4" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar9 = pbVar4;" (assignment_expression "pbVar9 = pbVar4" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000311dc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000311dc" * (cast_expression "(code *)PTR___ctype_b_loc_000311dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))))) ;) (do_statement "do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);" do (compound_statement "{\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          }" { (if_statement "if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2)" * (cast_expression "(ushort *)(*piVar7 + (uVar5 & 0xff) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + (uVar5 & 0xff) * 2)" ( (binary_expression "*piVar7 + (uVar5 & 0xff) * 2" (pointer_expression "*piVar7" * identifier) + (binary_expression "(uVar5 & 0xff) * 2" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)(char)*pbVar9;" (assignment_expression "uVar5 = (uint)(char)*pbVar9" identifier = (binary_expression "(uint)(char)*pbVar9" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })) (expression_statement "(*(code *)PTR_strlen_0003125c)(pbVar9);" (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar9)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar9)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_memmove_000312d4)(pbVar4);" (call_expression "(*(code *)PTR_memmove_000312d4)(pbVar4)" (parenthesized_expression "(*(code *)PTR_memmove_000312d4)" ( (pointer_expression "*(code *)PTR_memmove_000312d4" * (cast_expression "(code *)PTR_memmove_000312d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))) ;) (if_statement "if (param_2 == (byte *)0x1) goto LAB_000160c8;" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000160c8;" goto statement_identifier ;)) })) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier )))) ;) (expression_statement "pbVar12 = pbVar4 + iVar6 + -1;" (assignment_expression "pbVar12 = pbVar4 + iVar6 + -1" identifier = (binary_expression "pbVar4 + iVar6 + -1" (binary_expression "pbVar4 + iVar6" identifier + identifier) + number_literal)) ;) (if_statement "if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }" if (parenthesized_expression "(pbVar4 <= pbVar12)" ( (binary_expression "pbVar4 <= pbVar12" identifier <= identifier) )) (compound_statement "{\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000311dc)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000311dc)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000311dc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000311dc" * (cast_expression "(code *)PTR___ctype_b_loc_000311dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = *piVar7;" (assignment_expression "iVar6 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (do_statement "do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);" do (compound_statement "{\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        }" { (if_statement "if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar6 + (uint)*pbVar12 * 2)" * (cast_expression "(ushort *)(iVar6 + (uint)*pbVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (uint)*pbVar12 * 2)" ( (binary_expression "iVar6 + (uint)*pbVar12 * 2" identifier + (binary_expression "(uint)*pbVar12 * 2" (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*pbVar12 = 0;" (assignment_expression "*pbVar12 = 0" (pointer_expression "*pbVar12" * identifier) = number_literal) ;) (expression_statement "pbVar12 = pbVar12 + -1;" (assignment_expression "pbVar12 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 <= pbVar12)" ( (binary_expression "pbVar4 <= pbVar12" identifier <= identifier) )) ;) })) (goto_statement "goto LAB_000160c8;" goto statement_identifier ;) })) (if_statement "if (param_2 != (byte *)0x0) goto LAB_00015e6c;" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00015e6c;" goto statement_identifier ;)) }))) (expression_statement "local_54 = pbVar4;" (assignment_expression "local_54 = pbVar4" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier )))) ;) (expression_statement "puVar13 = PTR_is_basic_table_00031124;" (assignment_expression "puVar13 = PTR_is_basic_table_00031124" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar4 + iVar6;" (assignment_expression "pbVar12 = pbVar4 + iVar6" identifier = (binary_expression "pbVar4 + iVar6" identifier + identifier)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }" if (parenthesized_expression "(pbVar4 < pbVar12)" ( (binary_expression "pbVar4 < pbVar12" identifier < identifier) )) (compound_statement "{\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }" { (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar3 = pbVar4;" (assignment_expression "pbVar3 = pbVar4" identifier = identifier) ;) (do_statement "do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);" do (compound_statement "{\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    }" { (expression_statement "pbVar9 = pbVar3;" (assignment_expression "pbVar9 = pbVar3" identifier = identifier) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }" { (labeled_statement "LAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);" statement_identifier : (expression_statement "local_50 = rpl_mbrtowc(local_48);" (assignment_expression "local_50 = rpl_mbrtowc(local_48)" identifier = (call_expression "rpl_mbrtowc(local_48)" identifier (argument_list "(local_48)" ( identifier )))) ;)) (if_statement "if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(local_50 == -1)" ( (binary_expression "local_50 == -1" identifier == number_literal) )) (compound_statement "{\n          local_50 = 1;\n          local_4c = '\0';\n        }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" else (if_statement "if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(local_50 == -2)" ( (binary_expression "local_50 == -2" identifier == number_literal) )) (compound_statement "{\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }" { (expression_statement "local_50 = (int)pbVar12 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar12 - (int)local_54" identifier = (binary_expression "(int)pbVar12 - (int)local_54" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" else (compound_statement "{\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" { (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (if_statement "if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" if (parenthesized_expression "(*local_54 != 0)" ( (binary_expression "*local_54 != 0" (pointer_expression "*local_54" * identifier) != number_literal) )) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa10" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (if_statement "if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }" if (parenthesized_expression "(local_48[0] != 0)" ( (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" ( (binary_expression "PTR_UINT_000310d8 + -0x9f8" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) })) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar6 != 0) {\n            bVar1 = false;\n          }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar1 = false;\n          }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) }))))) }) (else_clause "else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" else (compound_statement "{\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" { (if_statement "if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }" if (parenthesized_expression "((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1" (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f)" (pointer_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4)" * (cast_expression "(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + (uint)(*pbVar9 >> 5) * 4)" ( (binary_expression "puVar13 + (uint)(*pbVar9 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar9 >> 5) * 4" (call_expression "(uint)(*pbVar9 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar9 >> 5)" ( (binary_expression "*pbVar9 >> 5" (pointer_expression "*pbVar9" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar9 & 0x1f)" ( (binary_expression "*pbVar9 & 0x1f" (pointer_expression "*pbVar9" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }" { (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa28" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_0001623c;" goto statement_identifier ;) })) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_48[0] = (int)(char)*pbVar9;" (assignment_expression "local_48[0] = (int)(char)*pbVar9" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (cast_expression "(int)(char)*pbVar9" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar9" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar9" * identifier)))) ;) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (if_statement "if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" if (parenthesized_expression "(cVar11 == '\0')" ( (binary_expression "cVar11 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }" { (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }" if (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }" { (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) ;) (expression_statement "cVar11 = iVar6 == 0;" (assignment_expression "cVar11 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) })) }) (else_clause "else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" else (if_statement "if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" if (parenthesized_expression "(cVar11 == '\x01')" ( (binary_expression "cVar11 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }" { (if_statement "if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }" if (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }" { (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }" { (expression_statement "cVar11 = '\x02';" (assignment_expression "cVar11 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" identifier = identifier) ;) })) })) }) (else_clause "else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" else (if_statement "if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" if (parenthesized_expression "(cVar11 == '\x02')" ( (binary_expression "cVar11 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }" { (if_statement "if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" if (parenthesized_expression "(local_4c == '\0')" ( (binary_expression "local_4c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar11 = '\x01';\n        }" { (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }) (else_clause "else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" else (compound_statement "{\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" { (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            cVar11 = '\x01';\n          }" { (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) }))) }) (else_clause "else {\n        cVar11 = '\x01';\n      }" else (compound_statement "{\n        cVar11 = '\x01';\n      }" { (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))))))) (expression_statement "local_54 = local_54 + local_50;" (assignment_expression "local_54 = local_54 + local_50" identifier = (binary_expression "local_54 + local_50" identifier + identifier)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar3 = local_54;" (assignment_expression "pbVar3 = local_54" identifier = identifier) ;) }) while (parenthesized_expression "(local_54 < pbVar12)" ( (binary_expression "local_54 < pbVar12" identifier < identifier) )) ;) (if_statement "if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }" if (parenthesized_expression "(cVar11 == '\x02')" ( (binary_expression "cVar11 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      *local_6c = 0;\n    }" { (expression_statement "*local_6c = 0;" (assignment_expression "*local_6c = 0" (pointer_expression "*local_6c" * identifier) = number_literal) ;) })) })) (labeled_statement "LAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000312c4)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000312c4" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000312c4" * (cast_expression "(int *)PTR___stack_chk_guard_000312c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar4;\n  }" { (return_statement "return pbVar4;" return identifier ;) }))) (expression_statement "iVar6 = local_2c;" (assignment_expression "iVar6 = local_2c" identifier = identifier) ;) (expression_statement "puVar13 = PTR___stack_chk_fail_000312ac;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000312ac" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000312ac)();" (call_expression "(*(code *)PTR___stack_chk_fail_000312ac)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000312ac)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000312ac" * (cast_expression "(code *)PTR___stack_chk_fail_000312ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" { (expression_statement "(**(code **)(puVar13 + 0x1ad7c))();" (call_expression "(**(code **)(puVar13 + 0x1ad7c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" * (cast_expression "(code **)(puVar13 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ad7c)" ( (binary_expression "puVar13 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" else (compound_statement "{\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" { (expression_statement "(**(code **)(puVar13 + 0x1ad7c))();" (call_expression "(**(code **)(puVar13 + 0x1ad7c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" * (cast_expression "(code **)(puVar13 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ad7c)" ( (binary_expression "puVar13 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" identifier = (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar13 + 0x1ae30)" * (pointer_expression "*(code **)(puVar13 + 0x1ae30)" * (cast_expression "(code **)(puVar13 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ae30)" ( (binary_expression "puVar13 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" ( number_literal , (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x95c" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" * (cast_expression "(int *)(puVar13 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1ac58)" ( (binary_expression "puVar13 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);" (call_expression "(**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" * (cast_expression "(code **)(puVar13 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ad7c)" ( (binary_expression "puVar13 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(puVar13 + 0x1acc4)" * (cast_expression "(undefined4 *)(puVar13 + 0x1acc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1acc4)" ( (binary_expression "puVar13 + 0x1acc4" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" identifier = (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar13 + 0x1ae30)" * (pointer_expression "*(code **)(puVar13 + 0x1ae30)" * (cast_expression "(code **)(puVar13 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ae30)" ( (binary_expression "puVar13 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" ( number_literal , (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x958" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" * (cast_expression "(int *)(puVar13 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1ac58)" ( (binary_expression "puVar13 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);" (call_expression "(**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae80))" ( (pointer_expression "**(code **)(puVar13 + 0x1ae80)" * (pointer_expression "*(code **)(puVar13 + 0x1ae80)" * (cast_expression "(code **)(puVar13 + 0x1ae80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ae80)" ( (binary_expression "puVar13 + 0x1ae80" identifier + number_literal) ))))) )) (argument_list "(uVar8,iVar6)" ( identifier , identifier ))) ;) (if_statement "if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }" if (parenthesized_expression "(uStack_74 < 10)" ( (binary_expression "uStack_74 < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }" { comment comment (expression_statement "pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();" (assignment_expression "pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" identifier = (cast_expression "(byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" (parenthesized_expression "(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))" ( (pointer_expression "*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" * (cast_expression "(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" ( (binary_expression "puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20" (binary_expression "puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" * (cast_expression "(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" ( (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4" (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x660" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" * (cast_expression "(int *)(puVar13 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1ac58)" ( (binary_expression "puVar13 + 0x1ac58" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_74 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" identifier = (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar13 + 0x1ae30)" * (pointer_expression "*(code **)(puVar13 + 0x1ae30)" * (cast_expression "(code **)(puVar13 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ae30)" ( (binary_expression "puVar13 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" ( number_literal , (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x74c" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" * (cast_expression "(int *)(puVar13 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1ac58)" ( (binary_expression "puVar13 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;" (assignment_expression "pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" identifier = (cast_expression "(byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" * (cast_expression "(code **)(puVar13 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ad7c)" ( (binary_expression "puVar13 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "(iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (return_statement "return pbVar9;" return identifier ;) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nchar * trim2(char *s,int how)\n\n{\n  _Bool _Var1;\n  byte *pbVar2;\n  int iVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  char cVar12;\n  mbstate_t *pmVar13;\n  undefined *puVar14;\n  uint uStack_74;\n  char *local_6c;\n  mbi_iterator_t i;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar10 = (byte *)how;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n  if (uVar5 < 2) {\n    if (how != 0) {\n      uVar5 = (uint)(char)*pbVar4;\n      pbVar10 = pbVar4;\n      if (uVar5 != 0) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }\n      (*(code *)PTR_strlen_0003125c)(pbVar10);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    pbVar11 = pbVar4 + iVar6 + -1;\n    if (pbVar4 <= pbVar11) {\n      piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n      iVar6 = *piVar7;\n      do {\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar4 <= pbVar11);\n    }\n  }\n  else {\n    if (how != 0) {\n      i.cur.ptr = (char *)pbVar4;\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      puVar14 = PTR_is_basic_table_00031124;\n      i.limit = (char *)(pbVar4 + iVar6);\n      i.in_shift = false;\n      i.state.__count = 0;\n      i.state.__value.__wch = 0;\n      i.next_done = false;\n      if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }\n      pbVar10 = (byte *)i.cur.ptr;\n      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    i.cur.ptr = (char *)pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    puVar14 = PTR_is_basic_table_00031124;\n    i.limit = (char *)(pbVar4 + iVar6);\n    i.in_shift = false;\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.next_done = false;\n    if (pbVar4 < i.limit) {\n      cVar12 = '\0';\n      pmVar13 = &i.state;\n      pbVar11 = pbVar10;\n      pbVar2 = pbVar4;\n      do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);\n      if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }\n    }\n  }\nLAB_000160c8:\n  if (iVar3 == *(int *)PTR___stack_chk_guard_000312c4) {\n    return (char *)pbVar4;\n  }\n  puVar14 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar10 == (byte *)0x0) {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar14 + 0x1ad7c))(iVar3,1,*(undefined4 *)(puVar14 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar14 + 0x1ae80))(uVar8,iVar3);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar9 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pcVar9;\n  }\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x74c,5);\n  pcVar9 = (char *)(**(code **)(puVar14 + 0x1ad7c))\n                             (iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pcVar9;\n}\n\n" comment (function_definition "char * trim2(char *s,int how)\n\n{\n  _Bool _Var1;\n  byte *pbVar2;\n  int iVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  char cVar12;\n  mbstate_t *pmVar13;\n  undefined *puVar14;\n  uint uStack_74;\n  char *local_6c;\n  mbi_iterator_t i;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar10 = (byte *)how;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n  if (uVar5 < 2) {\n    if (how != 0) {\n      uVar5 = (uint)(char)*pbVar4;\n      pbVar10 = pbVar4;\n      if (uVar5 != 0) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }\n      (*(code *)PTR_strlen_0003125c)(pbVar10);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    pbVar11 = pbVar4 + iVar6 + -1;\n    if (pbVar4 <= pbVar11) {\n      piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n      iVar6 = *piVar7;\n      do {\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar4 <= pbVar11);\n    }\n  }\n  else {\n    if (how != 0) {\n      i.cur.ptr = (char *)pbVar4;\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      puVar14 = PTR_is_basic_table_00031124;\n      i.limit = (char *)(pbVar4 + iVar6);\n      i.in_shift = false;\n      i.state.__count = 0;\n      i.state.__value.__wch = 0;\n      i.next_done = false;\n      if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }\n      pbVar10 = (byte *)i.cur.ptr;\n      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    i.cur.ptr = (char *)pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    puVar14 = PTR_is_basic_table_00031124;\n    i.limit = (char *)(pbVar4 + iVar6);\n    i.in_shift = false;\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.next_done = false;\n    if (pbVar4 < i.limit) {\n      cVar12 = '\0';\n      pmVar13 = &i.state;\n      pbVar11 = pbVar10;\n      pbVar2 = pbVar4;\n      do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);\n      if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }\n    }\n  }\nLAB_000160c8:\n  if (iVar3 == *(int *)PTR___stack_chk_guard_000312c4) {\n    return (char *)pbVar4;\n  }\n  puVar14 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar10 == (byte *)0x0) {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar14 + 0x1ad7c))(iVar3,1,*(undefined4 *)(puVar14 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar14 + 0x1ae80))(uVar8,iVar3);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar9 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pcVar9;\n  }\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x74c,5);\n  pcVar9 = (char *)(**(code **)(puVar14 + 0x1ad7c))\n                             (iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pcVar9;\n}" primitive_type (pointer_declarator "* trim2(char *s,int how)" * (function_declarator "trim2(char *s,int how)" identifier (parameter_list "(char *s,int how)" ( (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) , (parameter_declaration "int how" primitive_type identifier) )))) (compound_statement "{\n  _Bool _Var1;\n  byte *pbVar2;\n  int iVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  char cVar12;\n  mbstate_t *pmVar13;\n  undefined *puVar14;\n  uint uStack_74;\n  char *local_6c;\n  mbi_iterator_t i;\n  \n  iVar3 = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar10 = (byte *)how;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n  if (uVar5 < 2) {\n    if (how != 0) {\n      uVar5 = (uint)(char)*pbVar4;\n      pbVar10 = pbVar4;\n      if (uVar5 != 0) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }\n      (*(code *)PTR_strlen_0003125c)(pbVar10);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    pbVar11 = pbVar4 + iVar6 + -1;\n    if (pbVar4 <= pbVar11) {\n      piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n      iVar6 = *piVar7;\n      do {\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar4 <= pbVar11);\n    }\n  }\n  else {\n    if (how != 0) {\n      i.cur.ptr = (char *)pbVar4;\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      puVar14 = PTR_is_basic_table_00031124;\n      i.limit = (char *)(pbVar4 + iVar6);\n      i.in_shift = false;\n      i.state.__count = 0;\n      i.state.__value.__wch = 0;\n      i.next_done = false;\n      if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }\n      pbVar10 = (byte *)i.cur.ptr;\n      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    i.cur.ptr = (char *)pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    puVar14 = PTR_is_basic_table_00031124;\n    i.limit = (char *)(pbVar4 + iVar6);\n    i.in_shift = false;\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.next_done = false;\n    if (pbVar4 < i.limit) {\n      cVar12 = '\0';\n      pmVar13 = &i.state;\n      pbVar11 = pbVar10;\n      pbVar2 = pbVar4;\n      do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);\n      if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }\n    }\n  }\nLAB_000160c8:\n  if (iVar3 == *(int *)PTR___stack_chk_guard_000312c4) {\n    return (char *)pbVar4;\n  }\n  puVar14 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar10 == (byte *)0x0) {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar14 + 0x1ad7c))(iVar3,1,*(undefined4 *)(puVar14 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar14 + 0x1ae80))(uVar8,iVar3);\n  if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar9 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pcVar9;\n  }\n  uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x74c,5);\n  pcVar9 = (char *)(**(code **)(puVar14 + 0x1ad7c))\n                             (iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pcVar9;\n}" { (declaration "_Bool _Var1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "mbstate_t *pmVar13;" type_identifier (pointer_declarator "*pmVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "char *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "mbi_iterator_t i;" type_identifier identifier ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000312c4;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000312c4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000312c4" * (cast_expression "(int *)PTR___stack_chk_guard_000312c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar10 = (byte *)how;" (assignment_expression "pbVar10 = (byte *)how" identifier = (cast_expression "(byte *)how" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();" (assignment_expression "pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)()" identifier = (cast_expression "(byte *)(*(code *)PTR_strdup_000312cc)()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strdup_000312cc)()" (parenthesized_expression "(*(code *)PTR_strdup_000312cc)" ( (pointer_expression "*(code *)PTR_strdup_000312cc" * (cast_expression "(code *)PTR_strdup_000312cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (pbVar4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();" (assignment_expression "uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_00031290)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_00031290)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_00031290" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_00031290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (uVar5 < 2) {\n    if (how != 0) {\n      uVar5 = (uint)(char)*pbVar4;\n      pbVar10 = pbVar4;\n      if (uVar5 != 0) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }\n      (*(code *)PTR_strlen_0003125c)(pbVar10);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    pbVar11 = pbVar4 + iVar6 + -1;\n    if (pbVar4 <= pbVar11) {\n      piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n      iVar6 = *piVar7;\n      do {\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar4 <= pbVar11);\n    }\n  }\n  else {\n    if (how != 0) {\n      i.cur.ptr = (char *)pbVar4;\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      puVar14 = PTR_is_basic_table_00031124;\n      i.limit = (char *)(pbVar4 + iVar6);\n      i.in_shift = false;\n      i.state.__count = 0;\n      i.state.__value.__wch = 0;\n      i.next_done = false;\n      if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }\n      pbVar10 = (byte *)i.cur.ptr;\n      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    i.cur.ptr = (char *)pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    puVar14 = PTR_is_basic_table_00031124;\n    i.limit = (char *)(pbVar4 + iVar6);\n    i.in_shift = false;\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.next_done = false;\n    if (pbVar4 < i.limit) {\n      cVar12 = '\0';\n      pmVar13 = &i.state;\n      pbVar11 = pbVar10;\n      pbVar2 = pbVar4;\n      do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);\n      if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }\n    }\n  }" if (parenthesized_expression "(uVar5 < 2)" ( (binary_expression "uVar5 < 2" identifier < number_literal) )) (compound_statement "{\n    if (how != 0) {\n      uVar5 = (uint)(char)*pbVar4;\n      pbVar10 = pbVar4;\n      if (uVar5 != 0) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }\n      (*(code *)PTR_strlen_0003125c)(pbVar10);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    pbVar11 = pbVar4 + iVar6 + -1;\n    if (pbVar4 <= pbVar11) {\n      piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n      iVar6 = *piVar7;\n      do {\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar4 <= pbVar11);\n    }\n  }" { (if_statement "if (how != 0) {\n      uVar5 = (uint)(char)*pbVar4;\n      pbVar10 = pbVar4;\n      if (uVar5 != 0) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }\n      (*(code *)PTR_strlen_0003125c)(pbVar10);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }" if (parenthesized_expression "(how != 0)" ( (binary_expression "how != 0" identifier != number_literal) )) (compound_statement "{\n      uVar5 = (uint)(char)*pbVar4;\n      pbVar10 = pbVar4;\n      if (uVar5 != 0) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }\n      (*(code *)PTR_strlen_0003125c)(pbVar10);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }" { (expression_statement "uVar5 = (uint)(char)*pbVar4;" (assignment_expression "uVar5 = (uint)(char)*pbVar4" identifier = (binary_expression "(uint)(char)*pbVar4" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar10 = pbVar4;" (assignment_expression "pbVar10 = pbVar4" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n        do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);\n      }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000311dc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000311dc" * (cast_expression "(code *)PTR___ctype_b_loc_000311dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))))) ;) (do_statement "do {\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        } while (uVar5 != 0);" do (compound_statement "{\n          if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n          pbVar10 = pbVar10 + 1;\n          uVar5 = (uint)(char)*pbVar10;\n        }" { (if_statement "if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2)" * (cast_expression "(ushort *)(*piVar7 + (uVar5 & 0xff) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + (uVar5 & 0xff) * 2)" ( (binary_expression "*piVar7 + (uVar5 & 0xff) * 2" (pointer_expression "*piVar7" * identifier) + (binary_expression "(uVar5 & 0xff) * 2" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)(char)*pbVar10;" (assignment_expression "uVar5 = (uint)(char)*pbVar10" identifier = (binary_expression "(uint)(char)*pbVar10" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })) (expression_statement "(*(code *)PTR_strlen_0003125c)(pbVar10);" (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar10)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar10)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_memmove_000312d4)(pbVar4);" (call_expression "(*(code *)PTR_memmove_000312d4)(pbVar4)" (parenthesized_expression "(*(code *)PTR_memmove_000312d4)" ( (pointer_expression "*(code *)PTR_memmove_000312d4" * (cast_expression "(code *)PTR_memmove_000312d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))) ;) (if_statement "if (how == 1) goto LAB_000160c8;" if (parenthesized_expression "(how == 1)" ( (binary_expression "how == 1" identifier == number_literal) )) (goto_statement "goto LAB_000160c8;" goto statement_identifier ;)) })) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier )))) ;) (expression_statement "pbVar11 = pbVar4 + iVar6 + -1;" (assignment_expression "pbVar11 = pbVar4 + iVar6 + -1" identifier = (binary_expression "pbVar4 + iVar6 + -1" (binary_expression "pbVar4 + iVar6" identifier + identifier) + number_literal)) ;) (if_statement "if (pbVar4 <= pbVar11) {\n      piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n      iVar6 = *piVar7;\n      do {\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar4 <= pbVar11);\n    }" if (parenthesized_expression "(pbVar4 <= pbVar11)" ( (binary_expression "pbVar4 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n      piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n      iVar6 = *piVar7;\n      do {\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar4 <= pbVar11);\n    }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000311dc)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000311dc)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000311dc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000311dc" * (cast_expression "(code *)PTR___ctype_b_loc_000311dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = *piVar7;" (assignment_expression "iVar6 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (do_statement "do {\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      } while (pbVar4 <= pbVar11);" do (compound_statement "{\n        if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;\n        *pbVar11 = 0;\n        pbVar11 = pbVar11 + -1;\n      }" { (if_statement "if ((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar6 + (uint)*pbVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar6 + (uint)*pbVar11 * 2)" * (cast_expression "(ushort *)(iVar6 + (uint)*pbVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (uint)*pbVar11 * 2)" ( (binary_expression "iVar6 + (uint)*pbVar11 * 2" identifier + (binary_expression "(uint)*pbVar11 * 2" (binary_expression "(uint)*pbVar11" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*pbVar11 = 0;" (assignment_expression "*pbVar11 = 0" (pointer_expression "*pbVar11" * identifier) = number_literal) ;) (expression_statement "pbVar11 = pbVar11 + -1;" (assignment_expression "pbVar11 = pbVar11 + -1" identifier = (binary_expression "pbVar11 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 <= pbVar11)" ( (binary_expression "pbVar4 <= pbVar11" identifier <= identifier) )) ;) })) }) (else_clause "else {\n    if (how != 0) {\n      i.cur.ptr = (char *)pbVar4;\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      puVar14 = PTR_is_basic_table_00031124;\n      i.limit = (char *)(pbVar4 + iVar6);\n      i.in_shift = false;\n      i.state.__count = 0;\n      i.state.__value.__wch = 0;\n      i.next_done = false;\n      if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }\n      pbVar10 = (byte *)i.cur.ptr;\n      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    i.cur.ptr = (char *)pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    puVar14 = PTR_is_basic_table_00031124;\n    i.limit = (char *)(pbVar4 + iVar6);\n    i.in_shift = false;\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.next_done = false;\n    if (pbVar4 < i.limit) {\n      cVar12 = '\0';\n      pmVar13 = &i.state;\n      pbVar11 = pbVar10;\n      pbVar2 = pbVar4;\n      do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);\n      if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }\n    }\n  }" else (compound_statement "{\n    if (how != 0) {\n      i.cur.ptr = (char *)pbVar4;\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      puVar14 = PTR_is_basic_table_00031124;\n      i.limit = (char *)(pbVar4 + iVar6);\n      i.in_shift = false;\n      i.state.__count = 0;\n      i.state.__value.__wch = 0;\n      i.next_done = false;\n      if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }\n      pbVar10 = (byte *)i.cur.ptr;\n      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }\n    i.cur.ptr = (char *)pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n    puVar14 = PTR_is_basic_table_00031124;\n    i.limit = (char *)(pbVar4 + iVar6);\n    i.in_shift = false;\n    i.state.__count = 0;\n    i.state.__value.__wch = 0;\n    i.next_done = false;\n    if (pbVar4 < i.limit) {\n      cVar12 = '\0';\n      pmVar13 = &i.state;\n      pbVar11 = pbVar10;\n      pbVar2 = pbVar4;\n      do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);\n      if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }\n    }\n  }" { (if_statement "if (how != 0) {\n      i.cur.ptr = (char *)pbVar4;\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      puVar14 = PTR_is_basic_table_00031124;\n      i.limit = (char *)(pbVar4 + iVar6);\n      i.in_shift = false;\n      i.state.__count = 0;\n      i.state.__value.__wch = 0;\n      i.next_done = false;\n      if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }\n      pbVar10 = (byte *)i.cur.ptr;\n      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }" if (parenthesized_expression "(how != 0)" ( (binary_expression "how != 0" identifier != number_literal) )) (compound_statement "{\n      i.cur.ptr = (char *)pbVar4;\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      puVar14 = PTR_is_basic_table_00031124;\n      i.limit = (char *)(pbVar4 + iVar6);\n      i.in_shift = false;\n      i.state.__count = 0;\n      i.state.__value.__wch = 0;\n      i.next_done = false;\n      if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }\n      pbVar10 = (byte *)i.cur.ptr;\n      (*(code *)PTR_strlen_0003125c)(i.cur.ptr);\n      (*(code *)PTR_memmove_000312d4)(pbVar4);\n      if (how == 1) goto LAB_000160c8;\n    }" { (expression_statement "i.cur.ptr = (char *)pbVar4;" (assignment_expression "i.cur.ptr = (char *)pbVar4" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)pbVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier )))) ;) (expression_statement "puVar14 = PTR_is_basic_table_00031124;" (assignment_expression "puVar14 = PTR_is_basic_table_00031124" identifier = identifier) ;) (expression_statement "i.limit = (char *)(pbVar4 + iVar6);" (assignment_expression "i.limit = (char *)(pbVar4 + iVar6)" (field_expression "i.limit" identifier . field_identifier) = (cast_expression "(char *)(pbVar4 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + iVar6)" ( (binary_expression "pbVar4 + iVar6" identifier + identifier) )))) ;) (expression_statement "i.in_shift = false;" (assignment_expression "i.in_shift = false" (field_expression "i.in_shift" identifier . field_identifier) = false) ;) (expression_statement "i.state.__count = 0;" (assignment_expression "i.state.__count = 0" (field_expression "i.state.__count" (field_expression "i.state" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "i.state.__value.__wch = 0;" (assignment_expression "i.state.__value.__wch = 0" (field_expression "i.state.__value.__wch" (field_expression "i.state.__value" (field_expression "i.state" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (if_statement "if (pbVar4 < i.limit) {\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }" if (parenthesized_expression "(pbVar4 < i.limit)" ( (binary_expression "pbVar4 < i.limit" identifier < (field_expression "i.limit" identifier . field_identifier)) )) (compound_statement "{\n        pmVar13 = &i.state;\n        pbVar10 = pbVar4;\n        do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);\n      }" { (expression_statement "pmVar13 = &i.state;" (assignment_expression "pmVar13 = &i.state" identifier = (pointer_expression "&i.state" & (field_expression "i.state" identifier . field_identifier))) ;) (expression_statement "pbVar10 = pbVar4;" (assignment_expression "pbVar10 = pbVar4" identifier = identifier) ;) (do_statement "do {\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        } while (pbVar10 < i.limit);" do (compound_statement "{\n          pcVar9 = i.limit;\n          i.next_done = false;\n          if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }\n          i.next_done = true;\n          if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;\n          pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);\n          i.next_done = false;\n          i.cur.ptr = (char *)pbVar10;\n        }" { (expression_statement "pcVar9 = i.limit;" (assignment_expression "pcVar9 = i.limit" identifier = (field_expression "i.limit" identifier . field_identifier)) ;) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (if_statement "if (i.in_shift == false) {\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }\n          else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }" if (parenthesized_expression "(i.in_shift == false)" ( (binary_expression "i.in_shift == false" (field_expression "i.in_shift" identifier . field_identifier) == false) )) (compound_statement "{\n            if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }\n            i.cur.bytes = 1;\n            i.cur.wc = (wchar_t)(char)*pbVar10;\n            i.cur.wc_valid = true;\n          }" { (if_statement "if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }" if (parenthesized_expression "((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1" (binary_expression "*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f)" (pointer_expression "*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4)" * (cast_expression "(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + (uint)(*pbVar10 >> 5) * 4)" ( (binary_expression "puVar14 + (uint)(*pbVar10 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar10 >> 5) * 4" (call_expression "(uint)(*pbVar10 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar10 >> 5)" ( (binary_expression "*pbVar10 >> 5" (pointer_expression "*pbVar10" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar10 & 0x1f)" ( (binary_expression "*pbVar10 & 0x1f" (pointer_expression "*pbVar10" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              i.in_shift = true;\n              goto LAB_00015edc;\n            }" { (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(pmVar13)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar13)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }" { (expression_statement "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,\n                                            0x8e,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa28" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (expression_statement "i.in_shift = true;" (assignment_expression "i.in_shift = true" (field_expression "i.in_shift" identifier . field_identifier) = true) ;) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;) })) (expression_statement "i.cur.bytes = 1;" (assignment_expression "i.cur.bytes = 1" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "i.cur.wc = (wchar_t)(char)*pbVar10;" (assignment_expression "i.cur.wc = (wchar_t)(char)*pbVar10" (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (binary_expression "(wchar_t)(char)*pbVar10" (call_expression "(wchar_t)(char)" (parenthesized_expression "(wchar_t)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "i.cur.wc_valid = true;" (assignment_expression "i.cur.wc_valid = true" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = true) ;) }) (else_clause "else {\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }" else (compound_statement "{\nLAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n            if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }\n          }" { (labeled_statement "LAB_00015edc:\n            i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);" statement_identifier : (expression_statement "i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);" (assignment_expression "i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13)" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (call_expression "rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13)" identifier (argument_list "(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13)" ( (pointer_expression "&i.cur.wc" & (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) , (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)pcVar9 - (int)pbVar10" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;)) (if_statement "if (i.cur.bytes == 0xffffffff) {\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }\n            else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }" if (parenthesized_expression "(i.cur.bytes == 0xffffffff)" ( (binary_expression "i.cur.bytes == 0xffffffff" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n              i.cur.bytes = 1;\n              i.cur.wc_valid = false;\n            }" { (expression_statement "i.cur.bytes = 1;" (assignment_expression "i.cur.bytes = 1" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "i.cur.wc_valid = false;" (assignment_expression "i.cur.wc_valid = false" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = false) ;) }) (else_clause "else if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }" else (if_statement "if (i.cur.bytes == 0xfffffffe) {\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }\n            else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }" if (parenthesized_expression "(i.cur.bytes == 0xfffffffe)" ( (binary_expression "i.cur.bytes == 0xfffffffe" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n              i.cur.wc_valid = false;\n            }" { (expression_statement "i.cur.bytes = (int)i.limit - (int)i.cur.ptr;" (assignment_expression "i.cur.bytes = (int)i.limit - (int)i.cur.ptr" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (binary_expression "(int)i.limit - (int)i.cur.ptr" (cast_expression "(int)i.limit" ( (type_descriptor "int" primitive_type) ) (field_expression "i.limit" identifier . field_identifier)) - (cast_expression "(int)i.cur.ptr" ( (type_descriptor "int" primitive_type) ) (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier)))) ;) (expression_statement "i.cur.wc_valid = false;" (assignment_expression "i.cur.wc_valid = false" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = false) ;) }) (else_clause "else {\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }" else (compound_statement "{\n              if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }\n              i.cur.wc_valid = true;\n              iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n              if (iVar6 != 0) {\n                i.in_shift = false;\n              }\n            }" { (if_statement "if (i.cur.bytes == 0) {\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }" if (parenthesized_expression "(i.cur.bytes == 0)" ( (binary_expression "i.cur.bytes == 0" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n                i.cur.bytes = 1;\n                if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n                if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }\n              }" { (expression_statement "i.cur.bytes = 1;" (assignment_expression "i.cur.bytes = 1" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (*i.cur.ptr != '\0') {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }" if (parenthesized_expression "(*i.cur.ptr != '\0')" ( (binary_expression "*i.cur.ptr != '\0'" (pointer_expression "*i.cur.ptr" * (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }" { (expression_statement "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                              0xa9,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa10" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (if_statement "if (i.cur.wc != 0) {\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }" if (parenthesized_expression "(i.cur.wc != 0)" ( (binary_expression "i.cur.wc != 0" (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n                  pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);\n                  return pcVar9;\n                }" { (expression_statement "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(char *)(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                             (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                              0xaa,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0x9f8" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) })) (expression_statement "i.cur.wc_valid = true;" (assignment_expression "i.cur.wc_valid = true" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = true) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(pmVar13)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar13)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n                i.in_shift = false;\n              }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                i.in_shift = false;\n              }" { (expression_statement "i.in_shift = false;" (assignment_expression "i.in_shift = false" (field_expression "i.in_shift" identifier . field_identifier) = false) ;) })) }))))) }))) (expression_statement "i.next_done = true;" (assignment_expression "i.next_done = true" (field_expression "i.next_done" identifier . field_identifier) = true) ;) (if_statement "if ((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)) break;" if (parenthesized_expression "((i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0))" ( (binary_expression "(i.cur.wc_valid == false) ||\n             (iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)" (parenthesized_expression "(i.cur.wc_valid == false)" ( (binary_expression "i.cur.wc_valid == false" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) == false) )) || (parenthesized_expression "(iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0)" ( (comma_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc)" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(i.cur.wc)" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(i.cur.wc)" ( (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes);" (assignment_expression "pbVar10 = (byte *)(i.cur.ptr + i.cur.bytes)" identifier = (cast_expression "(byte *)(i.cur.ptr + i.cur.bytes)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(i.cur.ptr + i.cur.bytes)" ( (binary_expression "i.cur.ptr + i.cur.bytes" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) + (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) )))) ;) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (expression_statement "i.cur.ptr = (char *)pbVar10;" (assignment_expression "i.cur.ptr = (char *)pbVar10" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(pbVar10 < i.limit)" ( (binary_expression "pbVar10 < i.limit" identifier < (field_expression "i.limit" identifier . field_identifier)) )) ;) })) (expression_statement "pbVar10 = (byte *)i.cur.ptr;" (assignment_expression "pbVar10 = (byte *)i.cur.ptr" identifier = (cast_expression "(byte *)i.cur.ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier))) ;) (expression_statement "(*(code *)PTR_strlen_0003125c)(i.cur.ptr);" (call_expression "(*(code *)PTR_strlen_0003125c)(i.cur.ptr)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(i.cur.ptr)" ( (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "(*(code *)PTR_memmove_000312d4)(pbVar4);" (call_expression "(*(code *)PTR_memmove_000312d4)(pbVar4)" (parenthesized_expression "(*(code *)PTR_memmove_000312d4)" ( (pointer_expression "*(code *)PTR_memmove_000312d4" * (cast_expression "(code *)PTR_memmove_000312d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))) ;) (if_statement "if (how == 1) goto LAB_000160c8;" if (parenthesized_expression "(how == 1)" ( (binary_expression "how == 1" identifier == number_literal) )) (goto_statement "goto LAB_000160c8;" goto statement_identifier ;)) })) (expression_statement "i.cur.ptr = (char *)pbVar4;" (assignment_expression "i.cur.ptr = (char *)pbVar4" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)pbVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier )))) ;) (expression_statement "puVar14 = PTR_is_basic_table_00031124;" (assignment_expression "puVar14 = PTR_is_basic_table_00031124" identifier = identifier) ;) (expression_statement "i.limit = (char *)(pbVar4 + iVar6);" (assignment_expression "i.limit = (char *)(pbVar4 + iVar6)" (field_expression "i.limit" identifier . field_identifier) = (cast_expression "(char *)(pbVar4 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + iVar6)" ( (binary_expression "pbVar4 + iVar6" identifier + identifier) )))) ;) (expression_statement "i.in_shift = false;" (assignment_expression "i.in_shift = false" (field_expression "i.in_shift" identifier . field_identifier) = false) ;) (expression_statement "i.state.__count = 0;" (assignment_expression "i.state.__count = 0" (field_expression "i.state.__count" (field_expression "i.state" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "i.state.__value.__wch = 0;" (assignment_expression "i.state.__value.__wch = 0" (field_expression "i.state.__value.__wch" (field_expression "i.state.__value" (field_expression "i.state" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (if_statement "if (pbVar4 < i.limit) {\n      cVar12 = '\0';\n      pmVar13 = &i.state;\n      pbVar11 = pbVar10;\n      pbVar2 = pbVar4;\n      do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);\n      if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }\n    }" if (parenthesized_expression "(pbVar4 < i.limit)" ( (binary_expression "pbVar4 < i.limit" identifier < (field_expression "i.limit" identifier . field_identifier)) )) (compound_statement "{\n      cVar12 = '\0';\n      pmVar13 = &i.state;\n      pbVar11 = pbVar10;\n      pbVar2 = pbVar4;\n      do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);\n      if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }\n    }" { (expression_statement "cVar12 = '\0';" (assignment_expression "cVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pmVar13 = &i.state;" (assignment_expression "pmVar13 = &i.state" identifier = (pointer_expression "&i.state" & (field_expression "i.state" identifier . field_identifier))) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar2 = pbVar4;" (assignment_expression "pbVar2 = pbVar4" identifier = identifier) ;) (do_statement "do {\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      } while (i.cur.ptr < i.limit);" do (compound_statement "{\n        pbVar10 = pbVar2;\n        pcVar9 = i.limit;\n        i.next_done = false;\n        if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }\n        i.next_done = true;\n        _Var1 = i.next_done;\n        i.next_done = true;\n        if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }\n        i.cur.ptr = i.cur.ptr + i.cur.bytes;\n        i.next_done = false;\n        pbVar11 = pbVar10;\n        pbVar2 = (byte *)i.cur.ptr;\n      }" { (expression_statement "pbVar10 = pbVar2;" (assignment_expression "pbVar10 = pbVar2" identifier = identifier) ;) (expression_statement "pcVar9 = i.limit;" (assignment_expression "pcVar9 = i.limit" identifier = (field_expression "i.limit" identifier . field_identifier)) ;) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (if_statement "if (i.in_shift == false) {\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }\n        else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }" if (parenthesized_expression "(i.in_shift == false)" ( (binary_expression "i.in_shift == false" (field_expression "i.in_shift" identifier . field_identifier) == false) )) (compound_statement "{\n          if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }\n          i.cur.bytes = 1;\n          i.cur.wc = (wchar_t)(char)*pbVar10;\n          i.cur.wc_valid = true;\n          pbVar10 = pbVar11;\n        }" { (if_statement "if ((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }" if (parenthesized_expression "((*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f) & 1" (binary_expression "*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4) >> (*pbVar10 & 0x1f)" (pointer_expression "*(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4)" * (cast_expression "(uint *)(puVar14 + (uint)(*pbVar10 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + (uint)(*pbVar10 >> 5) * 4)" ( (binary_expression "puVar14 + (uint)(*pbVar10 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar10 >> 5) * 4" (call_expression "(uint)(*pbVar10 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar10 >> 5)" ( (binary_expression "*pbVar10 >> 5" (pointer_expression "*pbVar10" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar10 & 0x1f)" ( (binary_expression "*pbVar10 & 0x1f" (pointer_expression "*pbVar10" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }\n            i.in_shift = true;\n            goto LAB_0001623c;\n          }" { (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(pmVar13)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar13)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pcVar9;\n            }" { (expression_statement "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(char *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa28" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (expression_statement "i.in_shift = true;" (assignment_expression "i.in_shift = true" (field_expression "i.in_shift" identifier . field_identifier) = true) ;) (goto_statement "goto LAB_0001623c;" goto statement_identifier ;) })) (expression_statement "i.cur.bytes = 1;" (assignment_expression "i.cur.bytes = 1" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "i.cur.wc = (wchar_t)(char)*pbVar10;" (assignment_expression "i.cur.wc = (wchar_t)(char)*pbVar10" (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (binary_expression "(wchar_t)(char)*pbVar10" (call_expression "(wchar_t)(char)" (parenthesized_expression "(wchar_t)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "i.cur.wc_valid = true;" (assignment_expression "i.cur.wc_valid = true" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = true) ;) (expression_statement "pbVar10 = pbVar11;" (assignment_expression "pbVar10 = pbVar11" identifier = identifier) ;) }) (else_clause "else {\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }" else (compound_statement "{\nLAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);\n          if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }\n        }" { (labeled_statement "LAB_0001623c:\n          i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);" statement_identifier : (expression_statement "i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13);" (assignment_expression "i.cur.bytes = rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13)" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (call_expression "rpl_mbrtowc(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13)" identifier (argument_list "(&i.cur.wc,(char *)pbVar10,(int)pcVar9 - (int)pbVar10,pmVar13)" ( (pointer_expression "&i.cur.wc" & (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) , (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)pcVar9 - (int)pbVar10" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;)) (if_statement "if (i.cur.bytes == 0xffffffff) {\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }\n          else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }" if (parenthesized_expression "(i.cur.bytes == 0xffffffff)" ( (binary_expression "i.cur.bytes == 0xffffffff" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n            i.cur.bytes = 1;\n            i.cur.wc_valid = false;\n          }" { (expression_statement "i.cur.bytes = 1;" (assignment_expression "i.cur.bytes = 1" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "i.cur.wc_valid = false;" (assignment_expression "i.cur.wc_valid = false" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = false) ;) }) (else_clause "else if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }" else (if_statement "if (i.cur.bytes == 0xfffffffe) {\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }\n          else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }" if (parenthesized_expression "(i.cur.bytes == 0xfffffffe)" ( (binary_expression "i.cur.bytes == 0xfffffffe" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;\n            i.cur.wc_valid = false;\n          }" { (expression_statement "i.cur.bytes = (int)i.limit - (int)i.cur.ptr;" (assignment_expression "i.cur.bytes = (int)i.limit - (int)i.cur.ptr" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (binary_expression "(int)i.limit - (int)i.cur.ptr" (cast_expression "(int)i.limit" ( (type_descriptor "int" primitive_type) ) (field_expression "i.limit" identifier . field_identifier)) - (cast_expression "(int)i.cur.ptr" ( (type_descriptor "int" primitive_type) ) (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier)))) ;) (expression_statement "i.cur.wc_valid = false;" (assignment_expression "i.cur.wc_valid = false" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = false) ;) }) (else_clause "else {\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }" else (compound_statement "{\n            if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }\n            i.cur.wc_valid = true;\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);\n            if (iVar6 != 0) {\n              i.in_shift = false;\n            }\n          }" { (if_statement "if (i.cur.bytes == 0) {\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }" if (parenthesized_expression "(i.cur.bytes == 0)" ( (binary_expression "i.cur.bytes == 0" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n              i.cur.bytes = 1;\n              if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }\n              if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }\n            }" { (expression_statement "i.cur.bytes = 1;" (assignment_expression "i.cur.bytes = 1" (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (*i.cur.ptr != '\0') {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }" if (parenthesized_expression "(*i.cur.ptr != '\0')" ( (binary_expression "*i.cur.ptr != '\0'" (pointer_expression "*i.cur.ptr" * (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pcVar9;\n              }" { (expression_statement "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa10" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (if_statement "if (i.cur.wc != 0) {\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }" if (parenthesized_expression "(i.cur.wc != 0)" ( (binary_expression "i.cur.wc != 0" (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n                pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);\n                return pcVar9;\n              }" { (expression_statement "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa);" (assignment_expression "pcVar9 = (char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa)" identifier = (cast_expression "(char *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa)" ( (binary_expression "PTR_UINT_000310d8 + -0x9f8" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) })) (expression_statement "i.cur.wc_valid = true;" (assignment_expression "i.cur.wc_valid = true" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = true) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(pmVar13)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(pmVar13)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar13)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n              i.in_shift = false;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              i.in_shift = false;\n            }" { (expression_statement "i.in_shift = false;" (assignment_expression "i.in_shift = false" (field_expression "i.in_shift" identifier . field_identifier) = false) ;) })) }))))) }))) (expression_statement "i.next_done = true;" (assignment_expression "i.next_done = true" (field_expression "i.next_done" identifier . field_identifier) = true) ;) (expression_statement "_Var1 = i.next_done;" (assignment_expression "_Var1 = i.next_done" identifier = (field_expression "i.next_done" identifier . field_identifier)) ;) (expression_statement "i.next_done = true;" (assignment_expression "i.next_done = true" (field_expression "i.next_done" identifier . field_identifier) = true) ;) (if_statement "if (cVar12 == '\0') {\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }\n        else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }" if (parenthesized_expression "(cVar12 == '\0')" ( (binary_expression "cVar12 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar12 = '\x01';\n          if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }\n        }" { (expression_statement "cVar12 = '\x01';" (assignment_expression "cVar12 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (i.cur.wc_valid != false) {\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }" if (parenthesized_expression "(i.cur.wc_valid != false)" ( (binary_expression "i.cur.wc_valid != false" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) != false) )) (compound_statement "{\n            i.next_done = _Var1;\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            cVar12 = iVar6 == 0;\n          }" { (expression_statement "i.next_done = _Var1;" (assignment_expression "i.next_done = _Var1" (field_expression "i.next_done" identifier . field_identifier) = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc)" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(i.cur.wc)" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(i.cur.wc)" ( (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) )))) ;) (expression_statement "cVar12 = iVar6 == 0;" (assignment_expression "cVar12 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) })) }) (else_clause "else if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }" else (if_statement "if (cVar12 == '\x01') {\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }\n        else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }" if (parenthesized_expression "(cVar12 == '\x01')" ( (binary_expression "cVar12 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n          if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }\n        }" { (if_statement "if (i.cur.wc_valid != false) {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }" if (parenthesized_expression "(i.cur.wc_valid != false)" ( (binary_expression "i.cur.wc_valid != false" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) != false) )) (compound_statement "{\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }\n          }" { (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc)" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(i.cur.wc)" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(i.cur.wc)" ( (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) )))) ;) (if_statement "if (iVar6 != 0) {\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              cVar12 = '\x02';\n              local_6c = i.cur.ptr;\n            }" { (expression_statement "cVar12 = '\x02';" (assignment_expression "cVar12 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_6c = i.cur.ptr;" (assignment_expression "local_6c = i.cur.ptr" identifier = (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier)) ;) })) })) }) (else_clause "else if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }" else (if_statement "if (cVar12 == '\x02') {\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }\n        else {\n          cVar12 = '\x01';\n        }" if (parenthesized_expression "(cVar12 == '\x02')" ( (binary_expression "cVar12 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }\n        }" { (if_statement "if (i.cur.wc_valid == false) {\n            cVar12 = '\x01';\n          }\n          else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }" if (parenthesized_expression "(i.cur.wc_valid == false)" ( (binary_expression "i.cur.wc_valid == false" (field_expression "i.cur.wc_valid" (field_expression "i.cur" identifier . field_identifier) . field_identifier) == false) )) (compound_statement "{\n            cVar12 = '\x01';\n          }" { (expression_statement "cVar12 = '\x01';" (assignment_expression "cVar12 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }) (else_clause "else {\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }" else (compound_statement "{\n            iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);\n            if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }\n          }" { (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(i.cur.wc)" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(i.cur.wc)" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(i.cur.wc)" ( (field_expression "i.cur.wc" (field_expression "i.cur" identifier . field_identifier) . field_identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n              cVar12 = '\x01';\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              cVar12 = '\x01';\n            }" { (expression_statement "cVar12 = '\x01';" (assignment_expression "cVar12 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) }))) }) (else_clause "else {\n          cVar12 = '\x01';\n        }" else (compound_statement "{\n          cVar12 = '\x01';\n        }" { (expression_statement "cVar12 = '\x01';" (assignment_expression "cVar12 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))))))) (expression_statement "i.cur.ptr = i.cur.ptr + i.cur.bytes;" (assignment_expression "i.cur.ptr = i.cur.ptr + i.cur.bytes" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) = (binary_expression "i.cur.ptr + i.cur.bytes" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) + (field_expression "i.cur.bytes" (field_expression "i.cur" identifier . field_identifier) . field_identifier))) ;) (expression_statement "i.next_done = false;" (assignment_expression "i.next_done = false" (field_expression "i.next_done" identifier . field_identifier) = false) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar2 = (byte *)i.cur.ptr;" (assignment_expression "pbVar2 = (byte *)i.cur.ptr" identifier = (cast_expression "(byte *)i.cur.ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier))) ;) }) while (parenthesized_expression "(i.cur.ptr < i.limit)" ( (binary_expression "i.cur.ptr < i.limit" (field_expression "i.cur.ptr" (field_expression "i.cur" identifier . field_identifier) . field_identifier) < (field_expression "i.limit" identifier . field_identifier)) )) ;) (if_statement "if (cVar12 == '\x02') {\n        *local_6c = '\0';\n      }" if (parenthesized_expression "(cVar12 == '\x02')" ( (binary_expression "cVar12 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        *local_6c = '\0';\n      }" { (expression_statement "*local_6c = '\0';" (assignment_expression "*local_6c = '\0'" (pointer_expression "*local_6c" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) }))) (labeled_statement "LAB_000160c8:\n  if (iVar3 == *(int *)PTR___stack_chk_guard_000312c4) {\n    return (char *)pbVar4;\n  }" statement_identifier : (if_statement "if (iVar3 == *(int *)PTR___stack_chk_guard_000312c4) {\n    return (char *)pbVar4;\n  }" if (parenthesized_expression "(iVar3 == *(int *)PTR___stack_chk_guard_000312c4)" ( (binary_expression "iVar3 == *(int *)PTR___stack_chk_guard_000312c4" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000312c4" * (cast_expression "(int *)PTR___stack_chk_guard_000312c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (char *)pbVar4;\n  }" { (return_statement "return (char *)pbVar4;" return (cast_expression "(char *)pbVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) }))) (expression_statement "puVar14 = PTR___stack_chk_fail_000312ac;" (assignment_expression "puVar14 = PTR___stack_chk_fail_000312ac" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000312ac)();" (call_expression "(*(code *)PTR___stack_chk_fail_000312ac)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000312ac)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000312ac" * (cast_expression "(code *)PTR___stack_chk_fail_000312ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (pbVar10 == (byte *)0x0) {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }" if (parenthesized_expression "(pbVar10 == (byte *)0x0)" ( (binary_expression "pbVar10 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }" { (expression_statement "(**(code **)(puVar14 + 0x1ad7c))();" (call_expression "(**(code **)(puVar14 + 0x1ad7c))()" (parenthesized_expression "(**(code **)(puVar14 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar14 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar14 + 0x1ad7c)" * (cast_expression "(code **)(puVar14 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1ad7c)" ( (binary_expression "puVar14 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }" else (compound_statement "{\n    (**(code **)(puVar14 + 0x1ad7c))();\n  }" { (expression_statement "(**(code **)(puVar14 + 0x1ad7c))();" (call_expression "(**(code **)(puVar14 + 0x1ad7c))()" (parenthesized_expression "(**(code **)(puVar14 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar14 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar14 + 0x1ad7c)" * (cast_expression "(code **)(puVar14 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1ad7c)" ( (binary_expression "puVar14 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x95c,5);" (assignment_expression "uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x95c,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x95c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar14 + 0x1ae30)" * (pointer_expression "*(code **)(puVar14 + 0x1ae30)" * (cast_expression "(code **)(puVar14 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1ae30)" ( (binary_expression "puVar14 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x1ac58) + -0x95c,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x1ac58) + -0x95c" (pointer_expression "*(int *)(puVar14 + 0x1ac58)" * (cast_expression "(int *)(puVar14 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1ac58)" ( (binary_expression "puVar14 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar14 + 0x1ad7c))(iVar3,1,*(undefined4 *)(puVar14 + 0x1acc4),uVar8,0x7e2);" (call_expression "(**(code **)(puVar14 + 0x1ad7c))(iVar3,1,*(undefined4 *)(puVar14 + 0x1acc4),uVar8,0x7e2)" (parenthesized_expression "(**(code **)(puVar14 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar14 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar14 + 0x1ad7c)" * (cast_expression "(code **)(puVar14 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1ad7c)" ( (binary_expression "puVar14 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "(iVar3,1,*(undefined4 *)(puVar14 + 0x1acc4),uVar8,0x7e2)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(puVar14 + 0x1acc4)" * (cast_expression "(undefined4 *)(puVar14 + 0x1acc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1acc4)" ( (binary_expression "puVar14 + 0x1acc4" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x958,5);" (assignment_expression "uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x958,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x958,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar14 + 0x1ae30)" * (pointer_expression "*(code **)(puVar14 + 0x1ae30)" * (cast_expression "(code **)(puVar14 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1ae30)" ( (binary_expression "puVar14 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x1ac58) + -0x958,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x1ac58) + -0x958" (pointer_expression "*(int *)(puVar14 + 0x1ac58)" * (cast_expression "(int *)(puVar14 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1ac58)" ( (binary_expression "puVar14 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar14 + 0x1ae80))(uVar8,iVar3);" (call_expression "(**(code **)(puVar14 + 0x1ae80))(uVar8,iVar3)" (parenthesized_expression "(**(code **)(puVar14 + 0x1ae80))" ( (pointer_expression "**(code **)(puVar14 + 0x1ae80)" * (pointer_expression "*(code **)(puVar14 + 0x1ae80)" * (cast_expression "(code **)(puVar14 + 0x1ae80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1ae80)" ( (binary_expression "puVar14 + 0x1ae80" identifier + number_literal) ))))) )) (argument_list "(uVar8,iVar3)" ( identifier , identifier ))) ;) (if_statement "if (uStack_74 < 10) {\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar9 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pcVar9;\n  }" if (parenthesized_expression "(uStack_74 < 10)" ( (binary_expression "uStack_74 < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pcVar9 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pcVar9;\n  }" { comment comment (expression_statement "pcVar9 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();" (assignment_expression "pcVar9 = (char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" identifier = (cast_expression "(char *)(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" (parenthesized_expression "(*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))" ( (pointer_expression "*(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" * (cast_expression "(code *)(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" ( (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20" (binary_expression "puVar14 +\n                               *(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4)" * (cast_expression "(int *)(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4)" ( (binary_expression "*(int *)(puVar14 + 0x1ac58) + -0x660 + uStack_74 * 4" (binary_expression "*(int *)(puVar14 + 0x1ac58) + -0x660" (pointer_expression "*(int *)(puVar14 + 0x1ac58)" * (cast_expression "(int *)(puVar14 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1ac58)" ( (binary_expression "puVar14 + 0x1ac58" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_74 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (expression_statement "uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x74c,5);" (assignment_expression "uVar8 = (**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x74c,5)" identifier = (call_expression "(**(code **)(puVar14 + 0x1ae30))(0,*(int *)(puVar14 + 0x1ac58) + -0x74c,5)" (parenthesized_expression "(**(code **)(puVar14 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar14 + 0x1ae30)" * (pointer_expression "*(code **)(puVar14 + 0x1ae30)" * (cast_expression "(code **)(puVar14 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1ae30)" ( (binary_expression "puVar14 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar14 + 0x1ac58) + -0x74c,5)" ( number_literal , (binary_expression "*(int *)(puVar14 + 0x1ac58) + -0x74c" (pointer_expression "*(int *)(puVar14 + 0x1ac58)" * (cast_expression "(int *)(puVar14 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x1ac58)" ( (binary_expression "puVar14 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "pcVar9 = (char *)(**(code **)(puVar14 + 0x1ad7c))\n                             (iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;" (assignment_expression "pcVar9 = (char *)(**(code **)(puVar14 + 0x1ad7c))\n                             (iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" identifier = (cast_expression "(char *)(**(code **)(puVar14 + 0x1ad7c))\n                             (iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar14 + 0x1ad7c))\n                             (iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" (parenthesized_expression "(**(code **)(puVar14 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar14 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar14 + 0x1ad7c)" * (cast_expression "(code **)(puVar14 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x1ad7c)" ( (binary_expression "puVar14 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "(iVar3,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (return_statement "return pcVar9;" return identifier ;) })))
(translation_unit "byte * trim2(undefined4 param_1,byte *param_2)\n\n{\n  bool bVar1;\n  undefined1 uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char cVar11;\n  byte *pbVar12;\n  undefined *puVar13;\n  uint uStack_74;\n  byte *local_6c;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined1 local_58;\n  byte *local_54;\n  int local_50;\n  char local_4c;\n  int local_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar9 = param_2;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }\n  local_54 = pbVar4;\n  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n  puVar13 = PTR_is_basic_table_00031124;\n  pbVar12 = pbVar4 + iVar6;\n  bVar1 = false;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }\nLAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }\n  iVar6 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);\n  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pbVar9;\n}\n\n" (function_definition "byte * trim2(undefined4 param_1,byte *param_2)\n\n{\n  bool bVar1;\n  undefined1 uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char cVar11;\n  byte *pbVar12;\n  undefined *puVar13;\n  uint uStack_74;\n  byte *local_6c;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined1 local_58;\n  byte *local_54;\n  int local_50;\n  char local_4c;\n  int local_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar9 = param_2;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }\n  local_54 = pbVar4;\n  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n  puVar13 = PTR_is_basic_table_00031124;\n  pbVar12 = pbVar4 + iVar6;\n  bVar1 = false;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }\nLAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }\n  iVar6 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);\n  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pbVar9;\n}" type_identifier (pointer_declarator "* trim2(undefined4 param_1,byte *param_2)" * (function_declarator "trim2(undefined4 param_1,byte *param_2)" identifier (parameter_list "(undefined4 param_1,byte *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined1 uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char cVar11;\n  byte *pbVar12;\n  undefined *puVar13;\n  uint uStack_74;\n  byte *local_6c;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined1 local_58;\n  byte *local_54;\n  int local_50;\n  char local_4c;\n  int local_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar9 = param_2;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }\n  local_54 = pbVar4;\n  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n  puVar13 = PTR_is_basic_table_00031124;\n  pbVar12 = pbVar4 + iVar6;\n  bVar1 = false;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }\nLAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }\n  iVar6 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);\n  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pbVar9;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined1 local_58;" type_identifier identifier ;) (declaration "byte *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "char local_4c;" primitive_type identifier ;) (declaration "int local_48 [7];" primitive_type (array_declarator "local_48 [7]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000312c4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000312c4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000312c4" * (cast_expression "(int *)PTR___stack_chk_guard_000312c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();" (assignment_expression "pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)()" identifier = (cast_expression "(byte *)(*(code *)PTR_strdup_000312cc)()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strdup_000312cc)()" (parenthesized_expression "(*(code *)PTR_strdup_000312cc)" ( (pointer_expression "*(code *)PTR_strdup_000312cc" * (cast_expression "(code *)PTR_strdup_000312cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }" { (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00015e6c:\n    local_54 = pbVar4;" statement_identifier : (expression_statement "local_54 = pbVar4;" (assignment_expression "local_54 = pbVar4" identifier = identifier) ;)) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)();" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)()" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)()" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar13 = PTR_is_basic_table_00031124;" (assignment_expression "puVar13 = PTR_is_basic_table_00031124" identifier = identifier) ;) (expression_statement "pbVar9 = pbVar4 + iVar6;" (assignment_expression "pbVar9 = pbVar4 + iVar6" identifier = (binary_expression "pbVar4 + iVar6" identifier + identifier)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }" if (parenthesized_expression "(pbVar4 < pbVar9)" ( (binary_expression "pbVar4 < pbVar9" identifier < identifier) )) (compound_statement "{\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }" { (expression_statement "pbVar12 = pbVar4;" (assignment_expression "pbVar12 = pbVar4" identifier = identifier) ;) (do_statement "do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);" do (compound_statement "{\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }" { (labeled_statement "LAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);" statement_identifier : (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" identifier = (call_expression "rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" identifier (argument_list "(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" ( identifier , identifier , (binary_expression "(int)pbVar9 - (int)pbVar12" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (if_statement "if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" if (parenthesized_expression "(local_50 == -1)" ( (binary_expression "local_50 == -1" identifier == number_literal) )) (compound_statement "{\n            local_50 = 1;\n            local_4c = '\0';\n          }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" else (if_statement "if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" if (parenthesized_expression "(local_50 == -2)" ( (binary_expression "local_50 == -2" identifier == number_literal) )) (compound_statement "{\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }" { (expression_statement "local_50 = (int)pbVar9 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar9 - (int)local_54" identifier = (binary_expression "(int)pbVar9 - (int)local_54" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" else (compound_statement "{\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" { (if_statement "if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (if_statement "if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" if (parenthesized_expression "(*local_54 != 0)" ( (binary_expression "*local_54 != 0" (pointer_expression "*local_54" * identifier) != number_literal) )) (compound_statement "{\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa10" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (if_statement "if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" if (parenthesized_expression "(local_48[0] != 0)" ( (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0x9f8" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) })) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar6 != 0) {\n              bVar1 = false;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar1 = false;\n            }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) }))))) }) (else_clause "else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" else (compound_statement "{\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" { (if_statement "if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }" if (parenthesized_expression "((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1" (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f)" (pointer_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4)" * (cast_expression "(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + (uint)(*pbVar12 >> 5) * 4)" ( (binary_expression "puVar13 + (uint)(*pbVar12 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar12 >> 5) * 4" (call_expression "(uint)(*pbVar12 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar12 >> 5)" ( (binary_expression "*pbVar12 >> 5" (pointer_expression "*pbVar12" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar12 & 0x1f)" ( (binary_expression "*pbVar12 & 0x1f" (pointer_expression "*pbVar12" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }" { (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa28" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00015edc;" goto statement_identifier ;) })) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_48[0] = (int)(char)*pbVar12;" (assignment_expression "local_48[0] = (int)(char)*pbVar12" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (cast_expression "(int)(char)*pbVar12" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar12" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar12" * identifier)))) ;) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (if_statement "if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;" if (parenthesized_expression "((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0))" ( (binary_expression "(local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)" (parenthesized_expression "(local_4c == '\0')" ( (binary_expression "local_4c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)" ( (comma_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = local_54 + local_50;" (assignment_expression "pbVar12 = local_54 + local_50" identifier = (binary_expression "local_54 + local_50" identifier + identifier)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_54 = pbVar12;" (assignment_expression "local_54 = pbVar12" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar12 < pbVar9)" ( (binary_expression "pbVar12 < pbVar9" identifier < identifier) )) ;) })) (expression_statement "pbVar9 = local_54;" (assignment_expression "pbVar9 = local_54" identifier = identifier) ;) (expression_statement "(*(code *)PTR_strlen_0003125c)(local_54);" (call_expression "(*(code *)PTR_strlen_0003125c)(local_54)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_54)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_memmove_000312d4)(pbVar4);" (call_expression "(*(code *)PTR_memmove_000312d4)(pbVar4)" (parenthesized_expression "(*(code *)PTR_memmove_000312d4)" ( (pointer_expression "*(code *)PTR_memmove_000312d4" * (cast_expression "(code *)PTR_memmove_000312d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))) ;) (if_statement "if (param_2 == (byte *)0x1) goto LAB_000160c8;" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000160c8;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" else (compound_statement "{\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" { (expression_statement "uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();" (assignment_expression "uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_00031290)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_00031290)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_00031290" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_00031290" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }" if (parenthesized_expression "(uVar5 < 2)" ( (binary_expression "uVar5 < 2" identifier < number_literal) )) (compound_statement "{\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }" { (if_statement "if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }" { (expression_statement "uVar5 = (uint)(char)*pbVar4;" (assignment_expression "uVar5 = (uint)(char)*pbVar4" identifier = (binary_expression "(uint)(char)*pbVar4" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar9 = pbVar4;" (assignment_expression "pbVar9 = pbVar4" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000311dc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000311dc" * (cast_expression "(code *)PTR___ctype_b_loc_000311dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))))) ;) (do_statement "do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);" do (compound_statement "{\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          }" { (if_statement "if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2)" * (cast_expression "(ushort *)(*piVar7 + (uVar5 & 0xff) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + (uVar5 & 0xff) * 2)" ( (binary_expression "*piVar7 + (uVar5 & 0xff) * 2" (pointer_expression "*piVar7" * identifier) + (binary_expression "(uVar5 & 0xff) * 2" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)(char)*pbVar9;" (assignment_expression "uVar5 = (uint)(char)*pbVar9" identifier = (binary_expression "(uint)(char)*pbVar9" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })) (expression_statement "(*(code *)PTR_strlen_0003125c)(pbVar9);" (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar9)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar9)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_memmove_000312d4)(pbVar4);" (call_expression "(*(code *)PTR_memmove_000312d4)(pbVar4)" (parenthesized_expression "(*(code *)PTR_memmove_000312d4)" ( (pointer_expression "*(code *)PTR_memmove_000312d4" * (cast_expression "(code *)PTR_memmove_000312d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier ))) ;) (if_statement "if (param_2 == (byte *)0x1) goto LAB_000160c8;" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000160c8;" goto statement_identifier ;)) })) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier )))) ;) (expression_statement "pbVar12 = pbVar4 + iVar6 + -1;" (assignment_expression "pbVar12 = pbVar4 + iVar6 + -1" identifier = (binary_expression "pbVar4 + iVar6 + -1" (binary_expression "pbVar4 + iVar6" identifier + identifier) + number_literal)) ;) (if_statement "if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }" if (parenthesized_expression "(pbVar4 <= pbVar12)" ( (binary_expression "pbVar4 <= pbVar12" identifier <= identifier) )) (compound_statement "{\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000311dc)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_000311dc)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000311dc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_000311dc" * (cast_expression "(code *)PTR___ctype_b_loc_000311dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar6 = *piVar7;" (assignment_expression "iVar6 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (do_statement "do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);" do (compound_statement "{\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        }" { (if_statement "if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar6 + (uint)*pbVar12 * 2)" * (cast_expression "(ushort *)(iVar6 + (uint)*pbVar12 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + (uint)*pbVar12 * 2)" ( (binary_expression "iVar6 + (uint)*pbVar12 * 2" identifier + (binary_expression "(uint)*pbVar12 * 2" (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "*pbVar12 = 0;" (assignment_expression "*pbVar12 = 0" (pointer_expression "*pbVar12" * identifier) = number_literal) ;) (expression_statement "pbVar12 = pbVar12 + -1;" (assignment_expression "pbVar12 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 <= pbVar12)" ( (binary_expression "pbVar4 <= pbVar12" identifier <= identifier) )) ;) })) (goto_statement "goto LAB_000160c8;" goto statement_identifier ;) })) (if_statement "if (param_2 != (byte *)0x0) goto LAB_00015e6c;" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00015e6c;" goto statement_identifier ;)) }))) (expression_statement "local_54 = pbVar4;" (assignment_expression "local_54 = pbVar4" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" identifier = (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" ( (pointer_expression "*(code *)PTR_strlen_0003125c" * (cast_expression "(code *)PTR_strlen_0003125c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar4)" ( identifier )))) ;) (expression_statement "puVar13 = PTR_is_basic_table_00031124;" (assignment_expression "puVar13 = PTR_is_basic_table_00031124" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar4 + iVar6;" (assignment_expression "pbVar12 = pbVar4 + iVar6" identifier = (binary_expression "pbVar4 + iVar6" identifier + identifier)) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }" if (parenthesized_expression "(pbVar4 < pbVar12)" ( (binary_expression "pbVar4 < pbVar12" identifier < identifier) )) (compound_statement "{\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }" { (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar3 = pbVar4;" (assignment_expression "pbVar3 = pbVar4" identifier = identifier) ;) (do_statement "do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);" do (compound_statement "{\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    }" { (expression_statement "pbVar9 = pbVar3;" (assignment_expression "pbVar9 = pbVar3" identifier = identifier) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (if_statement "if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }" { (labeled_statement "LAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);" statement_identifier : (expression_statement "local_50 = rpl_mbrtowc(local_48);" (assignment_expression "local_50 = rpl_mbrtowc(local_48)" identifier = (call_expression "rpl_mbrtowc(local_48)" identifier (argument_list "(local_48)" ( identifier )))) ;)) (if_statement "if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(local_50 == -1)" ( (binary_expression "local_50 == -1" identifier == number_literal) )) (compound_statement "{\n          local_50 = 1;\n          local_4c = '\0';\n        }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" else (if_statement "if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" if (parenthesized_expression "(local_50 == -2)" ( (binary_expression "local_50 == -2" identifier == number_literal) )) (compound_statement "{\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }" { (expression_statement "local_50 = (int)pbVar12 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar12 - (int)local_54" identifier = (binary_expression "(int)pbVar12 - (int)local_54" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" else (compound_statement "{\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" { (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (compound_statement "{\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }" { (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (if_statement "if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" if (parenthesized_expression "(*local_54 != 0)" ( (binary_expression "*local_54 != 0" (pointer_expression "*local_54" * identifier) != number_literal) )) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa10" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (if_statement "if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }" if (parenthesized_expression "(local_48[0] != 0)" ( (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" ( (binary_expression "PTR_UINT_000310d8 + -0x9f8" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) })) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar6 != 0) {\n            bVar1 = false;\n          }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar1 = false;\n          }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) }))))) }) (else_clause "else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" else (compound_statement "{\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" { (if_statement "if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }" if (parenthesized_expression "((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1)" ( (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1" (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f)" (pointer_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4)" * (cast_expression "(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + (uint)(*pbVar9 >> 5) * 4)" ( (binary_expression "puVar13 + (uint)(*pbVar9 >> 5) * 4" identifier + (binary_expression "(uint)(*pbVar9 >> 5) * 4" (call_expression "(uint)(*pbVar9 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar9 >> 5)" ( (binary_expression "*pbVar9 >> 5" (pointer_expression "*pbVar9" * identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(*pbVar9 & 0x1f)" ( (binary_expression "*pbVar9 & 0x1f" (pointer_expression "*pbVar9" * identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }" { (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" identifier = (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" ( (pointer_expression "*(code *)PTR_mbsinit_000312c0" * (cast_expression "(code *)PTR_mbsinit_000312c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }" { (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" ( (pointer_expression "*(code *)PTR___assert_fail_000311e0" * (cast_expression "(code *)PTR___assert_fail_000311e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" ( (binary_expression "PTR_UINT_000310d8 + -0xa28" identifier + number_literal) , (binary_expression "PTR_UINT_000310d8 + -0x9a0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_000310d8 + -0x990" identifier + number_literal) ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_0001623c;" goto statement_identifier ;) })) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_48[0] = (int)(char)*pbVar9;" (assignment_expression "local_48[0] = (int)(char)*pbVar9" (subscript_expression "local_48[0]" identifier [ number_literal ]) = (cast_expression "(int)(char)*pbVar9" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*pbVar9" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*pbVar9" * identifier)))) ;) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (if_statement "if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" if (parenthesized_expression "(cVar11 == '\0')" ( (binary_expression "cVar11 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }" { (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }" if (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }" { (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) ;) (expression_statement "cVar11 = iVar6 == 0;" (assignment_expression "cVar11 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) })) }) (else_clause "else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" else (if_statement "if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" if (parenthesized_expression "(cVar11 == '\x01')" ( (binary_expression "cVar11 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }" { (if_statement "if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }" if (parenthesized_expression "(local_4c != '\0')" ( (binary_expression "local_4c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }" { (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }" { (expression_statement "cVar11 = '\x02';" (assignment_expression "cVar11 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" identifier = identifier) ;) })) })) }) (else_clause "else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" else (if_statement "if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" if (parenthesized_expression "(cVar11 == '\x02')" ( (binary_expression "cVar11 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }" { (if_statement "if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" if (parenthesized_expression "(local_4c == '\0')" ( (binary_expression "local_4c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          cVar11 = '\x01';\n        }" { (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }) (else_clause "else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" else (compound_statement "{\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" { (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" identifier = (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" ( (pointer_expression "*(code *)PTR_iswspace_00031270" * (cast_expression "(code *)PTR_iswspace_00031270" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_48[0])" ( (subscript_expression "local_48[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            cVar11 = '\x01';\n          }" { (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) }))) }) (else_clause "else {\n        cVar11 = '\x01';\n      }" else (compound_statement "{\n        cVar11 = '\x01';\n      }" { (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))))))) (expression_statement "local_54 = local_54 + local_50;" (assignment_expression "local_54 = local_54 + local_50" identifier = (binary_expression "local_54 + local_50" identifier + identifier)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar3 = local_54;" (assignment_expression "pbVar3 = local_54" identifier = identifier) ;) }) while (parenthesized_expression "(local_54 < pbVar12)" ( (binary_expression "local_54 < pbVar12" identifier < identifier) )) ;) (if_statement "if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }" if (parenthesized_expression "(cVar11 == '\x02')" ( (binary_expression "cVar11 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      *local_6c = 0;\n    }" { (expression_statement "*local_6c = 0;" (assignment_expression "*local_6c = 0" (pointer_expression "*local_6c" * identifier) = number_literal) ;) })) })) (labeled_statement "LAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000312c4)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000312c4" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000312c4" * (cast_expression "(int *)PTR___stack_chk_guard_000312c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar4;\n  }" { (return_statement "return pbVar4;" return identifier ;) }))) (expression_statement "iVar6 = local_2c;" (assignment_expression "iVar6 = local_2c" identifier = identifier) ;) (expression_statement "puVar13 = PTR___stack_chk_fail_000312ac;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000312ac" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000312ac)();" (call_expression "(*(code *)PTR___stack_chk_fail_000312ac)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000312ac)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000312ac" * (cast_expression "(code *)PTR___stack_chk_fail_000312ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" { (expression_statement "(**(code **)(puVar13 + 0x1ad7c))();" (call_expression "(**(code **)(puVar13 + 0x1ad7c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" * (cast_expression "(code **)(puVar13 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ad7c)" ( (binary_expression "puVar13 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" else (compound_statement "{\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" { (expression_statement "(**(code **)(puVar13 + 0x1ad7c))();" (call_expression "(**(code **)(puVar13 + 0x1ad7c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" * (cast_expression "(code **)(puVar13 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ad7c)" ( (binary_expression "puVar13 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" identifier = (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar13 + 0x1ae30)" * (pointer_expression "*(code **)(puVar13 + 0x1ae30)" * (cast_expression "(code **)(puVar13 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ae30)" ( (binary_expression "puVar13 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" ( number_literal , (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x95c" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" * (cast_expression "(int *)(puVar13 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1ac58)" ( (binary_expression "puVar13 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);" (call_expression "(**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" * (cast_expression "(code **)(puVar13 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ad7c)" ( (binary_expression "puVar13 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(puVar13 + 0x1acc4)" * (cast_expression "(undefined4 *)(puVar13 + 0x1acc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1acc4)" ( (binary_expression "puVar13 + 0x1acc4" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" identifier = (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar13 + 0x1ae30)" * (pointer_expression "*(code **)(puVar13 + 0x1ae30)" * (cast_expression "(code **)(puVar13 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ae30)" ( (binary_expression "puVar13 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" ( number_literal , (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x958" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" * (cast_expression "(int *)(puVar13 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1ac58)" ( (binary_expression "puVar13 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);" (call_expression "(**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae80))" ( (pointer_expression "**(code **)(puVar13 + 0x1ae80)" * (pointer_expression "*(code **)(puVar13 + 0x1ae80)" * (cast_expression "(code **)(puVar13 + 0x1ae80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ae80)" ( (binary_expression "puVar13 + 0x1ae80" identifier + number_literal) ))))) )) (argument_list "(uVar8,iVar6)" ( identifier , identifier ))) ;) (if_statement "if (uStack_74 < 10) {\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }" if (parenthesized_expression "(uStack_74 < 10)" ( (binary_expression "uStack_74 < 10" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }" { (expression_statement "pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();" (assignment_expression "pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" identifier = (cast_expression "(byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" (parenthesized_expression "(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))" ( (pointer_expression "*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" * (cast_expression "(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" ( (binary_expression "puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20" (binary_expression "puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" * (cast_expression "(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" ( (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4" (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x660" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" * (cast_expression "(int *)(puVar13 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1ac58)" ( (binary_expression "puVar13 + 0x1ac58" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_74 * 4" identifier * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar9;" return identifier ;) })) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" identifier = (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" ( (pointer_expression "**(code **)(puVar13 + 0x1ae30)" * (pointer_expression "*(code **)(puVar13 + 0x1ae30)" * (cast_expression "(code **)(puVar13 + 0x1ae30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ae30)" ( (binary_expression "puVar13 + 0x1ae30" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" ( number_literal , (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x74c" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" * (cast_expression "(int *)(puVar13 + 0x1ac58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1ac58)" ( (binary_expression "puVar13 + 0x1ac58" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;" (assignment_expression "pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" identifier = (cast_expression "(byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" ( (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" * (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" * (cast_expression "(code **)(puVar13 + 0x1ad7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x1ad7c)" ( (binary_expression "puVar13 + 0x1ad7c" identifier + number_literal) ))))) )) (argument_list "(iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (return_statement "return pbVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) }))))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) >> LIT) ))) * LIT)) )))) >> (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (do_statement do (compound_statement { (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 (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) )))) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (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 + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) * LIT)) )))) & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))))) ;) (return_statement return IDENT ;) })) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) }))))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) >> LIT) ))) * LIT)) )))) >> (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT * LIT)) ))))) + LIT) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))))) ;) (return_statement return IDENT ;) })))
(function_definition "byte * trim2(undefined4 param_1,byte *param_2)\n\n{\n  bool bVar1;\n  undefined1 uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char cVar11;\n  byte *pbVar12;\n  undefined *puVar13;\n  uint uStack_74;\n  byte *local_6c;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined1 local_58;\n  byte *local_54;\n  int local_50;\n  char local_4c;\n  int local_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar9 = param_2;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }\n  local_54 = pbVar4;\n  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n  puVar13 = PTR_is_basic_table_00031124;\n  pbVar12 = pbVar4 + iVar6;\n  bVar1 = false;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }\nLAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }\n  iVar6 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);\n  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pbVar9;\n}" (type_identifier "byte") (pointer_declarator "* trim2(undefined4 param_1,byte *param_2)" (* "*") (function_declarator "trim2(undefined4 param_1,byte *param_2)" (identifier "trim2") (parameter_list "(undefined4 param_1,byte *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  undefined1 uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  char cVar11;\n  byte *pbVar12;\n  undefined *puVar13;\n  uint uStack_74;\n  byte *local_6c;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined1 local_58;\n  byte *local_54;\n  int local_50;\n  char local_4c;\n  int local_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000312c4;\n  pbVar9 = param_2;\n  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();\n  if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }\n  local_54 = pbVar4;\n  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n  puVar13 = PTR_is_basic_table_00031124;\n  pbVar12 = pbVar4 + iVar6;\n  bVar1 = false;\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = 0;\n  if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }\nLAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }\n  iVar6 = local_2c;\n  puVar13 = PTR___stack_chk_fail_000312ac;\n  (*(code *)PTR___stack_chk_fail_000312ac)();\n  if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);\n  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);\n  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);\n  if (uStack_74 < 10) {\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }\n  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);\n  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;\n  return pbVar9;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint uStack_74;" (type_identifier "uint") (identifier "uStack_74") (; ";")) (declaration "byte *local_6c;" (type_identifier "byte") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined1 local_58;" (type_identifier "undefined1") (identifier "local_58") (; ";")) (declaration "byte *local_54;" (type_identifier "byte") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "char local_4c;" (primitive_type "char") (identifier "local_4c") (; ";")) (declaration "int local_48 [7];" (primitive_type "int") (array_declarator "local_48 [7]" (identifier "local_48") ([ "[") (number_literal "7") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000312c4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000312c4" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000312c4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000312c4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000312c4")))) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();" (assignment_expression "pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)()" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(*(code *)PTR_strdup_000312cc)()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strdup_000312cc)()" (parenthesized_expression "(*(code *)PTR_strdup_000312cc)" (( "(") (pointer_expression "*(code *)PTR_strdup_000312cc" (* "*") (cast_expression "(code *)PTR_strdup_000312cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strdup_000312cc"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (pbVar4 == (byte *)0x0) {\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }\n  else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" (if "if") (parenthesized_expression "(pbVar4 == (byte *)0x0)" (( "(") (binary_expression "pbVar4 == (byte *)0x0" (identifier "pbVar4") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    xalloc_die();\nLAB_00015e6c:\n    local_54 = pbVar4;\n    iVar6 = (*(code *)PTR_strlen_0003125c)();\n    puVar13 = PTR_is_basic_table_00031124;\n    pbVar9 = pbVar4 + iVar6;\n    bVar1 = false;\n    local_60 = 0;\n    local_5c = 0;\n    local_58 = 0;\n    if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }\n    pbVar9 = local_54;\n    (*(code *)PTR_strlen_0003125c)(local_54);\n    (*(code *)PTR_memmove_000312d4)(pbVar4);\n    if (param_2 == (byte *)0x1) goto LAB_000160c8;\n  }" ({ "{") (expression_statement "xalloc_die();" (call_expression "xalloc_die()" (identifier "xalloc_die") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00015e6c:\n    local_54 = pbVar4;" (statement_identifier "LAB_00015e6c") (: ":") (expression_statement "local_54 = pbVar4;" (assignment_expression "local_54 = pbVar4" (identifier "local_54") (= "=") (identifier "pbVar4")) (; ";"))) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)();" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)()" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_strlen_0003125c)()" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003125c" (* "*") (cast_expression "(code *)PTR_strlen_0003125c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003125c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar13 = PTR_is_basic_table_00031124;" (assignment_expression "puVar13 = PTR_is_basic_table_00031124" (identifier "puVar13") (= "=") (identifier "PTR_is_basic_table_00031124")) (; ";")) (expression_statement "pbVar9 = pbVar4 + iVar6;" (assignment_expression "pbVar9 = pbVar4 + iVar6" (identifier "pbVar9") (= "=") (binary_expression "pbVar4 + iVar6" (identifier "pbVar4") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar4 < pbVar9) {\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }" (if "if") (parenthesized_expression "(pbVar4 < pbVar9)" (( "(") (binary_expression "pbVar4 < pbVar9" (identifier "pbVar4") (< "<") (identifier "pbVar9")) () ")")) (compound_statement "{\n      pbVar12 = pbVar4;\n      do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);\n    }" ({ "{") (expression_statement "pbVar12 = pbVar4;" (assignment_expression "pbVar12 = pbVar4" (identifier "pbVar12") (= "=") (identifier "pbVar4")) (; ";")) (do_statement "do {\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      } while (pbVar12 < pbVar9);" (do "do") (compound_statement "{\n        local_58 = 0;\n        if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }\n        local_58 = 1;\n        if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;\n        pbVar12 = local_54 + local_50;\n        local_58 = 0;\n        local_54 = pbVar12;\n      }" ({ "{") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar1) {\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }\n        else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\nLAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);\n          if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }\n        }" ({ "{") (labeled_statement "LAB_00015edc:\n          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);" (statement_identifier "LAB_00015edc") (: ":") (expression_statement "local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);" (assignment_expression "local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" (identifier "local_50") (= "=") (call_expression "rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" (identifier "rpl_mbrtowc") (argument_list "(local_48,pbVar12,(int)pbVar9 - (int)pbVar12)" (( "(") (identifier "local_48") (, ",") (identifier "pbVar12") (, ",") (binary_expression "(int)pbVar9 - (int)pbVar12" (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")) (- "-") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) () ")")))) (; ";"))) (if_statement "if (local_50 == -1) {\n            local_50 = 1;\n            local_4c = '\0';\n          }\n          else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" (if "if") (parenthesized_expression "(local_50 == -1)" (( "(") (binary_expression "local_50 == -1" (identifier "local_50") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            local_50 = 1;\n            local_4c = '\0';\n          }" ({ "{") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" (identifier "local_4c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" (else "else") (if_statement "if (local_50 == -2) {\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }\n          else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" (if "if") (parenthesized_expression "(local_50 == -2)" (( "(") (binary_expression "local_50 == -2" (identifier "local_50") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n            local_50 = (int)pbVar9 - (int)local_54;\n            local_4c = '\0';\n          }" ({ "{") (expression_statement "local_50 = (int)pbVar9 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar9 - (int)local_54" (identifier "local_50") (= "=") (binary_expression "(int)pbVar9 - (int)local_54" (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")) (- "-") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")))) (; ";")) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" (identifier "local_4c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" (else "else") (compound_statement "{\n            if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }\n            local_4c = '\x01';\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 != 0) {\n              bVar1 = false;\n            }\n          }" ({ "{") (if_statement "if (local_50 == 0) {\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }" (if "if") (parenthesized_expression "(local_50 == 0)" (( "(") (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_50 = 1;\n              if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n              if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }\n            }" ({ "{") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*local_54 != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" (if "if") (parenthesized_expression "(*local_54 != 0)" (( "(") (binary_expression "*local_54 != 0" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" ({ "{") (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000311e0" (* "*") (cast_expression "(code *)PTR___assert_fail_000311e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000311e0"))) () ")")) (argument_list "(PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,\n                                            0xa9,PTR_UINT_000310d8 + -0x990)" (( "(") (binary_expression "PTR_UINT_000310d8 + -0xa10" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0xa10")) (, ",") (binary_expression "PTR_UINT_000310d8 + -0x9a0" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x9a0")) (, ",") (number_literal "0xa9") (, ",") (binary_expression "PTR_UINT_000310d8 + -0x990" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x990")) () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (if_statement "if (local_48[0] != 0) {\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" (if "if") (parenthesized_expression "(local_48[0] != 0)" (( "(") (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);\n                return pbVar9;\n              }" ({ "{") (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000311e0" (* "*") (cast_expression "(code *)PTR___assert_fail_000311e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000311e0"))) () ")")) (argument_list "(PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,\n                                            0xaa,PTR_UINT_000310d8 + -0x990)" (( "(") (binary_expression "PTR_UINT_000310d8 + -0x9f8" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x9f8")) (, ",") (binary_expression "PTR_UINT_000310d8 + -0x9a0" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x9a0")) (, ",") (number_literal "0xaa") (, ",") (binary_expression "PTR_UINT_000310d8 + -0x990" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x990")) () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" (identifier "local_4c") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_000312c0" (* "*") (cast_expression "(code *)PTR_mbsinit_000312c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_000312c0"))) () ")")) (argument_list "(&local_60)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n              bVar1 = false;\n            }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar1 = false;\n            }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}"))) (} "}")))))) (} "}")) (else_clause "else {\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" (else "else") (compound_statement "{\n          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }\n          local_50 = 1;\n          local_48[0] = (int)(char)*pbVar12;\n          local_4c = '\x01';\n        }" ({ "{") (if_statement "if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }" (if "if") (parenthesized_expression "((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1)" (( "(") (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1" (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f)" (pointer_expression "*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4)" (* "*") (cast_expression "(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + (uint)(*pbVar12 >> 5) * 4)" (( "(") (binary_expression "puVar13 + (uint)(*pbVar12 >> 5) * 4" (identifier "puVar13") (+ "+") (binary_expression "(uint)(*pbVar12 >> 5) * 4" (call_expression "(uint)(*pbVar12 >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar12 >> 5)" (( "(") (binary_expression "*pbVar12 >> 5" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (>> ">>") (number_literal "5")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "(*pbVar12 & 0x1f)" (( "(") (binary_expression "*pbVar12 & 0x1f" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n            if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            bVar1 = true;\n            goto LAB_00015edc;\n          }" ({ "{") (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_000312c0" (* "*") (cast_expression "(code *)PTR_mbsinit_000312c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_000312c0"))) () ")")) (argument_list "(&local_60)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" ({ "{") (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000311e0" (* "*") (cast_expression "(code *)PTR___assert_fail_000311e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000311e0"))) () ")")) (argument_list "(PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e\n                                          ,PTR_UINT_000310d8 + -0x990)" (( "(") (binary_expression "PTR_UINT_000310d8 + -0xa28" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0xa28")) (, ",") (binary_expression "PTR_UINT_000310d8 + -0x9a0" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x9a0")) (, ",") (number_literal "0x8e") (, ",") (binary_expression "PTR_UINT_000310d8 + -0x990" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x990")) () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_00015edc;" (goto "goto") (statement_identifier "LAB_00015edc") (; ";")) (} "}"))) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_48[0] = (int)(char)*pbVar12;" (assignment_expression "local_48[0] = (int)(char)*pbVar12" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int)(char)*pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))))) (; ";")) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" (identifier "local_4c") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;" (if "if") (parenthesized_expression "((local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0))" (( "(") (binary_expression "(local_4c == '\0') ||\n           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)" (parenthesized_expression "(local_4c == '\0')" (( "(") (binary_expression "local_4c == '\0'" (identifier "local_4c") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)" (( "(") (comma_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" (( "(") (pointer_expression "*(code *)PTR_iswspace_00031270" (* "*") (cast_expression "(code *)PTR_iswspace_00031270" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswspace_00031270"))) () ")")) (argument_list "(local_48[0])" (( "(") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) () ")")))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar12 = local_54 + local_50;" (assignment_expression "pbVar12 = local_54 + local_50" (identifier "pbVar12") (= "=") (binary_expression "local_54 + local_50" (identifier "local_54") (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = pbVar12;" (assignment_expression "local_54 = pbVar12" (identifier "local_54") (= "=") (identifier "pbVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar12 < pbVar9)" (( "(") (binary_expression "pbVar12 < pbVar9" (identifier "pbVar12") (< "<") (identifier "pbVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar9 = local_54;" (assignment_expression "pbVar9 = local_54" (identifier "pbVar9") (= "=") (identifier "local_54")) (; ";")) (expression_statement "(*(code *)PTR_strlen_0003125c)(local_54);" (call_expression "(*(code *)PTR_strlen_0003125c)(local_54)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003125c" (* "*") (cast_expression "(code *)PTR_strlen_0003125c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003125c"))) () ")")) (argument_list "(local_54)" (( "(") (identifier "local_54") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_memmove_000312d4)(pbVar4);" (call_expression "(*(code *)PTR_memmove_000312d4)(pbVar4)" (parenthesized_expression "(*(code *)PTR_memmove_000312d4)" (( "(") (pointer_expression "*(code *)PTR_memmove_000312d4" (* "*") (cast_expression "(code *)PTR_memmove_000312d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_000312d4"))) () ")")) (argument_list "(pbVar4)" (( "(") (identifier "pbVar4") () ")"))) (; ";")) (if_statement "if (param_2 == (byte *)0x1) goto LAB_000160c8;" (if "if") (parenthesized_expression "(param_2 == (byte *)0x1)" (( "(") (binary_expression "param_2 == (byte *)0x1" (identifier "param_2") (== "==") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (goto_statement "goto LAB_000160c8;" (goto "goto") (statement_identifier "LAB_000160c8") (; ";"))) (} "}")) (else_clause "else {\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" (else "else") (compound_statement "{\n    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();\n    if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }\n    if (param_2 != (byte *)0x0) goto LAB_00015e6c;\n  }" ({ "{") (expression_statement "uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();" (assignment_expression "uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)()" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_00031290)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_00031290)" (( "(") (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_00031290" (* "*") (cast_expression "(code *)PTR___ctype_get_mb_cur_max_00031290" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_get_mb_cur_max_00031290"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar5 < 2) {\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }" (if "if") (parenthesized_expression "(uVar5 < 2)" (( "(") (binary_expression "uVar5 < 2" (identifier "uVar5") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }\n      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);\n      pbVar12 = pbVar4 + iVar6 + -1;\n      if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }\n      goto LAB_000160c8;\n    }" ({ "{") (if_statement "if (param_2 != (byte *)0x0) {\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }" (if "if") (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar5 = (uint)(char)*pbVar4;\n        pbVar9 = pbVar4;\n        if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }\n        (*(code *)PTR_strlen_0003125c)(pbVar9);\n        (*(code *)PTR_memmove_000312d4)(pbVar4);\n        if (param_2 == (byte *)0x1) goto LAB_000160c8;\n      }" ({ "{") (expression_statement "uVar5 = (uint)(char)*pbVar4;" (assignment_expression "uVar5 = (uint)(char)*pbVar4" (identifier "uVar5") (= "=") (binary_expression "(uint)(char)*pbVar4" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "pbVar9 = pbVar4;" (assignment_expression "pbVar9 = pbVar4" (identifier "pbVar9") (= "=") (identifier "pbVar4")) (; ";")) (if_statement "if (uVar5 != 0) {\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);\n          do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);\n        }" ({ "{") (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000311dc)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_000311dc" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_000311dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_000311dc"))) () ")")) (argument_list "(pbVar4)" (( "(") (identifier "pbVar4") () ")"))))) (; ";")) (do_statement "do {\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          } while (uVar5 != 0);" (do "do") (compound_statement "{\n            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;\n            pbVar9 = pbVar9 + 1;\n            uVar5 = (uint)(char)*pbVar9;\n          }" ({ "{") (if_statement "if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2)" (* "*") (cast_expression "(ushort *)(*piVar7 + (uVar5 & 0xff) * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar7 + (uVar5 & 0xff) * 2)" (( "(") (binary_expression "*piVar7 + (uVar5 & 0xff) * 2" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (binary_expression "(uVar5 & 0xff) * 2" (parenthesized_expression "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = (uint)(char)*pbVar9;" (assignment_expression "uVar5 = (uint)(char)*pbVar9" (identifier "uVar5") (= "=") (binary_expression "(uint)(char)*pbVar9" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (* "*") (identifier "pbVar9"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_strlen_0003125c)(pbVar9);" (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar9)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003125c" (* "*") (cast_expression "(code *)PTR_strlen_0003125c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003125c"))) () ")")) (argument_list "(pbVar9)" (( "(") (identifier "pbVar9") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_memmove_000312d4)(pbVar4);" (call_expression "(*(code *)PTR_memmove_000312d4)(pbVar4)" (parenthesized_expression "(*(code *)PTR_memmove_000312d4)" (( "(") (pointer_expression "*(code *)PTR_memmove_000312d4" (* "*") (cast_expression "(code *)PTR_memmove_000312d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_000312d4"))) () ")")) (argument_list "(pbVar4)" (( "(") (identifier "pbVar4") () ")"))) (; ";")) (if_statement "if (param_2 == (byte *)0x1) goto LAB_000160c8;" (if "if") (parenthesized_expression "(param_2 == (byte *)0x1)" (( "(") (binary_expression "param_2 == (byte *)0x1" (identifier "param_2") (== "==") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (goto_statement "goto LAB_000160c8;" (goto "goto") (statement_identifier "LAB_000160c8") (; ";"))) (} "}"))) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003125c" (* "*") (cast_expression "(code *)PTR_strlen_0003125c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003125c"))) () ")")) (argument_list "(pbVar4)" (( "(") (identifier "pbVar4") () ")")))) (; ";")) (expression_statement "pbVar12 = pbVar4 + iVar6 + -1;" (assignment_expression "pbVar12 = pbVar4 + iVar6 + -1" (identifier "pbVar12") (= "=") (binary_expression "pbVar4 + iVar6 + -1" (binary_expression "pbVar4 + iVar6" (identifier "pbVar4") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pbVar4 <= pbVar12) {\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }" (if "if") (parenthesized_expression "(pbVar4 <= pbVar12)" (( "(") (binary_expression "pbVar4 <= pbVar12" (identifier "pbVar4") (<= "<=") (identifier "pbVar12")) () ")")) (compound_statement "{\n        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();\n        iVar6 = *piVar7;\n        do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);\n      }" ({ "{") (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)()" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_000311dc)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_000311dc)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_000311dc)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_000311dc" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_000311dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_000311dc"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar6 = *piVar7;" (assignment_expression "iVar6 = *piVar7" (identifier "iVar6") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (do_statement "do {\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        } while (pbVar4 <= pbVar12);" (do "do") (compound_statement "{\n          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;\n          *pbVar12 = 0;\n          pbVar12 = pbVar12 + -1;\n        }" ({ "{") (if_statement "if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar6 + (uint)*pbVar12 * 2)" (* "*") (cast_expression "(ushort *)(iVar6 + (uint)*pbVar12 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + (uint)*pbVar12 * 2)" (( "(") (binary_expression "iVar6 + (uint)*pbVar12 * 2" (identifier "iVar6") (+ "+") (binary_expression "(uint)*pbVar12 * 2" (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*pbVar12 = 0;" (assignment_expression "*pbVar12 = 0" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar12 = pbVar12 + -1;" (assignment_expression "pbVar12 = pbVar12 + -1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + -1" (identifier "pbVar12") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar4 <= pbVar12)" (( "(") (binary_expression "pbVar4 <= pbVar12" (identifier "pbVar4") (<= "<=") (identifier "pbVar12")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_000160c8;" (goto "goto") (statement_identifier "LAB_000160c8") (; ";")) (} "}"))) (if_statement "if (param_2 != (byte *)0x0) goto LAB_00015e6c;" (if "if") (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00015e6c;" (goto "goto") (statement_identifier "LAB_00015e6c") (; ";"))) (} "}")))) (expression_statement "local_54 = pbVar4;" (assignment_expression "local_54 = pbVar4" (identifier "local_54") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);" (assignment_expression "iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_strlen_0003125c)(pbVar4)" (parenthesized_expression "(*(code *)PTR_strlen_0003125c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003125c" (* "*") (cast_expression "(code *)PTR_strlen_0003125c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003125c"))) () ")")) (argument_list "(pbVar4)" (( "(") (identifier "pbVar4") () ")")))) (; ";")) (expression_statement "puVar13 = PTR_is_basic_table_00031124;" (assignment_expression "puVar13 = PTR_is_basic_table_00031124" (identifier "puVar13") (= "=") (identifier "PTR_is_basic_table_00031124")) (; ";")) (expression_statement "pbVar12 = pbVar4 + iVar6;" (assignment_expression "pbVar12 = pbVar4 + iVar6" (identifier "pbVar12") (= "=") (binary_expression "pbVar4 + iVar6" (identifier "pbVar4") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar4 < pbVar12) {\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }" (if "if") (parenthesized_expression "(pbVar4 < pbVar12)" (( "(") (binary_expression "pbVar4 < pbVar12" (identifier "pbVar4") (< "<") (identifier "pbVar12")) () ")")) (compound_statement "{\n    cVar11 = '\0';\n    pbVar10 = pbVar9;\n    pbVar3 = pbVar4;\n    do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);\n    if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }\n  }" ({ "{") (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" (identifier "cVar11") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" (identifier "pbVar10") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "pbVar3 = pbVar4;" (assignment_expression "pbVar3 = pbVar4" (identifier "pbVar3") (= "=") (identifier "pbVar4")) (; ";")) (do_statement "do {\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    } while (local_54 < pbVar12);" (do "do") (compound_statement "{\n      pbVar9 = pbVar3;\n      local_58 = 0;\n      if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }\n      local_58 = 1;\n      uVar2 = local_58;\n      local_58 = 1;\n      if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }\n      local_54 = local_54 + local_50;\n      local_58 = 0;\n      pbVar10 = pbVar9;\n      pbVar3 = local_54;\n    }" ({ "{") (expression_statement "pbVar9 = pbVar3;" (assignment_expression "pbVar9 = pbVar3" (identifier "pbVar9") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar1) {\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }\n      else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\nLAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);\n        if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0001623c:\n        local_50 = rpl_mbrtowc(local_48);" (statement_identifier "LAB_0001623c") (: ":") (expression_statement "local_50 = rpl_mbrtowc(local_48);" (assignment_expression "local_50 = rpl_mbrtowc(local_48)" (identifier "local_50") (= "=") (call_expression "rpl_mbrtowc(local_48)" (identifier "rpl_mbrtowc") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")")))) (; ";"))) (if_statement "if (local_50 == -1) {\n          local_50 = 1;\n          local_4c = '\0';\n        }\n        else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" (if "if") (parenthesized_expression "(local_50 == -1)" (( "(") (binary_expression "local_50 == -1" (identifier "local_50") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          local_50 = 1;\n          local_4c = '\0';\n        }" ({ "{") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" (identifier "local_4c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" (else "else") (if_statement "if (local_50 == -2) {\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }\n        else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" (if "if") (parenthesized_expression "(local_50 == -2)" (( "(") (binary_expression "local_50 == -2" (identifier "local_50") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n          local_50 = (int)pbVar12 - (int)local_54;\n          local_4c = '\0';\n        }" ({ "{") (expression_statement "local_50 = (int)pbVar12 - (int)local_54;" (assignment_expression "local_50 = (int)pbVar12 - (int)local_54" (identifier "local_50") (= "=") (binary_expression "(int)pbVar12 - (int)local_54" (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12")) (- "-") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")))) (; ";")) (expression_statement "local_4c = '\0';" (assignment_expression "local_4c = '\0'" (identifier "local_4c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" (else "else") (compound_statement "{\n          if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }\n          local_4c = '\x01';\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 != 0) {\n            bVar1 = false;\n          }\n        }" ({ "{") (if_statement "if (local_50 == 0) {\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }" (if "if") (parenthesized_expression "(local_50 == 0)" (( "(") (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_50 = 1;\n            if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }\n            if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }\n          }" ({ "{") (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*local_54 != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" (if "if") (parenthesized_expression "(*local_54 != 0)" (( "(") (binary_expression "*local_54 != 0" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);\n              return pbVar9;\n            }" ({ "{") (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000311e0" (* "*") (cast_expression "(code *)PTR___assert_fail_000311e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000311e0"))) () ")")) (argument_list "(PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9\n                                          ,PTR_UINT_000310d8 + -0x990)" (( "(") (binary_expression "PTR_UINT_000310d8 + -0xa10" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0xa10")) (, ",") (binary_expression "PTR_UINT_000310d8 + -0x9a0" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x9a0")) (, ",") (number_literal "0xa9") (, ",") (binary_expression "PTR_UINT_000310d8 + -0x990" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x990")) () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (if_statement "if (local_48[0] != 0) {\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }" (if "if") (parenthesized_expression "(local_48[0] != 0)" (( "(") (binary_expression "local_48[0] != 0" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );\n              return pbVar9;\n            }" ({ "{") (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         );" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000311e0" (* "*") (cast_expression "(code *)PTR___assert_fail_000311e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000311e0"))) () ")")) (argument_list "(PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa\n                                         )" (( "(") (binary_expression "PTR_UINT_000310d8 + -0x9f8" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x9f8")) (, ",") (binary_expression "PTR_UINT_000310d8 + -0x9a0" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x9a0")) (, ",") (number_literal "0xaa") () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" (identifier "local_4c") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_000312c0" (* "*") (cast_expression "(code *)PTR_mbsinit_000312c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_000312c0"))) () ")")) (argument_list "(&local_60)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n            bVar1 = false;\n          }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar1 = false;\n          }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}"))) (} "}")))))) (} "}")) (else_clause "else {\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" (else "else") (compound_statement "{\n        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }\n        local_50 = 1;\n        local_48[0] = (int)(char)*pbVar9;\n        local_4c = '\x01';\n        pbVar9 = pbVar10;\n      }" ({ "{") (if_statement "if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }" (if "if") (parenthesized_expression "((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1)" (( "(") (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1" (binary_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f)" (pointer_expression "*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4)" (* "*") (cast_expression "(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + (uint)(*pbVar9 >> 5) * 4)" (( "(") (binary_expression "puVar13 + (uint)(*pbVar9 >> 5) * 4" (identifier "puVar13") (+ "+") (binary_expression "(uint)(*pbVar9 >> 5) * 4" (call_expression "(uint)(*pbVar9 >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar9 >> 5)" (( "(") (binary_expression "*pbVar9 >> 5" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (>> ">>") (number_literal "5")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "(*pbVar9 & 0x1f)" (( "(") (binary_expression "*pbVar9 & 0x1f" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);\n          if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }\n          bVar1 = true;\n          goto LAB_0001623c;\n        }" ({ "{") (expression_statement "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_mbsinit_000312c0)(&local_60)" (parenthesized_expression "(*(code *)PTR_mbsinit_000312c0)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_000312c0" (* "*") (cast_expression "(code *)PTR_mbsinit_000312c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_000312c0"))) () ")")) (argument_list "(&local_60)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);\n            return pbVar9;\n          }" ({ "{") (expression_statement "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990);" (assignment_expression "pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_000311e0)\n                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" (parenthesized_expression "(*(code *)PTR___assert_fail_000311e0)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_000311e0" (* "*") (cast_expression "(code *)PTR___assert_fail_000311e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_000311e0"))) () ")")) (argument_list "(PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,\n                                        PTR_UINT_000310d8 + -0x990)" (( "(") (binary_expression "PTR_UINT_000310d8 + -0xa28" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0xa28")) (, ",") (binary_expression "PTR_UINT_000310d8 + -0x9a0" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x9a0")) (, ",") (number_literal "0x8e") (, ",") (binary_expression "PTR_UINT_000310d8 + -0x990" (identifier "PTR_UINT_000310d8") (+ "+") (number_literal "-0x990")) () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0001623c;" (goto "goto") (statement_identifier "LAB_0001623c") (; ";")) (} "}"))) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_48[0] = (int)(char)*pbVar9;" (assignment_expression "local_48[0] = (int)(char)*pbVar9" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int)(char)*pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*pbVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))))) (; ";")) (expression_statement "local_4c = '\x01';" (assignment_expression "local_4c = '\x01'" (identifier "local_4c") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" (identifier "pbVar9") (= "=") (identifier "pbVar10")) (; ";")) (} "}")))) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" (identifier "uVar2") (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (if_statement "if (cVar11 == '\0') {\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }\n      else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" (if "if") (parenthesized_expression "(cVar11 == '\0')" (( "(") (binary_expression "cVar11 == '\0'" (identifier "cVar11") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar11 = '\x01';\n        if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }\n      }" ({ "{") (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" (identifier "cVar11") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (if_statement "if (local_4c != '\0') {\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }" (if "if") (parenthesized_expression "(local_4c != '\0')" (( "(") (binary_expression "local_4c != '\0'" (identifier "local_4c") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_58 = uVar2;\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          cVar11 = iVar6 == 0;\n        }" ({ "{") (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" (identifier "local_58") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" (( "(") (pointer_expression "*(code *)PTR_iswspace_00031270" (* "*") (cast_expression "(code *)PTR_iswspace_00031270" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswspace_00031270"))) () ")")) (argument_list "(local_48[0])" (( "(") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (expression_statement "cVar11 = iVar6 == 0;" (assignment_expression "cVar11 = iVar6 == 0" (identifier "cVar11") (= "=") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" (else "else") (if_statement "if (cVar11 == '\x01') {\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }\n      else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" (if "if") (parenthesized_expression "(cVar11 == '\x01')" (( "(") (binary_expression "cVar11 == '\x01'" (identifier "cVar11") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n        if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }\n      }" ({ "{") (if_statement "if (local_4c != '\0') {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }" (if "if") (parenthesized_expression "(local_4c != '\0')" (( "(") (binary_expression "local_4c != '\0'" (identifier "local_4c") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }\n        }" ({ "{") (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" (( "(") (pointer_expression "*(code *)PTR_iswspace_00031270" (* "*") (cast_expression "(code *)PTR_iswspace_00031270" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswspace_00031270"))) () ")")) (argument_list "(local_48[0])" (( "(") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            cVar11 = '\x02';\n            local_6c = local_54;\n          }" ({ "{") (expression_statement "cVar11 = '\x02';" (assignment_expression "cVar11 = '\x02'" (identifier "cVar11") (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" (identifier "local_6c") (= "=") (identifier "local_54")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" (else "else") (if_statement "if (cVar11 == '\x02') {\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }\n      else {\n        cVar11 = '\x01';\n      }" (if "if") (parenthesized_expression "(cVar11 == '\x02')" (( "(") (binary_expression "cVar11 == '\x02'" (identifier "cVar11") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n        if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }\n      }" ({ "{") (if_statement "if (local_4c == '\0') {\n          cVar11 = '\x01';\n        }\n        else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" (if "if") (parenthesized_expression "(local_4c == '\0')" (( "(") (binary_expression "local_4c == '\0'" (identifier "local_4c") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          cVar11 = '\x01';\n        }" ({ "{") (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" (identifier "cVar11") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" (else "else") (compound_statement "{\n          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);\n          if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }\n        }" ({ "{") (expression_statement "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);" (assignment_expression "iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0])" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_iswspace_00031270)(local_48[0])" (parenthesized_expression "(*(code *)PTR_iswspace_00031270)" (( "(") (pointer_expression "*(code *)PTR_iswspace_00031270" (* "*") (cast_expression "(code *)PTR_iswspace_00031270" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswspace_00031270"))) () ")")) (argument_list "(local_48[0])" (( "(") (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n            cVar11 = '\x01';\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            cVar11 = '\x01';\n          }" ({ "{") (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" (identifier "cVar11") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        cVar11 = '\x01';\n      }" (else "else") (compound_statement "{\n        cVar11 = '\x01';\n      }" ({ "{") (expression_statement "cVar11 = '\x01';" (assignment_expression "cVar11 = '\x01'" (identifier "cVar11") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")))))))) (expression_statement "local_54 = local_54 + local_50;" (assignment_expression "local_54 = local_54 + local_50" (identifier "local_54") (= "=") (binary_expression "local_54 + local_50" (identifier "local_54") (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar10 = pbVar9;" (assignment_expression "pbVar10 = pbVar9" (identifier "pbVar10") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "pbVar3 = local_54;" (assignment_expression "pbVar3 = local_54" (identifier "pbVar3") (= "=") (identifier "local_54")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_54 < pbVar12)" (( "(") (binary_expression "local_54 < pbVar12" (identifier "local_54") (< "<") (identifier "pbVar12")) () ")")) (; ";")) (if_statement "if (cVar11 == '\x02') {\n      *local_6c = 0;\n    }" (if "if") (parenthesized_expression "(cVar11 == '\x02')" (( "(") (binary_expression "cVar11 == '\x02'" (identifier "cVar11") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n      *local_6c = 0;\n    }" ({ "{") (expression_statement "*local_6c = 0;" (assignment_expression "*local_6c = 0" (pointer_expression "*local_6c" (* "*") (identifier "local_6c")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000160c8:\n  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }" (statement_identifier "LAB_000160c8") (: ":") (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {\n    return pbVar4;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000312c4)" (( "(") (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000312c4" (identifier "local_2c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000312c4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000312c4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000312c4")))) () ")")) (compound_statement "{\n    return pbVar4;\n  }" ({ "{") (return_statement "return pbVar4;" (return "return") (identifier "pbVar4") (; ";")) (} "}")))) (expression_statement "iVar6 = local_2c;" (assignment_expression "iVar6 = local_2c" (identifier "iVar6") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar13 = PTR___stack_chk_fail_000312ac;" (assignment_expression "puVar13 = PTR___stack_chk_fail_000312ac" (identifier "puVar13") (= "=") (identifier "PTR___stack_chk_fail_000312ac")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000312ac)();" (call_expression "(*(code *)PTR___stack_chk_fail_000312ac)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000312ac)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000312ac" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000312ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000312ac"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (pbVar9 == (byte *)0x0) {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }\n  else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" (if "if") (parenthesized_expression "(pbVar9 == (byte *)0x0)" (( "(") (binary_expression "pbVar9 == (byte *)0x0" (identifier "pbVar9") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" ({ "{") (expression_statement "(**(code **)(puVar13 + 0x1ad7c))();" (call_expression "(**(code **)(puVar13 + 0x1ad7c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" (* "*") (cast_expression "(code **)(puVar13 + 0x1ad7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1ad7c)" (( "(") (binary_expression "puVar13 + 0x1ad7c" (identifier "puVar13") (+ "+") (number_literal "0x1ad7c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar13 + 0x1ad7c))();\n  }" ({ "{") (expression_statement "(**(code **)(puVar13 + 0x1ad7c))();" (call_expression "(**(code **)(puVar13 + 0x1ad7c))()" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" (* "*") (cast_expression "(code **)(puVar13 + 0x1ad7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1ad7c)" (( "(") (binary_expression "puVar13 + 0x1ad7c" (identifier "puVar13") (+ "+") (number_literal "0x1ad7c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1ae30)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1ae30)" (* "*") (cast_expression "(code **)(puVar13 + 0x1ae30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1ae30)" (( "(") (binary_expression "puVar13 + 0x1ae30" (identifier "puVar13") (+ "+") (number_literal "0x1ae30")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x95c" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" (* "*") (cast_expression "(int *)(puVar13 + 0x1ac58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x1ac58)" (( "(") (binary_expression "puVar13 + 0x1ac58" (identifier "puVar13") (+ "+") (number_literal "0x1ac58")) () ")")))) (+ "+") (number_literal "-0x95c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);" (call_expression "(**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" (* "*") (cast_expression "(code **)(puVar13 + 0x1ad7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1ad7c)" (( "(") (binary_expression "puVar13 + 0x1ad7c" (identifier "puVar13") (+ "+") (number_literal "0x1ad7c")) () ")"))))) () ")")) (argument_list "(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2)" (( "(") (identifier "iVar6") (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined4 *)(puVar13 + 0x1acc4)" (* "*") (cast_expression "(undefined4 *)(puVar13 + 0x1acc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x1acc4)" (( "(") (binary_expression "puVar13 + 0x1acc4" (identifier "puVar13") (+ "+") (number_literal "0x1acc4")) () ")")))) (, ",") (identifier "uVar8") (, ",") (number_literal "0x7e2") () ")"))) (; ";")) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1ae30)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1ae30)" (* "*") (cast_expression "(code **)(puVar13 + 0x1ae30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1ae30)" (( "(") (binary_expression "puVar13 + 0x1ae30" (identifier "puVar13") (+ "+") (number_literal "0x1ae30")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x958" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" (* "*") (cast_expression "(int *)(puVar13 + 0x1ac58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x1ac58)" (( "(") (binary_expression "puVar13 + 0x1ac58" (identifier "puVar13") (+ "+") (number_literal "0x1ac58")) () ")")))) (+ "+") (number_literal "-0x958")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);" (call_expression "(**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae80))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1ae80)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1ae80)" (* "*") (cast_expression "(code **)(puVar13 + 0x1ae80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1ae80)" (( "(") (binary_expression "puVar13 + 0x1ae80" (identifier "puVar13") (+ "+") (number_literal "0x1ae80")) () ")"))))) () ")")) (argument_list "(uVar8,iVar6)" (( "(") (identifier "uVar8") (, ",") (identifier "iVar6") () ")"))) (; ";")) (if_statement "if (uStack_74 < 10) {\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }" (if "if") (parenthesized_expression "(uStack_74 < 10)" (( "(") (binary_expression "uStack_74 < 10" (identifier "uStack_74") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                    \n                    \n    pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();\n    return pbVar9;\n  }" ({ "{") (expression_statement "pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))();" (assignment_expression "pbVar9 = (byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))()" (parenthesized_expression "(*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20))" (( "(") (pointer_expression "*(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" (* "*") (cast_expression "(code *)(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20)" (( "(") (binary_expression "puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +\n                               0x22c20" (binary_expression "puVar13 +\n                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" (identifier "puVar13") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4)" (( "(") (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4" (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x660" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" (* "*") (cast_expression "(int *)(puVar13 + 0x1ac58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x1ac58)" (( "(") (binary_expression "puVar13 + 0x1ac58" (identifier "puVar13") (+ "+") (number_literal "0x1ac58")) () ")")))) (+ "+") (number_literal "-0x660")) (+ "+") (binary_expression "uStack_74 * 4" (identifier "uStack_74") (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0x22c20")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}"))) (expression_statement "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);" (assignment_expression "uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ae30))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1ae30)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1ae30)" (* "*") (cast_expression "(code **)(puVar13 + 0x1ae30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1ae30)" (( "(") (binary_expression "puVar13 + 0x1ae30" (identifier "puVar13") (+ "+") (number_literal "0x1ae30")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puVar13 + 0x1ac58) + -0x74c" (pointer_expression "*(int *)(puVar13 + 0x1ac58)" (* "*") (cast_expression "(int *)(puVar13 + 0x1ac58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x1ac58)" (( "(") (binary_expression "puVar13 + 0x1ac58" (identifier "puVar13") (+ "+") (number_literal "0x1ac58")) () ")")))) (+ "+") (number_literal "-0x74c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)\n  ;" (assignment_expression "pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar13 + 0x1ad7c))\n                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" (parenthesized_expression "(**(code **)(puVar13 + 0x1ad7c))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x1ad7c)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x1ad7c)" (* "*") (cast_expression "(code **)(puVar13 + 0x1ad7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x1ad7c)" (( "(") (binary_expression "puVar13 + 0x1ad7c" (identifier "puVar13") (+ "+") (number_literal "0x1ad7c")) () ")"))))) () ")")) (argument_list "(iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,\n                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)" (( "(") (identifier "iVar6") (, ",") (number_literal "1") (, ",") (identifier "uVar8") (, ",") (identifier "__gp_1") (, ",") (identifier "_DAT_000390a4") (, ",") (identifier "_DAT_000390a8") (, ",") (identifier "_DAT_000390ac") (, ",") (identifier "_DAT_000390b0") (, ",") (identifier "_DAT_000390b4") (, ",") (identifier "_DAT_000390b8") (, ",") (identifier "_DAT_000390bc") (, ",") (identifier "_DAT_000390c0") () ")"))))) (; ";")) (return_statement "return pbVar9;" (return "return") (identifier "pbVar9") (; ";")) (} "}")))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

char * function_1(char *s,int var_4)

{
  type_1 _Var1;
  type_2 *pbVar2;
  int var_12;
  type_2 *var_1;
  type_3 var_3;
  int var_6;
  int *piVar7;
  type_4 uVar8;
  char *pcVar9;
  type_2 *var_5;
  type_2 *var_7;
  char var_11;
  type_5 *pmVar13;
  type_6 *var_8;
  type_3 var_13;
  char *local_6c;
  type_7 i;
  
  var_12 = *(int *)PTR___stack_chk_guard_000312c4;
  var_5 = (type_2 *)var_4;
  var_1 = (type_2 *)(*(type_8 *)PTR_strdup_000312cc)();
  if (var_1 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2();
  }
  var_3 = (*(type_8 *)PTR___ctype_get_mb_cur_max_00031290)();
  if (var_3 < 2) {
    if (var_4 != 0) {
      var_3 = (type_3)(char)*var_1;
      var_5 = var_1;
      if (var_3 != 0) {
        piVar7 = (int *)(*(type_8 *)PTR___ctype_b_loc_000311dc)(var_1);
        do {
          if ((*(type_9 *)(*piVar7 + (var_3 & 0xff) * 2) & 0x20) == 0) break;
          var_5 = var_5 + 1;
          var_3 = (type_3)(char)*var_5;
        } while (var_3 != 0);
      }
      (*(type_8 *)PTR_strlen_0003125c)(var_5);
      (*(type_8 *)PTR_memmove_000312d4)(var_1);
      if (var_4 == 1) goto LAB_000160c8;
    }
    var_6 = (*(type_8 *)PTR_strlen_0003125c)(var_1);
    var_7 = var_1 + var_6 + -1;
    if (var_1 <= var_7) {
      piVar7 = (int *)(*(type_8 *)PTR___ctype_b_loc_000311dc)();
      var_6 = *piVar7;
      do {
        if ((*(type_9 *)(var_6 + (type_3)*var_7 * 2) & 0x20) == 0) break;
        *var_7 = 0;
        var_7 = var_7 + -1;
      } while (var_1 <= var_7);
    }
  }
  else {
    if (var_4 != 0) {
      i.cur.ptr = (char *)var_1;
      var_6 = (*(type_8 *)PTR_strlen_0003125c)(var_1);
      var_8 = PTR_is_basic_table_00031124;
      i.limit = (char *)(var_1 + var_6);
      i.in_shift = false;
      i.state.__count = 0;
      i.state.__value.__wch = 0;
      i.next_done = false;
      if (var_1 < i.limit) {
        pmVar13 = &i.state;
        var_5 = var_1;
        do {
          pcVar9 = i.limit;
          i.next_done = false;
          if (i.in_shift == false) {
            if ((*(type_3 *)(var_8 + (type_3)(*var_5 >> 5) * 4) >> (*var_5 & 0x1f) & 1) == 0) {
              var_6 = (*(type_8 *)PTR_mbsinit_000312c0)(pmVar13);
              if (var_6 == 0) {
                pcVar9 = (char *)(*(type_8 *)PTR___assert_fail_000311e0)
                                           (var_9 + -0xa28,var_9 + -0x9a0,
                                            0x8e,var_9 + -0x990);
                return pcVar9;
              }
              i.in_shift = true;
              goto LAB_00015edc;
            }
            i.cur.bytes = 1;
            i.cur.wc = (wchar_t)(char)*var_5;
            i.cur.wc_valid = true;
          }
          else {
LAB_00015edc:
            i.cur.bytes = var_10(&i.cur.wc,(char *)var_5,(int)pcVar9 - (int)var_5,pmVar13);
            if (i.cur.bytes == 0xffffffff) {
              i.cur.bytes = 1;
              i.cur.wc_valid = false;
            }
            else if (i.cur.bytes == 0xfffffffe) {
              i.cur.bytes = (int)i.limit - (int)i.cur.ptr;
              i.cur.wc_valid = false;
            }
            else {
              if (i.cur.bytes == 0) {
                i.cur.bytes = 1;
                if (*i.cur.ptr != '\0') {
                  pcVar9 = (char *)(*(type_8 *)PTR___assert_fail_000311e0)
                                             (var_9 + -0xa10,var_9 + -0x9a0,
                                              0xa9,var_9 + -0x990);
                  return pcVar9;
                }
                if (i.cur.wc != 0) {
                  pcVar9 = (char *)(*(type_8 *)PTR___assert_fail_000311e0)
                                             (var_9 + -0x9f8,var_9 + -0x9a0,
                                              0xaa,var_9 + -0x990);
                  return pcVar9;
                }
              }
              i.cur.wc_valid = true;
              var_6 = (*(type_8 *)PTR_mbsinit_000312c0)(pmVar13);
              if (var_6 != 0) {
                i.in_shift = false;
              }
            }
          }
          i.next_done = true;
          if ((i.cur.wc_valid == false) ||
             (var_6 = (*(type_8 *)PTR_iswspace_00031270)(i.cur.wc), var_6 == 0)) break;
          var_5 = (type_2 *)(i.cur.ptr + i.cur.bytes);
          i.next_done = false;
          i.cur.ptr = (char *)var_5;
        } while (var_5 < i.limit);
      }
      var_5 = (type_2 *)i.cur.ptr;
      (*(type_8 *)PTR_strlen_0003125c)(i.cur.ptr);
      (*(type_8 *)PTR_memmove_000312d4)(var_1);
      if (var_4 == 1) goto LAB_000160c8;
    }
    i.cur.ptr = (char *)var_1;
    var_6 = (*(type_8 *)PTR_strlen_0003125c)(var_1);
    var_8 = PTR_is_basic_table_00031124;
    i.limit = (char *)(var_1 + var_6);
    i.in_shift = false;
    i.state.__count = 0;
    i.state.__value.__wch = 0;
    i.next_done = false;
    if (var_1 < i.limit) {
      var_11 = '\0';
      pmVar13 = &i.state;
      var_7 = var_5;
      pbVar2 = var_1;
      do {
        var_5 = pbVar2;
        pcVar9 = i.limit;
        i.next_done = false;
        if (i.in_shift == false) {
          if ((*(type_3 *)(var_8 + (type_3)(*var_5 >> 5) * 4) >> (*var_5 & 0x1f) & 1) == 0) {
            var_6 = (*(type_8 *)PTR_mbsinit_000312c0)(pmVar13);
            if (var_6 == 0) {
              pcVar9 = (char *)(*(type_8 *)PTR___assert_fail_000311e0)
                                         (var_9 + -0xa28,var_9 + -0x9a0,0x8e
                                          ,var_9 + -0x990);
              return pcVar9;
            }
            i.in_shift = true;
            goto LAB_0001623c;
          }
          i.cur.bytes = 1;
          i.cur.wc = (wchar_t)(char)*var_5;
          i.cur.wc_valid = true;
          var_5 = var_7;
        }
        else {
LAB_0001623c:
          i.cur.bytes = var_10(&i.cur.wc,(char *)var_5,(int)pcVar9 - (int)var_5,pmVar13);
          if (i.cur.bytes == 0xffffffff) {
            i.cur.bytes = 1;
            i.cur.wc_valid = false;
          }
          else if (i.cur.bytes == 0xfffffffe) {
            i.cur.bytes = (int)i.limit - (int)i.cur.ptr;
            i.cur.wc_valid = false;
          }
          else {
            if (i.cur.bytes == 0) {
              i.cur.bytes = 1;
              if (*i.cur.ptr != '\0') {
                pcVar9 = (char *)(*(type_8 *)PTR___assert_fail_000311e0)
                                           (var_9 + -0xa10,var_9 + -0x9a0,
                                            0xa9,var_9 + -0x990);
                return pcVar9;
              }
              if (i.cur.wc != 0) {
                pcVar9 = (char *)(*(type_8 *)PTR___assert_fail_000311e0)
                                           (var_9 + -0x9f8,var_9 + -0x9a0,
                                            0xaa);
                return pcVar9;
              }
            }
            i.cur.wc_valid = true;
            var_6 = (*(type_8 *)PTR_mbsinit_000312c0)(pmVar13);
            if (var_6 != 0) {
              i.in_shift = false;
            }
          }
        }
        i.next_done = true;
        _Var1 = i.next_done;
        i.next_done = true;
        if (var_11 == '\0') {
          var_11 = '\x01';
          if (i.cur.wc_valid != false) {
            i.next_done = _Var1;
            var_6 = (*(type_8 *)PTR_iswspace_00031270)(i.cur.wc);
            var_11 = var_6 == 0;
          }
        }
        else if (var_11 == '\x01') {
          if (i.cur.wc_valid != false) {
            var_6 = (*(type_8 *)PTR_iswspace_00031270)(i.cur.wc);
            if (var_6 != 0) {
              var_11 = '\x02';
              local_6c = i.cur.ptr;
            }
          }
        }
        else if (var_11 == '\x02') {
          if (i.cur.wc_valid == false) {
            var_11 = '\x01';
          }
          else {
            var_6 = (*(type_8 *)PTR_iswspace_00031270)(i.cur.wc);
            if (var_6 == 0) {
              var_11 = '\x01';
            }
          }
        }
        else {
          var_11 = '\x01';
        }
        i.cur.ptr = i.cur.ptr + i.cur.bytes;
        i.next_done = false;
        var_7 = var_5;
        pbVar2 = (type_2 *)i.cur.ptr;
      } while (i.cur.ptr < i.limit);
      if (var_11 == '\x02') {
        *local_6c = '\0';
      }
    }
  }
LAB_000160c8:
  if (var_12 == *(int *)PTR___stack_chk_guard_000312c4) {
    return (char *)var_1;
  }
  var_8 = PTR___stack_chk_fail_000312ac;
  (*(type_8 *)PTR___stack_chk_fail_000312ac)();
  if (var_5 == (type_2 *)0x0) {
    (**(type_8 **)(var_8 + 0x1ad7c))();
  }
  else {
    (**(type_8 **)(var_8 + 0x1ad7c))();
  }
  uVar8 = (**(type_8 **)(var_8 + 0x1ae30))(0,*(int *)(var_8 + 0x1ac58) + -0x95c,5);
  (**(type_8 **)(var_8 + 0x1ad7c))(var_12,1,*(type_4 *)(var_8 + 0x1acc4),uVar8,0x7e2);
  uVar8 = (**(type_8 **)(var_8 + 0x1ae30))(0,*(int *)(var_8 + 0x1ac58) + -0x958,5);
  (**(type_8 **)(var_8 + 0x1ae80))(uVar8,var_12);
  if (var_13 < 10) {
                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pcVar9 = (char *)(*(type_8 *)(var_8 +
                               *(int *)(*(int *)(var_8 + 0x1ac58) + -0x660 + var_13 * 4) +
                               0x22c20))();
    return pcVar9;
  }
  uVar8 = (**(type_8 **)(var_8 + 0x1ae30))(0,*(int *)(var_8 + 0x1ac58) + -0x74c,5);
  pcVar9 = (char *)(**(type_8 **)(var_8 + 0x1ad7c))
                             (var_12,1,uVar8,__gp,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,
                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)
  ;
  return pcVar9;
}


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

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

byte * MASKED(undefined4 param_1,byte *param_2)

{
  bool bVar1;
  undefined1 uVar2;
  byte *pbVar3;
  byte *pbVar4;
  uint uVar5;
  int iVar6;
  int *piVar7;
  undefined4 uVar8;
  byte *pbVar9;
  byte *pbVar10;
  char cVar11;
  byte *pbVar12;
  undefined *puVar13;
  uint uStack_74;
  byte *local_6c;
  undefined4 local_60;
  undefined4 local_5c;
  undefined1 local_58;
  byte *local_54;
  int local_50;
  char local_4c;
  int local_48 [7];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_000312c4;
  pbVar9 = param_2;
  pbVar4 = (byte *)(*(code *)PTR_strdup_000312cc)();
  if (pbVar4 == (byte *)0x0) {
    xalloc_die();
LAB_00015e6c:
    local_54 = pbVar4;
    iVar6 = (*(code *)PTR_strlen_0003125c)();
    puVar13 = PTR_is_basic_table_00031124;
    pbVar9 = pbVar4 + iVar6;
    bVar1 = false;
    local_60 = 0;
    local_5c = 0;
    local_58 = 0;
    if (pbVar4 < pbVar9) {
      pbVar12 = pbVar4;
      do {
        local_58 = 0;
        if (bVar1) {
LAB_00015edc:
          local_50 = rpl_mbrtowc(local_48,pbVar12,(int)pbVar9 - (int)pbVar12);
          if (local_50 == -1) {
            local_50 = 1;
            local_4c = '\0';
          }
          else if (local_50 == -2) {
            local_50 = (int)pbVar9 - (int)local_54;
            local_4c = '\0';
          }
          else {
            if (local_50 == 0) {
              local_50 = 1;
              if (*local_54 != 0) {
                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                           (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,
                                            0xa9,PTR_UINT_000310d8 + -0x990);
                return pbVar9;
              }
              if (local_48[0] != 0) {
                pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                           (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,
                                            0xaa,PTR_UINT_000310d8 + -0x990);
                return pbVar9;
              }
            }
            local_4c = '\x01';
            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);
            if (iVar6 != 0) {
              bVar1 = false;
            }
          }
        }
        else {
          if ((*(uint *)(puVar13 + (uint)(*pbVar12 >> 5) * 4) >> (*pbVar12 & 0x1f) & 1) == 0) {
            iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);
            if (iVar6 == 0) {
              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                         (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e
                                          ,PTR_UINT_000310d8 + -0x990);
              return pbVar9;
            }
            bVar1 = true;
            goto LAB_00015edc;
          }
          local_50 = 1;
          local_48[0] = (int)(char)*pbVar12;
          local_4c = '\x01';
        }
        local_58 = 1;
        if ((local_4c == '\0') ||
           (iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]), iVar6 == 0)) break;
        pbVar12 = local_54 + local_50;
        local_58 = 0;
        local_54 = pbVar12;
      } while (pbVar12 < pbVar9);
    }
    pbVar9 = local_54;
    (*(code *)PTR_strlen_0003125c)(local_54);
    (*(code *)PTR_memmove_000312d4)(pbVar4);
    if (param_2 == (byte *)0x1) goto LAB_000160c8;
  }
  else {
    uVar5 = (*(code *)PTR___ctype_get_mb_cur_max_00031290)();
    if (uVar5 < 2) {
      if (param_2 != (byte *)0x0) {
        uVar5 = (uint)(char)*pbVar4;
        pbVar9 = pbVar4;
        if (uVar5 != 0) {
          piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)(pbVar4);
          do {
            if ((*(ushort *)(*piVar7 + (uVar5 & 0xff) * 2) & 0x20) == 0) break;
            pbVar9 = pbVar9 + 1;
            uVar5 = (uint)(char)*pbVar9;
          } while (uVar5 != 0);
        }
        (*(code *)PTR_strlen_0003125c)(pbVar9);
        (*(code *)PTR_memmove_000312d4)(pbVar4);
        if (param_2 == (byte *)0x1) goto LAB_000160c8;
      }
      iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);
      pbVar12 = pbVar4 + iVar6 + -1;
      if (pbVar4 <= pbVar12) {
        piVar7 = (int *)(*(code *)PTR___ctype_b_loc_000311dc)();
        iVar6 = *piVar7;
        do {
          if ((*(ushort *)(iVar6 + (uint)*pbVar12 * 2) & 0x20) == 0) break;
          *pbVar12 = 0;
          pbVar12 = pbVar12 + -1;
        } while (pbVar4 <= pbVar12);
      }
      goto LAB_000160c8;
    }
    if (param_2 != (byte *)0x0) goto LAB_00015e6c;
  }
  local_54 = pbVar4;
  iVar6 = (*(code *)PTR_strlen_0003125c)(pbVar4);
  puVar13 = PTR_is_basic_table_00031124;
  pbVar12 = pbVar4 + iVar6;
  bVar1 = false;
  local_60 = 0;
  local_5c = 0;
  local_58 = 0;
  if (pbVar4 < pbVar12) {
    cVar11 = '\0';
    pbVar10 = pbVar9;
    pbVar3 = pbVar4;
    do {
      pbVar9 = pbVar3;
      local_58 = 0;
      if (bVar1) {
LAB_0001623c:
        local_50 = rpl_mbrtowc(local_48);
        if (local_50 == -1) {
          local_50 = 1;
          local_4c = '\0';
        }
        else if (local_50 == -2) {
          local_50 = (int)pbVar12 - (int)local_54;
          local_4c = '\0';
        }
        else {
          if (local_50 == 0) {
            local_50 = 1;
            if (*local_54 != 0) {
              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                         (PTR_UINT_000310d8 + -0xa10,PTR_UINT_000310d8 + -0x9a0,0xa9
                                          ,PTR_UINT_000310d8 + -0x990);
              return pbVar9;
            }
            if (local_48[0] != 0) {
              pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                         (PTR_UINT_000310d8 + -0x9f8,PTR_UINT_000310d8 + -0x9a0,0xaa
                                         );
              return pbVar9;
            }
          }
          local_4c = '\x01';
          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);
          if (iVar6 != 0) {
            bVar1 = false;
          }
        }
      }
      else {
        if ((*(uint *)(puVar13 + (uint)(*pbVar9 >> 5) * 4) >> (*pbVar9 & 0x1f) & 1) == 0) {
          iVar6 = (*(code *)PTR_mbsinit_000312c0)(&local_60);
          if (iVar6 == 0) {
            pbVar9 = (byte *)(*(code *)PTR___assert_fail_000311e0)
                                       (PTR_UINT_000310d8 + -0xa28,PTR_UINT_000310d8 + -0x9a0,0x8e,
                                        PTR_UINT_000310d8 + -0x990);
            return pbVar9;
          }
          bVar1 = true;
          goto LAB_0001623c;
        }
        local_50 = 1;
        local_48[0] = (int)(char)*pbVar9;
        local_4c = '\x01';
        pbVar9 = pbVar10;
      }
      local_58 = 1;
      uVar2 = local_58;
      local_58 = 1;
      if (cVar11 == '\0') {
        cVar11 = '\x01';
        if (local_4c != '\0') {
          local_58 = uVar2;
          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);
          cVar11 = iVar6 == 0;
        }
      }
      else if (cVar11 == '\x01') {
        if (local_4c != '\0') {
          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);
          if (iVar6 != 0) {
            cVar11 = '\x02';
            local_6c = local_54;
          }
        }
      }
      else if (cVar11 == '\x02') {
        if (local_4c == '\0') {
          cVar11 = '\x01';
        }
        else {
          iVar6 = (*(code *)PTR_iswspace_00031270)(local_48[0]);
          if (iVar6 == 0) {
            cVar11 = '\x01';
          }
        }
      }
      else {
        cVar11 = '\x01';
      }
      local_54 = local_54 + local_50;
      local_58 = 0;
      pbVar10 = pbVar9;
      pbVar3 = local_54;
    } while (local_54 < pbVar12);
    if (cVar11 == '\x02') {
      *local_6c = 0;
    }
  }
LAB_000160c8:
  if (local_2c == *(int *)PTR___stack_chk_guard_000312c4) {
    return pbVar4;
  }
  iVar6 = local_2c;
  puVar13 = PTR___stack_chk_fail_000312ac;
  (*(code *)PTR___stack_chk_fail_000312ac)();
  if (pbVar9 == (byte *)0x0) {
    (**(code **)(puVar13 + 0x1ad7c))();
  }
  else {
    (**(code **)(puVar13 + 0x1ad7c))();
  }
  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x95c,5);
  (**(code **)(puVar13 + 0x1ad7c))(iVar6,1,*(undefined4 *)(puVar13 + 0x1acc4),uVar8,0x7e2);
  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x958,5);
  (**(code **)(puVar13 + 0x1ae80))(uVar8,iVar6);
  if (uStack_74 < 10) {
                    /* WARNING: Could not recover jumptable at 0x0001657c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pbVar9 = (byte *)(*(code *)(puVar13 +
                               *(int *)(*(int *)(puVar13 + 0x1ac58) + -0x660 + uStack_74 * 4) +
                               0x22c20))();
    return pbVar9;
  }
  uVar8 = (**(code **)(puVar13 + 0x1ae30))(0,*(int *)(puVar13 + 0x1ac58) + -0x74c,5);
  pbVar9 = (byte *)(**(code **)(puVar13 + 0x1ad7c))
                             (iVar6,1,uVar8,__gp_1,_DAT_000390a4,_DAT_000390a8,_DAT_000390ac,
                              _DAT_000390b0,_DAT_000390b4,_DAT_000390b8,_DAT_000390bc,_DAT_000390c0)
  ;
  return pbVar9;
}

